Megastore
A trilingual, multi-currency commerce platform: five applications behind one set of shared contracts, plus a Flutter client.
- apps in the monorepo
- 5
- shared packages
- 6
- locales, RTL-first
- 3
- currencies
- 5
- Client
- Service
- Data store
- External
APIs, web apps, admin dashboards, mobile apps, background workers, media pipelines and the infrastructure they run on — designed and shipped as one system rather than assembled from parts.
Six years of it. Most has been commerce, because that is where the work was — but the stack does not care what you point it at. A storefront, an internal tool, a booking system, a video pipeline: same layers, same problems, same engineer.
Open to full-stack roles — remote or Istanbul
Web surfaces
Next.jsReact 19
Mobile apps
FlutterBloc
Shared contracts
TypeScriptZod
API & workers
NestJSPrisma
Data stores
PostgreSQLRedis
Infrastructure
DockerTraefik
The case studies below happen to be commerce, so here is the honest version of the range. Every line names something already shipped, not something I would be willing to try.
Storefronts, marketing sites, portals, multi-tenant apps. Server components, streaming, i18n with real RTL, and Core Web Vitals treated as a requirement rather than a report.
REST APIs with typed contracts, auth that separates identities cryptographically instead of by a role column, queues, schedulers, webhooks, and third-party integrations that fail loudly.
Flutter on iOS and Android, shipped to the Play Store — offline handling, push, deep links, payment SDKs, and the shared API behind them written by the same person.
Admin panels, warehouse and inventory systems, operations dashboards, role-scoped back offices. Unglamorous software that decides whether a business actually functions.
Image and video processing, HLS transcoding, thumbnailing, background removal, object storage with presigned uploads, and search built on Postgres before reaching for a search cluster.
Containers, reverse proxies, TLS, CI, monorepos, secrets, backups, monitoring — self-hosted on a VPS or on a Kubernetes cluster I built and can explain line by line.
Each of these I architected and wrote myself, end to end. Where a repository is private I have described the design instead of showing the source — the reasoning is the part that transfers anyway.
A trilingual, multi-currency commerce platform: five applications behind one set of shared contracts, plus a Flutter client.
Four Flutter applications and a web client sharing one NestJS backend, covering business sales, repair intake and returns.
A B2B tyre commerce app for dealers, shipped to both the App Store and Google Play.
A cross-platform commerce app for a Saudi online store, with instalment and card payment gateways integrated end to end.
Smaller, still real. Listed rather than case-studied so the four above keep their weight.
A debt-collection app for field agents — the same Flutter architecture as Netlastik at a quarter the size, which is what made it quick to build. Live on Google Play.
Full-stack Next.js product for the TELETAB brand — Prisma over PostgreSQL, better-auth, MinIO object storage, transactional email with React Email, and server-driven tables.
Trilingual marketing site with a considered motion layer. Built to load fast on mobile connections and read correctly in Arabic.
Turborepo monorepo pairing a public site with an operations dashboard over a shared component library and database package, containerised for staging.
Marketing site with GSAP-driven sequences and a technical SEO baseline — generated sitemap, structured metadata, mobile-first performance budget.
Anyone can list technologies. These are the habits that actually show up in the systems above.
Megastore's architecture exists as a specification with numbered decisions — each one carrying its rationale and the alternatives I rejected and why. Writing it down first is what makes a decision reviewable later, and it is why the implementation still matches the design months in.
Only the API touches the database. Customers and admins get separate cryptographic identities rather than a role column. Boundaries that are merely conventions get crossed the first time someone is in a hurry.
Media is processed before it is stored, so orphaned files cannot exist. Bearer tokens instead of cookies, so CSRF is not something to defend against. The best handling for a class of bug is a design where it cannot occur.
Postgres full-text search before Meilisearch. Docker Compose before an orchestrator. Every container is something to operate, back up and secure — so it has to pay for itself first.
Istanbul, Türkiye
Independent / contract
Designing and building the Megastore commerce platform, the OUKITEL B2B application suite and the TeleTab product — architecture, APIs, web front ends, Flutter clients and the container infrastructure underneath.
Istanbul, Türkiye
Built social-media tooling: automated interaction services running against platform APIs, on a Node.js backend with a React front end.
Istanbul, Türkiye
Orjeen / Perllamoda
Built and maintained an online store serving the Saudi market. Delivered the Orjeen cross-platform app with Tabby and Urway payment gateways, and built a warehouse management system integrated with the WooCommerce REST API.
Istanbul, Türkiye
Front-end development on the team that shipped the Zakati mobile app for Android and iOS, plus web work for a charity client.
Ordered by how much of it I have actually shipped, not by how many tutorials I have seen.
I studied computer engineering at Istanbul Aydın University and started working before I finished — front-end first, in 2020, on a small team in Istanbul shipping a mobile app and web work for clients.
The front end stopped being enough fairly quickly. I moved backwards through the stack because the interesting problems kept turning out to be on the other side of the API: how a payment reconciles when a customer closes the app mid-redirect, why a price filter falls apart the moment products are priced in different currencies, what happens to an upload that claims to be a JPEG and is not. By 2021 I was building whole products — a warehouse system, a cross-platform store app with two payment gateways, the backend serving both.
What I actually do now is take a business that needs a real system and build all of it: the data model, the API, the storefront, the admin tooling that the staff use every day, the mobile client, and the infrastructure it runs on. Working solo across that whole surface has made me careful in a specific way — I design so that mistakes are structurally impossible rather than caught later, because there is no second engineer to catch them.
I work in English, Arabic and Turkish, and I build software the same way. Arabic being right-to-left is an architectural constraint that reaches into routing, layout and the database schema, not a translation task at the end. Having shipped that several times over is the part of my experience that is hardest to pick up quickly.
I'm open to full-stack roles, remote or in Istanbul, and to selective contract work. The fastest way to reach me is email.