Samet Çakmak

Senior mobile engineer. Eight years shipping Android and Flutter at consumer scale — banking, payments, and point-of-sale — plus the systems work I do because I want to.

8 yrs
Shipping mobile
10M+
Daily banking users
1,000+
POS terminals live
3
Apps shipped to stores

Who I am

Ankara, TREEE, Erciyes '18

I spend my working hours inside systems where mistakes are expensive — a banking app 10 million people open every day, payment terminals in a thousand shops, a school platform students depend on. That work taught me the discipline: understand the constraint, ship carefully, stay reachable when production breaks.

I spend the rest of my hours going deeper than any job description has asked me to. A restaurant finance and BI platform, a browser extension with a paying tier, Postgres schemas with row-level security. Not to collect languages — to find out where things actually break when you push them.

What connects both halves is a habit: I would rather ship the boring correct thing than the clever one. Money moves through most of what I build — in a bank, on a payment terminal, or in a restaurant's books — and that leaves a mark on how carefully you work.

Shipped to the stores

publicly downloadable
Google PlayReact · TS · PixiJS

Vesper live

A block puzzle that is deliberately calm — scenery, ambient music, and no timer shouting at you. Built as a web game in React and Canvas, then packaged to native through Capacitor, so one codebase reaches both phone and tablet.

  • Endless, adventure, and daily seeded modes, with power-ups that charge on combo.
  • 59 commits; shipped through Google Play review with full store assets and a tablet layout.
Vesper title screen over a beach at sunset Vesper endless mode showing a partly filled board and a new record score Vesper adventure map with chapters and locked levels
View on Google Play
Google PlayFlutter · Dart

Blendio live

A colour-fusion puzzle. You reverse-engineer a hidden target from a limited palette — but every swatch carries a material finish as well as a hue: matte, gloss, metallic, glow, neon, pearlescent. The mixer models reflectivity, glow, and pearlescence alongside RGB, so two blends that match in colour can still be wrong.

  • Challenge, free-mix, and saved-collection modes, with a hint system that reveals one source at a time.
  • Shipped and maintained through store review — currently at v1.0.3.
Blendio home screen with challenge, free colour mix, and collection modes Blendio challenge screen showing target colour and a grid of source swatches Blendio free colour mix showing finish controls and a blended result readout
View on Google Play
Google PlayFlutter · lead

Kaptın Kaptın live

A food-discount marketplace I lead technically as a freelancer — migrated from FlutterFlow to native Flutter, then hardened. Live and currently at v1.0.28. I also diagnosed and fixed a payment-provider regression that had stopped every transaction in production.

Alongside it, Kaptın Kaptın B2B — the merchant-side companion for the businesses listing offers.

Kaptın Kaptın store graphic showing the discounted-meal listings Kaptın Kaptın store graphic showing nearby restaurant offers Kaptın Kaptın store graphic showing an order flow
Google Play

Selected work

repositories private · walkthrough on request
The one I would open first

Costwares — restaurant finance and BI platform

React · TypeScript · Firebase · Cloud Functions · Recharts

My largest codebase: a point-of-sale and financial-intelligence platform for restaurants. Not just reporting — the analytics layer does the work a finance team would.

  • 1,628 commits across 1,049 files over six months.
  • A real P&L engine: theoretical versus actual cost of goods with variance, EBITDA, and break-even with safety margin.
  • ABC Pareto stock categorisation and menu engineering — median-split of sales volume against margin to classify every item as star, puzzle, plowhorse, or dog.
  • Multi-branch dashboards, peak-hour heatmaps, and basket-lift analysis on a shared Recharts theme.
  • Role-based access enforced with Firebase custom claims, synced by Cloud Functions; runs locally against seeded emulators.
Costwares brand dashboard showing daily targets and per-branch performance Costwares point-of-sale floor plan with indoor, outdoor and terrace zones Costwares stock management screen with inventory health indicators
71 commitsClean Arch · MVVM

Costwares Online — the same engine, for marketplaces in development

Marketplace sellers see revenue, not margin. This carries the Costwares profit engine to e-commerce: commission, shipping, returns, withholding, VAT, and ad spend reconciled into true net profit, then multi-marketplace stock and demand forecasting on top. Built on a strict Clean Architecture — the domain layer depends on nothing.

109 commitsFlutter

Hora — production Flutter architecture not released

A feature-complete horoscope app built strictly on Clean Architecture and MVVM — dependency inversion all the way down, domain logic testable without a widget tree.

  • 109 commits over eight months across 361 files — sustained, not a weekend.
Hora home screen showing the current moon phase over a rendered earth, with a retrograde alert card Hora screen listing zodiac signs Hora daily reading screen for Capricorn with period tabs
live on webExpo · Supabase

Sonra Hallederiz — who owes whom, settled in one tap

Shared expenses between friends: add people with a six-character invite code — no phone numbers, no email swapping — log who paid for what, then let it simplify the debt graph into the fewest transfers that settle everyone.

  • Split evenly, by percentage, or by exact amount; groups for a holiday, a flat, or one Friday night.
  • Built with Expo Router and Supabase row-level security, so a group's data is enforced at the database, not just the UI.
Sonra Hallederiz home screen showing a total owed to you of 2,523.45 lira and a list of groups Sonra Hallederiz groups list with per-group balances and member avatars Sonra Hallederiz add-expense screen with amount, category and split options
Open the live app
46 commitsMV3 · React · Claude

PostPilot — a Chrome extension that repurposes what you're reading

Open any article, click once, and get posts written for X, LinkedIn and Instagram — plus a reply generator that drafts three responses in a chosen tone. A full product rather than a demo: free tier of three a week, Pro at $12/month.

  • Manifest V3 throughout — service worker, content script for page extraction, React popup.
  • Claude via edge functions; Supabase for auth and rolling usage limits; Lemon Squeezy as merchant of record so tax is handled globally.
PostPilot extension popup showing the weekly quota and a generate-posts button PostPilot reply generator with platform tabs and tone options
PostPilot onboarding page walking through pinning the extension and trying it on an article
internal toolNext.js 16 · Drizzle

Hukids Catalog — the back office of a children's clothing store

Six modules that run the day: product records with size-level stock, a reverse pricing calculator that works backwards from the margin you want, low-stock alerts, competitor scraping across marketplaces, and a drag-and-drop catalogue builder that renders to PDF and a page-flip viewer.

  • The module I like most: bulk photo matching — a vision model pairs a folder of photos to the right products, then a drag-and-drop board lets a human confirm or correct each one.
  • Next.js 16 App Router with Cache Components, Drizzle ORM on Neon Postgres, Vercel Blob for photos and PDFs.
  • No screenshots here: it is an internal tool wired to a live store database, so it does not run standalone.
27 commitsExpo · Supabase

What4Eat — the household answer to "what do I cook tonight?"

A meal planner for a whole household rather than one person: weekly routines fill the plan automatically, and the shopping list is whatever the plan needs minus whatever the kitchen already holds.

  • The pantry does not pretend to know your kitchen. Each item carries a confidence — certain or estimated — that decays over time, so the app says "doubtful in 3 days" instead of quietly being wrong.
  • Expo with Supabase row-level security; React Query persisted to storage and an offline banner, because a kitchen is exactly where the signal drops.
What4Eat today screen with breakfast, lunch and dinner slots and a planned lentil soup What4Eat pantry list where each item shows a confidence dot and a doubtful-in-N-days estimate What4Eat weekly plan grid
Python · DockerLinear · Telegram

AI Orchestrator — a development pipeline I run from my phone

I did not want to babysit a terminal, so I built the harness around it. A containerised Python service watches my Linear board; when an issue moves to AI Ready it checks out the right project, runs a coding agent against it, and reports back over Telegram — editing one message in place as the job moves through its phases rather than spamming the chat.

  • I answer with /approve, /reject, or /revise plus written feedback — revise loops the work back with my notes attached, so a human stays in the decision seat.
  • The verdict writes straight back to Linear as a status change and a comment; job history, phase and duration are kept in a state file that survives restarts.
  • Docker Compose mounts the project tree, a shared CLAUDE.md template and the agent config, so any project in the workspace is addressable by name.

Experience

8 years
Jun 2024 —Kotlin · Java

Android Developer · OBSS — Garanti BBVA Mobile

  • Maintain and extend a banking app opened daily by 10M+ customers.
  • Own SWIFT international wire-transfer defects end to end, building new Kotlin/Java screens alongside iOS, backend, and QA.
  • Run Azure DevOps release flow — PR review, then test → QA → production promotion.
Dec 2022 – Jun 2024Android · POS SDK

Android Developer · OBSS — Garanti BBVA POS

  • Built loyalty and QR payment integrations for PAX and TOKEN terminals, live across 1,000+ devices.
  • Fitted one feature set onto varied hardware under real memory, screen, and peripheral limits.
Dec 2021 – Dec 2022Kotlin · Compose

Android Developer · OBSS — Halkbank

  • Led migration of a legacy banking app from Java/XML to Kotlin + Jetpack Compose.
  • Delivered a reusable Compose component library that sped up every feature built after it — in a regulated industry, without breaking release cadence.
Mar – Dec 2021Flutter

Flutter & Android Developer · BK Mobil

  • Built Metodbox, a cross-platform tablet app serving 50,000+ students — live classes, testing, analytics dashboards.
Apr 2020 – Mar 2021Android

Android Developer · Tivicon Connect

  • Set-top box entertainment app shipped to Germany, Poland, Korea, and Turkey, working across distributed teams.
Aug 2019 – Mar 2020Flutter · BLE

Flutter Developer · Arinlabs AI Technologies

  • An app that drove an ESP32 robot over Bluetooth — drag-and-drop command composition and live sensor telemetry, built to teach children algorithmic thinking.
Aug 2018 – Aug 2019C++

R&D Engineer · Hasçelik Cable

  • Wrote C++ optimisation algorithms for packing cable reels into shipping containers; presented the results within TÜBİTAK research projects.
2024 – 2026Flutter · lead

Flutter Developer & Team Lead · Kaptin Kaptin (freelance)

  • Technical lead at a food-discount startup; migrated the product from FlutterFlow to native Flutter and added in-app gamification.
  • Diagnosed and shipped the fix for a total payment outage — a payment-provider validation change that had stopped every transaction.

Range

depth first, breadth second
Mobile
Kotlin, Java, Jetpack Compose, Flutter, Dart, Android SDK
Architecture
Clean Architecture, MVVM, layered design, modularisation
State
BLoC, Provider, GetX, Riverpod
Android stack
Coroutines, Retrofit, Room, Dagger/Hilt
Also work in
TypeScript, React, Next.js, Python, C++
Backend & data
REST, Supabase with row-level security, Firebase, Postgres, WebSockets
Domains
Mobile banking, retail payments, POS systems, e-commerce, large-scale consumer apps
Release
Azure DevOps, Play Store release management, Docker
Testing
JUnit, Espresso, Mockito, automated regression suites
Languages
Turkish (native), English (professional working proficiency)

Every figure on this page is measured, not estimated. Netcode numbers come from the project's own test and profiling runs; commit counts from repository history; user figures from the products themselves. Client and employer repositories stay private — happy to walk through any of it in a call.