Built for the real world

Long-lived platforms, production integrations and a few ideas of my own.

Most client systems are private, so I focus on the useful part: what I owned, which constraints mattered and what the work taught me. The common thread is simple — understand the domain, make the smallest safe change and stay for what happens after deploy.

Project overview

TSM Platform

Production
Senior backend and integration work on a modern service management platform: Kotlin/Java/Spring services, PostgreSQL, B2B communication, process flows, incident analysis and production rollouts of versions 2.2 and 2.4.

Stack: Kotlin, Java, Spring, PostgreSQL, Kafka, Kubernetes

ZIS

Enterprise
Enterprise Java application work with ZK/ZUL UI, controllers, services, DAO layers, imports, Excel processing and production bug fixes. This was the phase where I learned to deliver complete business features.

Stack: Java, ZK, ZUL, Maven, SQL

MNCP

Full-stack
Full-stack work across backend, frontend and database scripts: authentication, exports, archives, measuring batches, operational fixes and flow-level behavior from UI to persistence.

Stack: Kotlin, Spring, Angular, Oracle/PostgreSQL

Nordic & side work

Ongoing · ad-hoc
On-demand collaboration in a Django-based web stack, plus personal experiments. Low volume but the engagement stays open. Useful for keeping engineering habits transferable across technologies and not tied to one ecosystem.

Stack: Python, Django, templates, Astro, TypeScript

Project timeline

The timeline shows how the responsibility moved from complete feature delivery to full-stack ownership and then to production integration and release ownership.

ZIS

2017 - 2018

Enterprise application for CETIN operations. I worked on Java/ZK screens, controller-service-DAO flows, imports, Excel processing and production defects.

  • Delivered complete business screens from UI to persistence.
  • Worked in a classic enterprise Java stack with strong process and data constraints.
  • Built the foundation for later backend and integration ownership.

MNCP

2018 - 2021

Full-stack project around measuring, archives, exports and operational workflows. This phase pushed me from feature delivery into owning behavior across backend, frontend and database boundaries.

  • Worked with Kotlin/Spring, Angular, database scripts and deployment concerns.
  • Implemented authentication, export fixes, archive filters and measuring batch behavior.
  • Learned to debug issues across the whole request and data flow, not only in one layer.

TSM / CETIN

2020 - present

My main long-term focus: backend and integration work on a modern TSM platform. I work close to production behavior, releases, B2B communication, process rules and data compatibility.

  • Production rollout experience with TSM versions 2.2 and 2.4.
  • Integration work around NIP, ticketing, change management, B2B, PEW and related flows.
  • Incident analysis using logs, metrics and domain knowledge instead of blind patching.
  • Modern stack: Kotlin, Java, Spring, PostgreSQL, Kafka-style messaging and Kubernetes environments.

Nordic Web

2024 - present · ad-hoc

Ongoing on-demand collaboration on a Django-based web system. The volume is low these days, but the engagement is open — I jump in when there is a focused change to make. The value here is being able to enter a different stack and make precise changes without forcing familiar patterns onto it.

  • Worked on self-service and web behavior in Python/Django/templates.
  • Handled targeted production-oriented changes in an existing codebase.

Personal site & experiments

ongoing

Small personal projects are where I keep the full product lifecycle visible: idea, implementation, deployment, maintenance and feedback. This website is one of them.

  • Astro, TypeScript, Tailwind CSS and Cloudflare Pages.
  • Simple static architecture, bilingual content and low-maintenance deployment.

Side projects

Smaller products keep me close to the whole loop: an idea, a usable interface, deployment, data and the awkward questions no isolated ticket ever asks.

Incremental web game

In development
A TypeScript and Svelte 5 game built around the full loop: progression, state, balancing, feedback and long-session pacing. Also a practical lab for working with AI without handing over engineering judgement.

Svelte 5 · TypeScript · game systems

Home-improvement planner

Self-hosted
A focused app for comparing listings, keeping documents and sketches together and turning a messy real-world decision into something navigable.

Next.js · Drizzle ORM · PostgreSQL

Trading bot experiments

Research
A Python/Freqtrade strategy playground around trend following, EMA crossover and ATR-based risk. Built to test assumptions against data, not to sell certainty.

Python · Freqtrade · time-series data

Project philosophy

Concrete ownership

A good project is one where runtime behavior, data model, release path and support story are understood together.

Domain over framework

Stacks change; the domain doesn't care. The fixes I'm most proud of came from understanding why the system behaves the way it does, not from knowing the newest API.