Tuukka Haapasalo

Hands-on software architect.

I design the architecture of backend systems and applications, and I build them myself as well. That keeps me involved across the whole development cycle, from the first sketches to production. I use AI tools every day. Getting expert-level results from them takes the expertise to judge what they produce, and that judgement comes from decades of building software by hand. I’ve worked in IT since 1998 and at Reaktor since 2016. Before that, I was at HiQ and did database research at Aalto University. D.Sc. (Tech.) in computer science, equivalent to a PhD.

tuukka.haapasalo@gmail.com linkedin.com/in/thaapasa github.com/thaapasa +358 40 706 3785 Helsinki Updated October 2026
Tuukka Haapasalo

2016 – present

Reaktor

Software Architect

I work on Reaktor’s client projects as an architect and developer. I usually stay with a project for years and remain accountable for what I build long after it goes live.

2023 –

IQM Resonance

Customers and researchers use IQM Resonance to run computations on quantum computers built by IQM, a Finnish quantum-computing company. It started as a public cloud service and now also sits in front of the quantum computers IQM sells to its customers. As of 2026, the public cloud offers three machines, the largest with 54 qubits.

I’ve been on the project since the start of implementation. A colleague and I designed most of the architecture. I’ve worked on the service’s user interfaces and on the backend server that queues quantum jobs and dispatches them to the machines. When the Python implementation’s performance and maintainability were no longer good enough, we rewrote the server in Rust. The team has varied in size from about five to fifteen people.

  • Rust
  • axum
  • PostgreSQL
  • React
  • TypeScript
  • Python

2018 – 2023

Telia Dot

Telia Dot is a fully digital mobile operator that we built for Telia. It runs on Telia’s mobile network and backend systems, and customers manage their subscription entirely through a mobile app.

I joined at the start of implementation. There were about fifteen of us, and together we designed the initial architecture. After that, people came and went, but I stayed. Over the years I became the developer who knew the whole system and steered its architecture. I worked on nearly every part of it: subscription provisioning to the network, an event-processing system with guaranteed delivery and automatic retries, billing, integrations with dozens of legacy backend systems, the internal customer-service tool and the customer-facing mobile app.

  • Node.js
  • TypeScript
  • React
  • React Native

2017 – 2018

Kesko — Caara Leasing

I was a developer in a team of up to four that built a mobile app and its backend services from start to finish for Caara Leasing, the car-leasing service of the Finnish retail group Kesko. After that, another developer and I built the Android version of Kesko’s Volkswagen Owner app, based on the existing iOS app.

  • TypeScript
  • Node.js
  • React Native
  • Android

2016 – 2017

OP — Osta laskulla

I was the architect and a developer on the Osta laskulla (“Buy with invoice”) payment button for OP, Finland’s largest financial group. It lets online shoppers pay by invoice or in instalments. We built the backend in Java and Kotlin and the purchase-flow UI in React. The hardest part was fitting the bank’s backend systems into a smooth checkout experience.

  • Java
  • Kotlin
  • React

2011 – 2016

HiQ Finland

Software Architect

2013 – 2015

Fintoto backend systems

I developed backend systems in a small team for Fintoto, the Finnish horse-race betting operator. The most demanding part was a distributed bet-prioritisation service (Scala, Hazelcast) that I designed and built with another developer. It collected bets from several servers into a shared queue and fed them to the backend systems at a controlled rate. That way every user’s bets were handled fairly, and the backends were never overloaded. I also built internal tools and worked on Fintoto’s betting website.

  • Scala
  • Hazelcast
  • Java

2013

Fintoto Toto-mobiili

I designed the architecture and built most of Fintoto’s Toto-mobiili. The browser-based HTML5 service let users place bets, follow results and watch live Toto-TV broadcasts on every common smartphone of the time. It won Best HTML5 Consumer Service at Teleforum’s Best Mobile Service in Finland 2013 awards.

  • JavaScript

2011 – 2012

OP file transfer service

I was team lead and a developer when we built a file-transfer service for small businesses in OP’s online bank. I coordinated the team’s work and the changes needed across the bank’s systems, and built the service together with the rest of the team.

  • Java
  • Spring

2011

OP-Mobiili and S-Pankki Mobiili

I worked as a developer on the Android versions of two different banks’ mobile banking apps: for longer on OP-Mobiili, and briefly on S-Pankki Mobiili. On OP-Mobiili, I fixed critical barcode-scanning problems late in the project.

  • Android

2008 – 2011

Aalto University

Doctoral researcher

I researched index structures for multiversion databases and their concurrency-control algorithms. A multiversion database keeps the full history of its data, so you can ask what the data looked like at any point in time. I extended the MVBT index to support transactions while keeping operations logarithmic in time. With the research group, I also worked on R-tree recovery and string-matching algorithms.

2005 – 2008

HiQ Softplan

Software Engineer

I worked on the web layer of the OnNet gaming system for Veikkaus, Finland’s national lottery and betting company (Java, Spring). I designed and built a real-estate brokerage system for Jones Lang LaSalle (Java, Spring, Hibernate, MySQL), which also became the subject of my master’s thesis. In addition, I worked on an intranet for Tekes (BEA AquaLogic).

1998 – 2005

Earlier

  • 2003 – 2005

    Teaching assistant, Helsinki University of Technology

    Operating systems project, C/C++ programming, introductory programming.

  • 2004

    Software engineering intern, GE Healthcare

    Smartphone prototypes for relaying patient-monitor alarms; ECG rendering for a head-mounted display (Java MIDP, Symbian C++).

  • 1998 – 2003

    Software developer, MMD Group

    PHP/Perl web systems, from publishing platforms to chat services; intranets and websites; Linux server administration.

Expertise

  • System analysis and architecture
  • Distributed systems
  • Databases and concurrency
  • Complex, business-critical backend systems
  • API design
  • Integrations with legacy systems

Current toolkit

  • Rust
  • TypeScript
  • React
  • Node.js / Bun
  • PostgreSQL
  • Kotlin / Compose

In earlier projects

  • Java
  • Scala
  • Spring
  • Android
  • React Native
  • Compose Multiplatform
  • Hazelcast

Delivery and infrastructure

  • Docker
  • Kubernetes
  • Linux
  • GitHub Actions / GitLab CI
  • AWS
  • UpCloud

AI-assisted development

  • Claude Code
  • GitHub Copilot
  • Cursor

In daily professional use.

Languages

  • Finnish — native
  • English — excellent

I build my own projects end to end: I design and code them, set up CI, release them and keep them running. The services run on my own Hetzner server, and the apps are on Google Play.

2011

On the Recovery of R-Trees

T. Haapasalo, I. Jaluta, S. Sippu, E. Soisalon-Soininen

IEEE Transactions on Knowledge and Data Engineering, 2011