Case study 01
ShopChat — Engineering a Multi‑Feature Commerce Platform
Architecture, full-cycle mobile engineering, and cross-functional delivery for an integrated digital marketplace.
- Company
- ShopChat Portal
- Role
- Senior Flutter Engineer & Project Manager
- Period
- Apr 2025 — Present
- Platforms
- iOS · Android
- Stack
- Flutter
- Dart
- BLoC
- Clean Architecture
- Dependency injection



01
Context
ShopChat brings product discovery, buying, selling, payments, and order fulfilment into one commerce experience. Its customer-facing app is built in Flutter and ships to iOS and Android, with Arabic, English and Urdu throughout, alongside the official website at shopchat.ae.
02
Role & ownership
As the primary engineer responsible for the customer-facing Flutter application, I lead its architecture, development, production releases and ongoing evolution. I have held this role, Senior Flutter Engineer & Project Manager at ShopChat Portal, since April 2025.
Alongside hands-on engineering, I coordinate work across back-end, front-end and UI/UX teams, turning business requirements into technical plans and API contracts. I also lead back-end delivery and supervise front-end implementation.
03
Engineering challenge
A marketplace touches every part of commerce at once, from authentication to logistics, while mobile, back-end, front-end and UI/UX work moves in parallel.
That creates two problems at once: an architecture that can absorb that breadth without slowing down, and a delivery process that keeps every workstream aligned on the same contracts and milestones.
04
Clean Architecture
I designed and evolved a feature-based Clean Architecture. Each feature is a module with clear boundaries and its own presentation, domain and data layers.
- Presentation: UI driven by BLoC, so state changes are explicit and testable.
- Domain: use cases and entities that express business rules and don't depend on frameworks.
- Data: repositories that implement domain contracts and talk to APIs and third-party services.
- Dependency injection wires the modules together at their boundaries, so features stay replaceable.
Select a layer to see what I own at each level:
What users touch
- Feature screens driven by BLoC state, from onboarding to checkout
- Responsive UI, deep links and push notifications wired into each journey
- Performance and stability checked before every release
Bloc<Event, State>WidgetsRoutes · Deep links
What the business means
- Business requirements turned into use cases, entities and delivery milestones
- API contracts agreed with back-end before implementation starts
- Framework-free rules that every feature module shares
UseCaseEntityRepository (contract)
Where it comes from
- Repositories implementing domain contracts over REST APIs and Firebase
- Secure third-party integrations across payments, wallets and analytics
- Environment configuration and production issue resolution
RepositoryImplRemoteDataSourceModels
| Layer | Auth | Discovery | Checkout | Wallets | Orders | Chat |
|---|---|---|---|---|---|---|
| PresentationBLoC · UI | ||||||
| DomainUse cases · Entities | ||||||
| DataRepositories · Sources |
05
Marketplace scope
I delivered or coordinated these capabilities across the teams, grouped by the part of the product they serve:
01
Discovery & commerce
- Onboarding
- Authentication
- Product discovery
- Seller experiences
- Cart
- Checkout
02
Transactions & fulfilment
- Payments
- Wallets
- Order management
- Logistics
03
Engagement & platform
- Chat & messaging
- Notifications
- Analytics
- Deep links
06
Cross-functional delivery
The engineering only works if the teams around it move together. I lead cross-functional execution across mobile, back-end, front-end and UI/UX:
- Turn business requirements into technical plans, priorities, API contracts and delivery milestones.
- Guide back-end implementation and supervise front-end delivery through solution reviews, dependency management and acceptance criteria.
- Run technical troubleshooting and release-readiness checks before every release.
Contracts before code. Readiness before release.
I also set up the engineering practices the product runs on: maintainability standards, code review, environment configuration, production issue resolution, performance and stability work, and secure third-party integrations.
07
Web platform
The product also has a public face on the web. For shopchat.ae I built the front end, supervised its implementation and led its delivery alongside the mobile app. The site introduces the marketplace, explains the separate paths for sellers and shoppers, and points visitors to the app.
- shopchat.ae
- shopchat.ae
- shopchat.ae
- shopchat.ae
08
Engineering outcomes & delivery
- 01
End-to-end product engineering
Led architecture, implementation, production releases, and ongoing improvements of ShopChat's customer-facing Flutter application across iOS and Android.
- 02
Maintainable architectural foundation
Designed and evolved a feature-based Clean Architecture with BLoC, dependency injection, and modular presentation/domain/data boundaries.
- 03
Integrated marketplace delivery
Delivered and coordinated interconnected workflows across authentication, discovery, seller experiences, checkout, payments, wallets, orders, logistics, notifications, and messaging.
- 04
Web platform delivery
Built the front end of shopchat.ae, supervised its implementation, and led its delivery as part of the same product ecosystem.
- 05
Cross-functional technical leadership
Coordinated mobile, back-end, front-end, and UI/UX workstreams through technical planning, API contracts, code reviews, acceptance criteria, issue resolution, and release readiness.
09
Stack & links
Flutter and Dart, with BLoC for state management, dependency injection and a feature-based Clean Architecture, shipped to iOS and Android.








