Blog Posts

The Power of Headless Chrome and PWA Automation Using Puppeteer

Testing code is critical for the maintainability of a complex code base, but it is just as important that tests are easy to write, maintain, and understand. Frontend code is no exception to this rule, and behaviors that live in your UI should be tested as well. Historically, testing UI has been hard to accomplish for a variety of reasons, but using React removes a lot of these hurdles. We hope that puppeteer does a good job of removing the

Continue Reading

Automating deeplinks with iOS using iMessages

In OpenSooq, delivering a high-quality product is of utmost importance. To accomplish this goal, we use automated testing to catch bugs before they reach our users. One of the challenges that we face every release is testing deep linking.

The main goal of clicking on notification by users is getting the content they want to see. However, the internal process should handle the notification and the deep link inside this notification.  On Others hand, clicking on Add post notification should redirect

Continue Reading

Managing Serverless Multi-Tier Architectures in OpenSooq

The multi-tier application (three-tier, n-tier, etc.) has been a cornerstone architecture pattern for decades. The multi-tier pattern provides good guidelines for you to follow to ensure decoupled and scalable application components that can be separately managed and maintained (often by distinct teams). Multi-tiered applications are often built using a service-oriented architecture (SOA) approach to using web services. In this approach, the network acts as the boundary between tiers.

We show how we design multi-tiered architectures for popular patterns such as

Continue Reading

Running the Incompatible Socket.io Versions At The Same Time Is Making The Impossible Possible

Introduction

Socket.IO is commonly used for real-time, bidirectional and event-based communication. This library played a key role in OpenSooq’s successful Chat service providing tons of leads to our users. In OpenSooq, we have a lot of services managed internally and upgrading outdated technologies can improve business efficiency and help us gain a competitive edge. However, Missing updates can also mean missing out on bug fixes and functionality upgrades. In time, our service might

Continue Reading

OpenSooq Android Performance Testing: Make Hard Things Easy

Introduction

The future of Android testing is bleak if as a Quality Engineers don’t change the way of testing. Automating the test cases is good but understanding the system services (CPU, Battery, RAM, ..) of the app to go to the next level is great. In OpenSooq, Our development cycle is extremely fast, and we’ve built tools to keep it that way. On another hand, this will add more headache on Quality to make sure that every release is a bug-free.

Continue Reading

Testing Android Deep Linking at OpenSooq

In OpenSooq, delivering a high-quality product is of utmost importance. To accomplish this goal, we use automated testing to catch bugs before they reach our users. One of the challenges that we face every release is testing deep linking.

The main goal of clicking on notification by users is getting the content they want to see. However, the internal process should handle the notification and the deep link inside this notification.  On Others hand, clicking on Add post notification should redirect the user

Continue Reading

MySQL 8.0.12: The Devil Is In The Detail

More than a billion views now use MySQL to access post, comment, member, and more. As we have evolved the product and added new functionality, the underlying technologies that power OpenSooq have changed substantially. We have dozens of background tasks that handle things like payments and analytics. Many of the queries that are run by these tasks are expensive SELECTs, and we were starting to notice an impact on frontend performance. 

To help improve OpenSooq even more, we

Continue Reading

The Evolution of RecyclerView Adapter in OpenSooq

Our Android app has many major components can help our business to grow, we have to provide our user with a seamless experience to sell and buy fast. However, we are building listing items with action for our users. The complexity of the listing items comes from handling and tackling RecyclerView.

RecyclerView by far is the biggest layout in Android, and that’s because a Recyclerview is a viewport into a huge virtual layout, and we are facing the challenge of redundant

Continue Reading

Persisting Trained Machine Learning Models Using MsgPack

Introduction

At OpenSooq, we take AI seriously. Tensroflow and Scikit-Learn are two examples of popular packages used for machine learning, that are used in OpenSooq for different aspects of our e-commerce platform and its supporting services and moderation tools. In Supervised Machine Learning there are two phases training (fitting the model) and prediction. Training is done offline, then models get evaluated and then persisted to be deployed on production. Tensroflow models can be persisted as frozen protocol buffer files, on

Continue Reading

Mobile Push Notification Targeting Generation Using Genetic Algorithm in Classifieds

Acquiring users takes time and money, we are working hard for them. However, push notifications are the follow-up to user acquisition, to make sure that the marketing dollars stretch as far as possible. The idea comes from specifying a system that will enable the OpenSooq to profile users, segment them and target them with different parts of our platform based on a lightweight implementation.

The system is centered around the idea of generating a DNA fingerprint

Continue Reading

Site Footer

@ OpenSooq 2019