Emin Akkoç

About

I design systems and build them.

Seventeen years designing and building software: the architecture, the services behind it and the interface on top. I take responsibility for the whole path, from the decisions that shape a system to the code that ships it, which is usually what a project needs when the hard part is how the pieces fit together rather than any one of them.

Emin Akkoç

The long version

How the path actually went.

Education

I took every chance I got to work on human-computer interaction, interface design and computer graphics during my studies, and I was glad to land on projects in those areas. That interest never went away, it just kept resurfacing in different forms.

2009–2014

The professional start was backend: Java, mostly. Even then I ended up on interface work built with backend technologies, Java Swing was still the normal answer at the time, so I was never far from the screen.

2014–2019

As the roles got more senior, the work started combining backend experience with the new front-end technologies: jQuery, KnockoutJS, then AngularJS, then React and Redux on airline and banking platforms, with technical leadership on the Pegasus rebuild.

2019–2025

Once Angular and React had taken over the front-end world, I decided to commit and left the Java Spring backend work behind. Six years at Zeplin: product features, a TypeScript migration, performance work and weekly production duty on software design teams use every day.

Now

I define myself as a web engineer and architect, and the backend fascination came back through Node.js after all those years. Currently full-stack on a large German construction platform, and available for consulting alongside it.

Skills

The whole stack, grouped by what it's for.

Everything listed here has been in production or in a shipped personal project. Where something is legacy for me now, it says so.

Languages & type systems

The core of everything below.

JavaScriptTypeScriptHTMLJava

Architecture & systems

Forty services and eleven frontends will teach you where the boundaries belong.

System designMicroservicesMicrofrontendsAPI designShared librariesSystem integration

UI libraries & frameworks

React and Preact are home. Six years of Preact in a large production app.

ReactPreactSolidJSNext.jsGatsbyThree.js
AngularJSKnockoutJSjQuery

State & realtime

Flux and Redux at scale, including the mapper performance work that comes with them.

ReduxReact QueryFluxSolidJS StorePusher

Styling

CSS Modules by default; Tailwind where the team already lives there.

CSSCSS ModulesTailwindLess

Testing

Written by the developer who wrote the feature, run in CI.

JestCypress.io
JUnit

Build & tooling

Webpack for the legacy estates, Vite for anything new.

ViteWebpackGit
Subversion

Backend & platform

The backend fascination that came back through Node.

Node.jsDockerFirebase FunctionsGoogle Cloud Platform
JavaSpring

Data

From Oracle and Hibernate at the start to SurrealDB in current personal work.

SQLSurrealDB
HibernateDrools

CI/CD, monitoring & content

Release, watch, and the CMS layer when the site needs one.

CircleCISentryNetlifySanityJira

Everyday tools

Including the design and graphics side: the 3D portfolio, its pixel art and this site were made with these.

FigmaVS CodeWebStormPostmanBlenderAsepritePixakiInkscapeGIMPEclipse

Education

Formal grounding.

MSc, Software Engineering

Middle East Technical University (METU), Ankara

2009–2011

BSc, Computer Engineering

Başkent University, Ankara

2004–2009

High school

TED Ankara College, Ankara

1992–2003

Beyond work

The side projects give it away.

Cooking, seriously

Enough that it turned into a product. Resipise is a food curation app built on FDC nutrition data, you design meals from real ingredients and track what's in them. Recipes, scheduling, shared shopping lists that update live for everyone on them.

Pixel art & 3D

Blender, Aseprite and Pixaki are on this list for a reason. The 3D city on eminakkoc.com, where each building is a route and you can walk around instead of clicking a nav, was modelled and drawn as well as coded.

Building things that don't need to exist

The interactive portfolio was a deliberately awkward idea: replace the router of a Next.js app with a Three.js scene, server-render every page behind it, and make it work on a phone. Most of what I know about performance came from projects like that one.

Seen enough?

Tell me what you're building.

A short message is a fine start. I'll ask the rest.

About · Emin Akkoç