YumGott
Restaurant app with Swish payments, digital wallet, interactive reels and social features.
Passkeys instead of passwords. Idempotent, tamper-proof transactions. Real-time everything. I shipped a production crypto & fiat wallet end to end — and it's live on the App Store and Google Play right now.
Open to remote & relocation — Türkiye · EU Blue Card eligible · UAE
A working demo of intent hashing — the industry-standard pattern I use to tamper-proof money-moving flows. A canonical hash over the transaction fields binds every payment from prompt to execution. Sign it — then try tampering with it.
The intent is serialized deterministically — same fields, same order, every time.
SHA-256 fingerprints the exact intent the user approved. Real hash, computed in your browser.
Any mutation after signing — amount, recipient, path — produces a mismatch and the transaction dies.
…
Server-authoritative by default: the client displays and forwards — it never decides. The server recomputes this hash and rejects any mismatch before money moves.
A cross-platform crypto & fiat wallet for a US fintech — deposits, withdrawals, transfers, exchange, buy/sell, and virtual & physical cards. I own the mobile side end to end: authentication, transaction safety, real-time, release engineering.
Complete passwordless system: passkey (WebAuthn/FIDO2) registration & login, OTP fallback via email / Google Authenticator, step-up re-auth for sensitive actions, per-device credential management with multi-OEM & iOS hardening.
Idempotency across every money-moving flow, plus payload-freeze snapshots, double-submit guards, and on-device transaction lifecycle tracking with persistence and crash recovery for in-flight transactions.
Intent hashing binds each payment to a canonical fingerprint that's rejected on any mismatch, tamper-protecting it from prompt to execution. (See the live demo above for how the pattern works.)
WebSocket layer with connectivity-aware reconnection; hardened Dio API stack with typed errors, encrypted requests, request signing, and strict logging hygiene — no tokens, balances, or PII.
Signed builds, secure keystore management, obfuscation with regression guards; co-owned iOS & Android store deployments and release sign-off with QA.
Spacing, color and typography tokens with full light/dark theming; centralized typed navigation; 7-locale i18n; bilingual (EN/中文) docs for an international team.
Not mockups — production apps with store listings, real users and real constraints.
Not an app — a distributed system I designed and built solo across four codebases: a 114k-LOC Flutter client, a Laravel API that owns the truth, a Node.js real-time layer, and a Next.js moderation console. The hard part wasn't the screens — it was making location, presence and money-grade trust behave correctly across all four. Live on TestFlight, iOS & Android.
OS-level geofence regions wake the app on boundary crossings even when fully terminated — handling the iOS 20-region cap and asymmetric enter/exit registration to kill false "you left" events. The genuinely hard part of a location app, done right.
GPS only decides when to ask; the Laravel server decides inside/outside via Haversine and is the single source of truth. Every affirmative ping doubles as a presence refresh, and transient network errors never eject a user. Location integrity + anti-bot guards on top.
Clients emit over Socket.IO; the Node layer verifies identity against Laravel (no client-supplied identity is trusted) and fans out; Laravel persists and authorizes every event over a shared-secret internal bridge. Room membership is replayed on reconnect, preserving nested join order.
4-state WhatsApp-style delivery/read ticks driven by acks, typing & voice-recording presence, live polls, reactions, mentions, pinning, nested "flows", and timed "sprint" matchmaking — plus a custom-built voice-note UI with waveform scrubbing.
Two-path upload contract — presign → PUT → complete to S3 with a multipart fallback. Messages carry only a media_id; private objects are served via short-TTL signed URLs. Client-side compression before upload.
Next.js 16 admin: a live firehose room surgically patches React Query caches for live sprint/DM monitoring, a Leaflet map moderates bubbles in place, plus approval queues, RBAC tiers, warnings/bans, and a versioned legal-document CMS.
Cross-platform rental app — listings, media galleries, booking, and payments — shipped to both stores from a single codebase.
Engineered live chat with the Pusher SDK — engagement up 30%.
Multiple payment gateways and third-party SDKs, published to the App Store and Google Play in full platform compliance. Bloc + MVVM throughout.
Restaurant app with Swish payments, digital wallet, interactive reels and social features.
Flutter app live on Google Play plus a React admin panel, synchronized over Laravel APIs.
Clean Architecture + BLoC with payments, role-based access and Arabic RTL — 95%+ code reuse.
Data showcase app for a charitable organization with validated form submission, responsive across devices.
React + TypeScript frontend with real-time chat, scheduling, RBAC, advanced search and Arabic RTL i18n.
Full store backend: product/variation/inventory CRUD, order tracking, auth and role-based admin dashboards.
I'm Saed — a senior Flutter engineer who found his edge where most mobile developers stop: the point where the app touches money. Payments punish sloppy engineering, so I build server-authoritative, idempotent, tamper-evident flows by default — then obsess over the design system, the animations and the i18n so it feels effortless to the user.
Before fintech I architected and led a four-codebase social platform solo — Flutter, Laravel, Node.js, Next.js — so I speak backend, infra and release engineering fluently, not just widgets.
I answer fast on WhatsApp and email. Remote-first, EU Blue Card eligible, open to UAE relocation — and I can walk you through any of this code, live.