BURAK ÇAPARLAR / SENIOR MOBILE ENGINEER

01 / DISCOVERY

One app.A whole system.

I’m Burak Çaparlar. Follow a product through a mobile app—and discover the engineering behind every interaction. Scroll to begin.

KOTLINJETPACK COMPOSENATIVE UI

02 / LIVE DATA

A live list.Stock in motion.

Pause here: stock moves 12 → 11 → 8, then follows into detail. My Nesine work includes socket-driven live data.

SOCKET EVENTSSTATEFLOWLIVE DATA

03 / NAVIGATION

A closer look.The same product.

The Arc card becomes its detail screen. Visual continuity helps people understand where they came from and where they are.

NAVIGATIONSHARED ELEMENTUI CONTINUITY

04 / MEDIA

A productcomes to life.

Play, pause, progress. Media is part of the interface—and its behaviour needs to respect the Android lifecycle.

EXOPLAYERLIFECYCLEMEDIA STATE

05 / STATE

Every taphas a state.

Save Arc. Loading, failure, retry, success: explicit state keeps the interface honest while asynchronous work happens.

COROUTINESSTATEFLOWUI STATE

06 / ARCHITECTURE

Openthe layers.

The same detail screen separates into UI, state, domain and data. Clear responsibilities make changes easier to reason about.

CLEAN ARCHITECTUREVIEWMODELHILT

07 / DATA

Followthe request.

Arc’s identity travels from the repository to the API and back. Python backend experience connects both sides of the contract.

RETROFITOKHTTPREST APIsPYTHON

08 / RESILIENCE

Connection lost.Context kept.

The network drops. Cached Arc data stays visible; background work can retry when its constraints are met.

ROOMLOCAL CACHEWORKMANAGER

09 / NATIVE iOS

Same intent.Another platform.

Arc continues on iOS. The content stays familiar while navigation and presentation follow the platform. My iOS experience is built with Swift.

SWIFTiOSNATIVE NAVIGATION

10 / HOW I BUILD

Behind the app.A deliberate workflow.

Design context becomes a specification. Specialised Claude Code agents build and review; I make the final engineering decisions.

CLAUDE CODECUSTOM SKILLSMCPREVIEW

11 / YOUR TURN

Keepthe story going.

The same Arc product is ready in the interactive lab. Open it, change its state and explore both platform perspectives.

ANDROIDiOSHANDS-ON
A concept app. A real engineering perspective.
Scroll to go deeper01 / 11Enter the mobile lab

The screen is only
the beginning.

The part you touch should feel simple. The thinking behind it goes deeper: state, data, platform behaviour and the decisions that connect them.

01 / NATIVE

Respect the platform.

Android depth. Swift iOS experience. Interfaces grounded in how people use their phones.

02 / SYSTEMS

Think beyond the view.

Clear boundaries between presentation, state and data. Python experience beyond the mobile client.

03 / INTELLIGENCE

Build with intent.

Specialised AI agents, explicit context and independent review. Engineering judgment stays human.

Don’t just read it.
Get a feel for it.

Search. Open a detail. Change the state. A small interaction reveals a lot about how an app is built.

9:41
OBJECTS / EVERYDAY

form.

Thoughtfully selected.

An original browser demo. Fictional products; no company app screens.

01 Choose a perspective

Explicit UI state keeps loading, content and failure visible to the interface.

02 A good app handles every state

Try the search field or open a product.

STATE → UIIllustrative code
data class ScreenState(
    val isLoading: Boolean,
    val items: List<Product>,
    val error: String?
)
03 Your interaction trail

    One experience.
    Many decisions.

    Scroll to peel back the layers. Or choose one to explore the thinking behind the interface.

    01 / 04

    Presentation

    Render the state. Keep the interface understandable.

    Jetpack Compose · Swift
    UI ⇄ STATE ⇄ DOMAIN ⇄ DATAIllustrative architecture model

    Experience that
    runs deeper.

    Consumer apps, banking, quick commerce and telecom. Different contexts; a consistent focus on mobile product engineering.

    01
    Senior Android DeveloperOct 2024 — Mar 2026

    Nesine.com

    Complex journeys. Real device behaviour.

    Explore my contribution

    Account, membership and verification, payment and deposit, live results and video experiences, including socket-driven live data. Investigation of device-specific crashes and media compatibility across Android versions.

    Android / Media / Crash investigation
    02
    Senior Android DeveloperFeb 2022 — Oct 2024

    Yapı Kredi Teknoloji

    Banking, built in modules.

    Explore my contribution

    New features and bug fixes for the Yapı Kredi Mobile banking application. Kotlin and Java on a modular, MVVM-based codebase with Dagger, Flow, Coroutines, Navigation and Retrofit/OkHttp, delivered through Bamboo CI.

    Kotlin / Java / Modular architecture
    03
    Senior Android DeveloperNov 2019 — Feb 2022

    Getir

    Everyday needs, in minutes.

    Explore my contribution

    New features and bug fixes for Getir Android applications. Kotlin and Java with Dagger Hilt, Coroutines and Retrofit/OkHttp, VIPER and MVVM, delivered through Bitrise CI.

    Kotlin / Hilt / VIPER / MVVM
    04
    Android DeveloperSep 2017 — Nov 2019

    Vodafone

    Account management in every pocket.

    Explore my contribution

    New features and bug fixes for the Vodafone Yanımda and İKSV Android applications. Java with Retrofit/OkHttp and MVP/MVC, delivered through Jenkins CI.

    Java / MVP / JenkinsThrough Loodos
    INDEPENDENT / APPLIED AI

    The workflow is part of the work.

    Role-specific agents, custom skills, explicit handoffs and review. Applied AI projects covering retrieval, structured outputs and stateful orchestration.

    Explore the system
    INDEPENDENT / PYTHON RESEARCH

    newBot

    A Python research platform for systematic strategy testing: pre-registered hypotheses, cost-aware backtesting and independent review with risk checks.

    Research stage. No live deployment or performance claim.

    More than
    a prompt.

    My Claude Code workflow separates responsibilities. Each agent has its own skills and context. Handoffs are explicit. The final decision stays with me.

    CLAUDE CODE / SKILLS / MCPInteractive workflow illustration
    ROLE / RESPONSIBILITY

    Start with shared context.

    Constraints and relevant project information come before implementation.

    A local simulation of the process. No AI request is sent.
    HANDOFF / INSPECTOR Explicit context
    context → scope → implementation → review

    Under the hood of applied AI.

    Techniques I have used in projects. Open a topic to see what it solves.

    01Retrieval that earns its place.

    Advanced RAG separates retrieval from generation. Re-ranking with Cohere Rerank orders candidate passages by relevance before the selected context reaches the model.

    Advanced RAG · Re-ranking · Cohere Rerank
    02Structure at the boundary.

    Function and tool calling connect model decisions to software. Pydantic and JSON Schema validate output structure; semantic correctness still needs separate checks.

    Function calling · Structured Outputs · Pydantic · JSON Schema
    03Responsiveness, not just a response.

    SSE streams incremental output to the interface. LLM and context caching can reuse eligible work; the result depends on cache validity and the workload.

    SSE · LLM caching · Context caching
    04State across the whole workflow.

    LangGraph state management supports multi-step workflows. MCP provides a standard way to expose context and tools, with deliberate tool access and human review.

    LangGraph · State management · MCP · Multi-agent workflows

    Depth,
    with range.

    Mobile engineering is my centre of gravity. Backend and AI experience expand how I approach the whole system.

    16 areas
    01

    Native Android

    Native feature development and platform behaviour.

    KotlinJavaAndroid SDK
    02

    Interface engineering

    Reusable components and consistent screen behaviour.

    Jetpack ComposeNavigationViewBindingDataBinding
    03

    State & concurrency

    Asynchronous work and observable UI state.

    CoroutinesFlowStateFlowSharedFlowRxJava
    04

    Architecture & data

    Boundaries, dependency injection, persistence and integrations.

    Clean ArchitectureHiltDaggerRoomRetrofitOkHttpREST APIs
    05

    Platform capabilities

    Background tasks, media and device-specific behaviour.

    WorkManagerExoPlayerLifecycle
    06

    Native iOS

    Feature development and debugging; iOS contributions at Metglobal.

    SwiftiOS development
    07

    Beyond the client

    Backend experience, automation and systematic research tools.

    PythonBackend developmentResearch tooling
    08

    Agentic development

    Role-specific agents with scoped instructions and handoffs.

    Claude CodeCustom skillsHooksMulti-agent workflows
    09

    Context & design input

    Project context and design specifications carried into implementation.

    MCPCLAUDE.mdFigma-to-Compose
    10

    Retrieval & ranking

    Select relevant context before asking the model to generate.

    Advanced RAGRe-rankingCohere Rerank
    11

    Model integration

    Connect tools and validate the structure of model outputs.

    Function callingTool callingStructured OutputsPydanticJSON Schema
    12

    Streaming & caching

    Incremental responses and reuse of eligible context.

    SSELLM cachingContext caching
    13

    Stateful orchestration

    State and tool access across multi-step workflows.

    LangGraphState managementMCP
    14

    Build & delivery

    Build workflows, version control and release collaboration.

    GitGradleBitriseCI/CD
    15

    Review & validation

    Human review and meaningful checks on generated and handwritten code.

    Code reviewAI-generated code reviewTest planningEmulator validation
    16

    Debugging in context

    Follow failures across devices, versions and application states.

    Crash investigationDevice / OS compatibilityMedia debugging

    Built over
    time.

    Mobile development since 2015. Each product adds another perspective on how software reaches people.

    EDUCATION

    Istanbul University

    Computer Engineering · 2010–2016

    Apr 2026 — Present

    Boyner Büyük Mağazacılık A.Ş.

    Senior Mobile Engineer

    Android product engineering

    Oct 2024 — Mar 2026

    Nesine.com

    Senior Android Developer

    Consumer journeys, media and device behaviour · Remote

    Feb 2022 — Oct 2024

    Yapı Kredi Teknoloji

    Senior Android Developer

    Banking technology

    Nov 2019 — Feb 2022

    Getir

    Senior Android Developer

    Consumer applications

    Sep 2017 — Nov 2019

    Loodos

    Android Developer

    Vodafone Yanımda · IKSV

    Aug 2015 — Sep 2017

    Metglobal

    Software Developer

    Python backend · Android · iOS

    Let’s
    connect.

    Get in touch to discuss my projects and engineering work.

    [email protected]