Work
Seventeen years, written out in full.
Every engagement below is described the way I would describe it in a call: what the system was, what was wrong with it, what I was responsible for, and what actually changed. Where I don't have hard numbers, I don't publish them.
Atölye 15
2025–Present
Zeplin
2019–2025
Commencis
2014–2019
Cybersoft
2012–2014
Datasel
2009–2011
Personal projects
Ongoing
2025–Present
Atölye 15
Full Stack Software Engineer
Full-stack product engineering on a long-running enterprise platform for a German construction group, and an industrial monitoring platform built from zero.
Heinrich Schmid
Enterprise platform
Context
The operational platform of Heinrich Schmid, a large German construction company: 40+ backend services, 11 independently deployable frontend applications and 45+ shared internal libraries.
Problem
A system of this size has no single owner. Work spans document management, time tracking, financial documents and SAP integration, and every change has to land without disturbing the rest of the estate.
My role
Full-stack engineer across both the microservice backend and the microfrontend applications.
What I did
- Built and extended features across document management, time tracking, overtime and financial-document handling.
- Worked on offer management, obstruction tracking, risk assessments, construction notes and archiving.
- Integrated with SAP for financial and operational data exchange.
- Worked inside the shared internal library set so changes propagate across all eleven frontends.
Outcome
Continuous delivery inside a large, live enterprise estate, with new capability added without destabilising the surrounding services.
Kemisan · iKem
Industrial monitoring platform
Context
Kemisan is a Turkish chemical electrolyser manufacturer. iKem is the monitoring platform for the units it builds and the sensors inside them, collecting readings from machines on customer sites and bringing them together in one place.
Problem
Sensor data arrives continuously from physical machines spread across separate sites, in volumes and at a cadence that ordinary relational storage handles badly, and none of it was in a shape anyone could read.
My role
Architect and full-stack engineer. Backend, frontend and cloud infrastructure designed from zero.
What I did
- Designed the whole system: data model, service boundaries, storage strategy and deployment topology.
- Wrote agent scripts deployed onto the physical machines, gathering sensor readings and shipping them to the cloud.
- Normalised the incoming readings into a structured format and stored the high-volume time series in TimescaleDB.
- Built the React frontends that surface unit and sensor state for the people running the plants.
- Ran the whole thing on Google Cloud Platform.
Outcome
A working view of equipment that previously reported nothing, with the data retained in a form that supports looking backwards as well as at right now.
2019–2025
Zeplin
Software Engineer
Six years of product engineering on a mature SaaS application used daily by design and engineering teams.
Zeplin web application
Product engineering
Context
Zeplin's web app is a mature product with a large existing user base, where every change ships into software people already depend on.
Problem
Adding significant new product surface while modernizing the codebase underneath it, without regressions and without slowing the app down.
My role
Product engineer on the web application, from feature design through production maintenance.
What I did
- Implemented major product features: notification center, approvals, Figma styleguide import and synchronization, invitations, project multiselection, comments and annotations.
- Delivered the migration to a new design across the application.
- Optimized performance through lazy loading and Redux/component rendering work.
- Ran the TypeScript migration and wrote tests with Jest.
- Reviewed code, monitored production with Sentry, and carried weekly production maintenance.
Outcome
A modernized, typed and better-instrumented frontend that kept shipping product features throughout the migration.
Zeplin.io and the blog
Web and content platform
Context
Zeplin's marketing site and its blog, which was hosted on Medium.
Problem
The blog sat outside the company's own stack, with no control over presentation, performance or the publishing workflow.
My role
Engineer on the marketing web presence and the migration.
What I did
- Migrated the blog off Medium into an in-house Gatsby and Sanity implementation.
- Worked on Zeplin.io alongside the product application.
Outcome
Publishing moved in-house, on a stack the team owns and can shape.
2014–2019
Commencis
Senior Software Engineer
Consultancy engagements for airlines and banks, large, regulated systems with real delivery pressure.
Pegasus Airlines
Technical leadership
Context
A major airline's web application, rebuilt as a React and Redux single-page application.
Problem
A migration of this size needs someone accountable for architecture and delivery, not just feature output, and a team that can carry it after handover.
My role
Technical lead: architecture, delivery ownership and team guidance.
What I did
- Implemented the React/Redux SPA and developed features across it.
- Selected technologies, produced estimates and reported delivery risk.
- Guided junior developers on the team.
- Built Cypress end-to-end tests and integrated them into CI.
Outcome
A modern frontend for a high-traffic airline product, with automated end-to-end coverage running in the pipeline.
Turkish Airlines
Enterprise web
Context
Engineering work for another of Türkiye's largest airline operations.
Problem
Enterprise-scale web delivery under the constraints that come with a flag carrier's systems and processes.
My role
Senior engineer within the consultancy delivery team.
What I did
- Developed and maintained web application features in a large enterprise environment.
- Worked across frontend and backend boundaries alongside client engineering teams.
Outcome
Delivered features inside a high-visibility enterprise programme.
İş Bankası · Yapı Kredi · TEB / CEPTETEB · Şekerbank
Banking platforms
Context
Digital banking platforms for four Turkish banks, spanning customer-facing applications and the middleware behind them.
Problem
Regulated, high-trust systems where correctness, auditability and integration with core banking infrastructure matter more than velocity.
My role
Senior engineer across frontend and backend middleware.
What I did
- Built customer-facing banking features and the middleware services supporting them.
- Integrated with core banking and third-party systems in a regulated environment.
- Worked to the security and process constraints of large financial organizations.
Outcome
Production banking software in service at four institutions.
2012–2014
Cybersoft
Software Engineer
Enterprise software engineering in a large Turkish software house.
Enterprise application development
Enterprise software
Context
Business applications built for institutional clients.
Problem
Long-lived enterprise systems with substantial domain logic and established engineering process.
My role
Software engineer on the delivery team.
What I did
- Developed and maintained enterprise application features.
- Worked within an established engineering process and codebase.
Outcome
Two years of enterprise delivery experience that still informs how I approach large systems.
2009–2011
Datasel
Junior Software Developer
Where the career started, first professional software development role.
Application development
First role
Context
Junior development work on business software.
Problem
Learning production engineering: source control, review, release, and the difference between code that runs and code that ships.
My role
Junior software developer.
What I did
- Developed application features under senior guidance.
- Learned the fundamentals of professional software delivery.
Outcome
The foundation for everything above.
Ongoing
Personal projects
Independent work
Products and experiments I build on my own time, and the ones I still maintain.
Resipise
Independent product
Context
A product built end to end on my own, from idea to running service.
Problem
Proving out product thinking and full-stack delivery without a team behind it.
My role
Everything: product, frontend, backend, infrastructure.
What I did
- Built the application in SolidJS with a Node.js backend.
- Implemented real-time updates.
- Ran it on Firebase and Google Cloud Platform.
Outcome
A working product that demonstrates independent, end-to-end capability.
Millwright-Inspector
AI engineering methodology
Context
An exploration of AI-assisted development as an engineering discipline rather than a novelty.
Problem
Agent output is only useful if it can be verified. The interesting question is the workflow around it, not the model.
My role
Author and engineer.
What I did
- Designed verification-gated workflows for agent collaboration.
- Documented the system design and methodology.
Outcome
A concrete position on where AI belongs in a serious engineering process, and where it doesn't.
eminakkoc.com interactive portfolio
Creative frontend
Context
The original version of this site: a Three.js world you drive through instead of a résumé you scroll.
Problem
Showing frontend capability directly, rather than describing it.
My role
Designer and engineer.
What I did
- Built an interactive 3D experience in Three.js on Next.js.
- Designed the interaction model and the graphics that carry it.
Outcome
Kept as an optional interactive route alongside this site, proof of skill rather than the front door.
Education
Formal grounding.

MSc, Software Engineering
Middle East Technical University

BSc, Computer Engineering
Başkent University

High school
TED Ankara College
Working on something
in this territory?
Tell me what the system is and what isn't working. I'll come back with a technical read on it.