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.
02The mobile lab
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.
f.
Thoughtfully selected.↘
An original browser demo. Fictional products; no company app screens.
01Choose a perspective
Explicit UI state keeps loading, content and failure visible to the interface.
02A 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?
)
03Your interaction trail
03Beneath the glass
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
01BC / MOBILE
form.
UIThe part you touch
02BC / MOBILE
STATEThe part that responds
03BC / MOBILE
DOMAINThe rules in between
04BC / MOBILE
DATAThe source of truth
UI ⇄ STATE ⇄ DOMAIN ⇄ DATAIllustrative architecture model
04Selected work
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.
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.
05Intelligence, with intent
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 / INSPECTORExplicit 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
06The toolkit
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.