Qusah StoresE-commerce Tech LeadAug 2025 to present · Riyadh, remote
I joined Qusah Stores to build its contract platform, went on to lead the 7-engineer team behind the ERP services, and now lead the e-commerce engineering function I stood up from scratch. The systems are under NDA, so this is told through the decisions and the measured results.
Stack: React, Next.js, Node.js, TypeScript, Redis, AWS, Datadog, Salla, GA4
Three roles in a year
Newest first
I lead e-commerce engineering at Qusah Stores. The function did not exist before June 2026. The work covers the flagship Salla storefront and its in-house custom theme, the migration of an acquired storefront, and the funnel, cart and checkout reporting that leadership reads.
| Period | Role | Scope |
|---|---|---|
| Jun 2026 to present | E-commerce Tech Lead | The e-commerce engineering function, built from scratch to a team of four. |
| Jan 2026 to Jun 2026 | Senior Software Engineer | ERP services, with technical direction for a 7-engineer team. |
| Aug 2025 to Jan 2026 | Full-Stack Engineer | The contract platform and its Saudi government API integrations. |
Sales were flat. The site was not the reason.
The problem
Ad spend had doubled and sales had stayed flat. The obvious explanation was site performance, and it was a convenient one for an engineering lead: it would have justified more engineering work. That is a reason to test an explanation before accepting it.
I reconciled six data sources against each other. They traced the problem to a paid-channel efficiency gap, not to the site. The findings went to leadership as a bilingual report with funnel, cart and checkout dashboards, and leadership adopted both.
| Sources reconciled | Store reports, GA4, ad platforms, Microsoft Clarity, lab Core Web Vitals and field Core Web Vitals. |
|---|---|
| Ruled out | Site performance. |
| Finding | A paid-channel efficiency gap. |
An engineering function, from zero to four
The team
There was no e-commerce engineering function to inherit. I stood it up from scratch and owned the full hiring cycle, from defining each role and sourcing candidates through to onboarding.
The team is cross-functional by design: engineering and UX research sit in the same group, so the people who study how shoppers behave work beside the people who change the storefront.
| Seats | Team Lead, Frontend, Backend and UX Research. |
|---|---|
| Hiring cycle owned | Role definition, sourcing and onboarding. |
Decisions
What I chose, what I chose it over, and what it cost
Qusah Stores acquired a competitor storefront that had to keep trading while it changed hands. The ERP services took 2.5 seconds to respond and 2 hours to deploy. These are the three decisions behind the figures.
Rebuild the acquired storefront, not adapt it
| Chose | Rebuild the acquired storefront on the in-house custom theme, with the technical due diligence finished before the migration started. It moved in 2 days with zero downtime to live trading. |
|---|---|
| Over | Adapting the template the acquired storefront already ran on. |
| Cost | Nothing from the acquired template carried over. Every part of the storefront had to exist in the in-house theme before the switch. |
Fix the hot paths, keep the services
| Chose | Redis caching, database indexing and query optimisation across ERP services handling 10,000+ daily transactions. Response time went from 2.5s to 500ms. |
|---|---|
| Over | Rewriting the services. |
| Cost | Cached data can go stale, so every cached path needs an invalidation rule. Each index adds a little work to every write. |
Smaller services, automated releases
| Chose | A migration to AWS microservices with automated GitHub Actions CI/CD and Datadog monitoring. Deployment went from 2 hours to 15 minutes while holding a 99.9% uptime SLA. |
|---|---|
| Over | Keeping the 2-hour deployment process. |
| Cost | More separate services to deploy and observe. The automated pipeline and the monitoring exist to carry that load. |
Results
Before and after, as measured
| Measure | Before | After | To scale |
|---|---|---|---|
| ERP API response timenote 3 | 2.5s | 500ms | |
| Deploy timenote 5 | 2h | 15min | |
| Contract processingnote 5 | 10min | 2min | |
| Storefront layout shift (CLS)note 6 | 0.85 | 0.06 | |
| Storefront blocking time (TBT)note 6 | 1,170ms | 180ms | |
| Storefront largest paint (LCP)note 6 | 16s | 6s | |
| Storefront Lighthouse score, mobilenote 6 | 36 | 68 |
BeforeAfterLower is better on every row except Storefront Lighthouse score, mobile. Bars are drawn to scale within each row.
On the flagship storefront the mobile gains came from three changes: eliminating render-blocking assets, reserving layout space and deferring third-party scripts. An LCP of 6s is a large step from 16s and still has further to go.
Contract processing fell from 10 minutes to 2 once Wathq and Sadq handled validation and credit verification behind asynchronous queues.
Notes
How each figure on this page is defined
- 1The e-commerce engineering team at Qusah Stores, built from zero to four: Team Lead, Frontend, Backend and UX Research. I owned the hiring cycle from role definition to onboarding.
- 2An acquired competitor storefront, rebuilt on the in-house custom theme and switched over in 2 days with zero downtime to live trading.
- 3ERP API response time across services handling 10,000+ daily transactions, cut 80% with Redis caching, database indexing and query optimisation. Measured Jan to Jun 2026, at a 99.9% uptime SLA.
- 48M SAR ($2.1M+) of contract value on the Qusah Stores contract platform in its first four months. I built the platform as a full-stack engineer, from Aug 2025.
- 5Deploy time is the time to release the ERP services, before and after the move to AWS microservices with GitHub Actions CI/CD. Contract processing is the time to process one contract, before and after integrating Wathq and Sadq behind an asynchronous queue.
- 6Mobile measurements on the flagship Salla storefront, before and after the work: Lighthouse score out of 100, Cumulative Layout Shift, Total Blocking Time and Largest Contentful Paint.
This work is under NDA, so there are no screenshots here. I can walk through the detail in conversation.