Flutter developer with production experience at Bood Agency, building multi-role mobile platforms with Clean Architecture, BLoC/Cubit sealed states, and real-time SignalR features.
I shipped a custom analyzer plugin (engineering_lints) that enforces architecture contracts at dart analyze time — no raw Colors.*, no presentation → data imports, repositories must return Result<T>. Violations are compile errors, not code review comments.
- 🎓 B.Sc. Information Technology — Egyptian E-Learning University (2021–2025) · Graduation project iHealth — A+
- 💼 Currently building Pro Tracking and MAF at Bood Agency
- 📍 Cairo, Egypt — open to relocate
| Area | Stack |
|---|---|
| Mobile | Flutter · Dart 3 · Android · iOS |
| State Management | BLoC · Cubit · sealed class states · exhaustive switch (no default) |
| Architecture | Clean Architecture (feature-first) · Repository · Factory · Singleton · Result<T> |
| Networking | Dio · REST APIs · GraphQL · SignalR · JWT refresh (Completer-queue pattern) |
| Backend & Cloud | Firebase (Auth, Firestore, FCM, Storage, Functions) · Stripe · Envied |
| Quality & CI/CD | custom_lint · SonarQube · bloc_test · mocktail · Fastlane · GitHub Actions |
| Tooling | Flutter DevTools (CPU Profiler, Memory Inspector, Widget Inspector) · dart analyze |
| Navigation & DI | GoRouter (auth + role redirect guards) · GetIt (factory Cubits, singleton use cases) |
Pro Tracking — Workforce & Project Management
- Feature-first Clean Architecture across 17 fully layered modules with 45 use cases — Cubits depend only on use cases, never on repositories or data sources directly
- Shipped engineering_lints: custom analyzer plugin with 3 rules at
errorseverity —repository_must_return_result,no_direct_colors,clean_architecture_layer_violation.dart analyzefails on violations before a PR is opened - Real-time time tracking via SignalR (active-users hub, 5 events) with
withAutomaticReconnect,identical()stale-connection guards, andisClosedchecks in both theStreamControllerand the Cubit stream listener - GoRouter with a global redirect guard backed by
refreshListenable: UserSessionService— role-based routing (admin/user shells) reacts to session changes without imperative navigation calls - All 25 Cubits registered as
registerFactoryin GetIt — fresh instance per screen, no shared mutable state leaking across routes
MAF — Multi-Role Automotive Platform
- 50-module feature-first architecture, 49 Cubits, 33 sealed state files; Completer-queue pattern in
AppInterceptorsserializes concurrent 401s — one token refresh fires regardless of how many requests expire at once - Custom pagination widget (
CustomPaginatedListView<T>) — 220px scroll threshold, 120ms debounce, shimmer on load-more, Cubit accumulates pages via list spread withisFetchingMoreflag keeping initial and load-more states distinct - FCM deep-link routing via
NotificationNavigatorhandler registry — 6 notification types each mapped to a typed destination screen, handled across foreground, background, and killed-state launch paths - SignalR chat hub with
accessTokenFactory, automatic reconnect, room rejoin on reconnect, and ChatCubit re-initialization on connectivity restore
Apr 2025 – Jun 2025 · Graduation Project — A+ (4.0 / 4.0)
Flutter health app integrating a team-built Flask AI recommendation engine — symptoms as structured input, conditions and treatments as output. Firebase Auth and Firestore security rules enforce per-user data isolation with no client-side trust. Bilingual UI (Arabic / English) with light/dark theme — state managed via Cubit and Provider for theme/locale.
Flutter Dart Cubit Provider Firebase Clean Architecture Flask (AI backend)
Nov 2025 – Dec 2025 · Team project (3 members)
Owned Settings and Portfolio modules end-to-end. Two entry points (main_development.dart / main_production.dart) — Sentry error tracking in production only. Automated build and distribution via Fastlane (Firebase App Distribution). SonarQube static analysis with quality gates on every PR. Stripe payment gateway for premium features.
Flutter Dart BLoC Clean Architecture Stripe Fastlane SonarQube Sentry Firebase


