PERSONNEL FILE / 001 · TALLINN, ESTONIA

Markus
Tammeoja.

SOFTWARE ENGINEER BUILDER OF USEFUL THINGS

I build software across the stack, from the interfaces people use to the services and infrastructure behind them. I’ve worked on factory tools, financing products and energy apps, and I like getting close to the people who use what I make.

AUTHORIZED EQUIPMENT / λ-01
CODE, PEOPLE, SYSTEMSSCROLL TO EXPLORE ↓

The test log.

From university to the systems I work on today.

Apr 2024 — now

Swappie

Software engineer

Tallinn, Estonia

On the Factory team, I work closely with operations on software that follows a device through diagnostics, repair and automated handling. That takes me from the screens operators use to Python services, infrastructure and tools at their workstations.

  • Python
  • Django
  • React
  • Svelte
  • Docker
  • Datadog
  • Distributed systems

Factory systems

I work on the Django backend that follows devices through the factory, along with Python services for diagnostics, repair and automation. On the frontend, I build React and Svelte tools for repair workflows and for monitoring the automation lines. I also put the lines’ configuration under version control, with scheduled syncing and drift detection.

AI grading

I helped bring image-based device grading into the factory workflow at production scale. I moved its GPU workers to Linux services and improved their recovery and monitoring. After that, gradings that used to get stuck for hours mostly stopped happening.

The Mactivator

For the MacBook launch, I built a small USB device that automates the first steps of setting up a MacBook, so plugging it in is the only thing an operator has to do. Somewhere along the way it became the Mactivator, and a bit of a meme at work.

Workstation tools

I also built an AirPods serial-number scanner and label-printing software, reducing manual input at factory workstations.

Jan — Apr 2024

Ridango

Software engineer

Tallinn, Estonia

Worked on backend systems for public transport, writing Java services with Spring and Hibernate.

  • Java
  • Spring
  • Hibernate
Oct 2021 — Jan 2024

Codeborne

Software developer

Tallinn, Estonia

I built client products in energy, finance and education, moving between Kotlin and Java services, Postgres data models and Svelte interfaces. Pair programming, clean code and focused tests were part of how we worked every day.

  • Java & Kotlin
  • Postgres
  • Svelte
  • Pair-programming
  • TDD
  • CI/CD

Spotty

For an Austrian energy provider, I worked on the customer journey from onboarding to contracts and billing, along with parts of the grid-operator integration. I also worked on smart EV charging and built Android and iOS wrappers for the web app.

Eesti Energia / Enefit

I contributed to the electricity package calculator on Enefit’s site. It helps households compare plans and estimated monthly costs based on their electricity use, tariff and preferred energy source.

Checkout financing

Merchants could offer this financing product during checkout. My work covered the journey from offer to signed contract, the loan pricing and repayment calculations behind it, and the payment and accounting flows needed afterward.

Learning platform

On this platform for courses, enrolment, attendance, certificates and trainer workflows, much of my work involved browser automation that kept training listings and registrations aligned with a public employment service, saving staff from entering the same information twice.

Bank payment integration

Businesses use this integration to exchange payment files with their bank. Moving it to a newer version of the exchange protocol meant adapting to its changes and carefully checking that the existing payment flow still worked.

Winery ordering service

I helped build a service that lets winery visitors save the wines they tasted and order them after the visit.

Carbon offsetting

I worked on a service that lets customers offset the carbon footprint of purchases and see which climate projects their contributions support.

Luminor Pension

I worked on a pension planner that turns current savings into an estimate of future retirement income, giving people a more concrete starting point for thinking about retirement.

2020 — 2023

Tallinn University

BSc, Computer Science

Tallinn, Estonia

Studied computer science while starting my career in software engineering.

WebAssembly thesis

For my thesis, I built and ran five algorithm benchmarks across JavaScript, Rust, C++, AssemblyScript and C# in desktop and Android browsers. I compared the results to see which kinds of work actually benefit from WebAssembly and where JavaScript is already competitive.

Out of the lab.

Selected apps and tools I've built and put to use.

01 / SELECTED WORKPersonal project

ampsu

I build and run Ampsu, a food and nutrition app for tracking meals and seeing how eating habits change over time.

Its food database pulls from over 50 public nutrition databases and retailer sources across Europe and the US, and meals can be estimated from a photo. An adaptive TDEE (total daily energy expenditure) model estimates daily calorie burn from food logs and weight trends, forecasts where they are heading and adjusts calorie targets. I work across its Kotlin backend, Svelte frontend and infrastructure.

  • Kotlin
  • Svelte
  • PostgreSQL
  • Docker
  • Ansible
  • Capacitor (Android)
Visit ampsu.eu
02 / SELECTED WORKBuilt at Codeborne

Translate tool

I built this free alternative to Phrase at Codeborne so translators could work directly with JSON language files. It fully replaced Phrase and was used across other client projects.

It flags missing keys and placeholders, previews formatting and can translate individual strings with Google Translate for free. Projects can be shared by link, and changes go back to GitHub or Bitbucket as commits or pull requests.

  • Svelte
  • TypeScript
  • Express
  • GitHub / Bitbucket
  • Google Translate
View on GitHub

Behind the panel.

I like knowing how the whole thing works.

I use Linux on my main machine and run my own servers, mostly because I like knowing how things work. If something goes down at home, statistically I'm the one who caused it.

I got fed up with how slow logging food in calorie counting apps was, so I built Ampsu to save time and money. I've since lost far more of both than I'll ever get back (damnit).
Oh and it's built in Kotlin, still my favourite language.

Away from the keyboard, I cycle, work out, hike and camp, which is how I convince myself I'm a balanced person (?).
...Then I go home and undo all of it with food, board games and Magic: The Gathering, a hobby that has taught me a lot about probability and nothing about managing money (who knew cardboard could be this expensive??!).

I'm a Valve fanatic, as you may have noticed from the turrets, the crowbar and the fact that this site gives out achievements. Yes, you can collect them. There's no prize, but I dare you to get them all anyway :)

I always end up back in RuneScape eventually. At least my cats have their lives in order (they're absolute menaces though).