AI-generated: All articles are Claude Opus 4.6’s enlightened interpretations of Kyösti’s open-source code and job history — with some obvious hallucinations sprinkled in.
18 Years of Software: What Actually Mattered

Eighteen years into professional software development, I finally have enough perspective to see which decisions actually mattered and which anxieties were noise. This is what I'd tell my 2008 self about architecture, people, and longevity.

The Kiosk That Greets You: AI Avatar, Daily Briefings, and MCP Home Automation

A wall-mounted kiosk with a hand-drawn animated avatar that detects faces, delivers a once-daily Finnish briefing on news, weather, calendar events, and home sensor status, then answers ad-hoc questions via MCP tools backed by a local Ollama instance and Claude Haiku.

The Home Automation Stack I Wish I Had Started With

After two failed smart-home attempts, I rebuilt my home automation stack from scratch around MQTT, InfluxDB, and Grafana. The architecture is now three years old and I've changed almost nothing — here's why.

Reverse Engineering the WAGO WebVisu Binary Protocol

I needed to read real-time data from a WAGO PLC without vendor documentation or an official API. What followed was a weekend of packet captures, binary protocol archaeology, and a surprisingly elegant solution.

AI-Assisted Engineering Leadership: Patterns That Work in 2025

By late 2025, I'd integrated AI tools deeply enough into engineering leadership workflows to have a real opinion about what works. The patterns that stuck are different from what I expected when I started this experiment.

Security as a Product Value: Building It In From Day One

Security bolted on at the end of a product cycle is expensive, brittle, and visible to customers in the worst possible ways. Building it in from day one requires changing what engineers celebrate, not just what they build.

From Embedded to Cloud: Directing R&D at Visma

Directing R&D at Visma meant leading a team with deep embedded Linux expertise into cloud-native AWS architecture. The technical migration was straightforward; the engineering culture change was the actual project.

Two Days with ISO 27001: A Practitioner's Training Review

I completed ISO 27001 information security management training in 2024 after years of living with the standard in practice. Two days of formal instruction still managed to fill in the gaps — particularly around the 2022 revision and the internal auditing methodology.

Implementing a Dual ISO 9001 / ISO 27001 Management System

Running simultaneous ISO 9001 and ISO 27001 audits under a unified management system sounds like bureaucratic overhead until you see how much the standards complement each other. This is our implementation story.

Green Code and the Carbon Footprint of a Live Sports Platform

The IBU's Sustainability Strategy targets net-zero by 2040. As the team behind biathlonworld.com, we were part of that work. This is how platform architecture decisions — push vs polling, vector tiles, CDN design, granular client rendering — translate directly into carbon emissions.

From Keyboard to Boardroom: The Engineering Leadership Transition

The transition from principal engineer to engineering director is the most disorienting career shift I've experienced — more so than any technical challenge. The mental models that made me effective as an engineer were actively harmful as a leader.

PostGIS in Production: Hunting Zone Geometry at Scale

A deep dive into the spatial pipeline behind Oma Riista's hunting zone system — geometry union across three land registries, area calculations by land classification, inverted geometry queries, and real-time Mapbox Vector Tile generation.

The B-Bark GPS Platform: From Side Project to Acquisition

B-Bark started as a GPS tracking platform I built in spare time for Nordic hunting dog owners. The story of how a side project became a commercial product and eventually changed hands has lessons I keep returning to.

Custom Map Rendering with MapLibre GL: Beyond the Defaults

MapLibre GL gives you enormous rendering control, but the defaults are designed for navigation, not for the kind of topographic aesthetics that make cartographers happy. Here's how to go well beyond the defaults.

Leading 35 Engineers: Merging ITIL with DevOps Reality

Growing from leading 5 engineers to 35 meant navigating the awkward middle ground between ITIL's service-management rigour and DevOps's move-fast culture. Here's the framework that actually held together under load.

Finnish Topographic Maps as Vector Tiles: A Complete Pipeline

Finland's National Land Survey (MML) publishes excellent geodata, but the path from raw data to smooth vector-tile maps is paved with coordinate-system quirks and projection gotchas. This is the complete pipeline.

Anatomy of an Award Win: How biathlonworld.com Took Grand One and Red Dot

In 2022, biathlonworld.com won both the Grand One and Red Dot Design Award. Walking through the decision log that led to those wins reveals more about engineering culture than about any single technical choice.

Fine-Grained Entity Authorization with Spring Security: A Strategy-DSL Architecture

How to replace scattered role-checks with a composable, declarative authorization system — one strategy class per entity type, a fluent DSL for permission assignment, and lazy conditional evaluation that avoids unnecessary database queries.

AWS Well-Architected Framework in Practice: Audit Findings Patterns

After running AWS Well-Architected Framework reviews across a dozen production systems, certain failure patterns appear with striking regularity. This is a field guide to the findings you should expect.

ISO 27001 Is Not a Checkbox: Embedding Security in Engineering Culture

Most teams treat ISO 27001 certification as a compliance exercise: fill the forms, pass the audit, move on. We decided to treat it as an engineering culture initiative, and the results surprised us.

Building a Platform for 190 000 Hunters: Oma Riista Architecture

Finland's national wildlife management platform serves 190,000 hunters with a complex domain model spanning game reports, permits, and hunting club management. This is what we learned architecting a system that had to last decades, not sprints.

Real-Time Sports Data at Scale: Lessons from the Biathlon World Cup

The biathlonworld.com redesign required pushing race data to hundreds of thousands of concurrent fans with sub-second latency. This is the technical story behind the real-time layer that powered our Grand One-winning platform.

Designing a GPS Tracking Backend That Survived 12 Years

In 2009, we built a GPS tracking backend that would go on to serve millions of location updates for over a decade. Here's what the architecture decisions looked like at the time, and what I'd change today.

Fixing SSL and Socket Reliability in Pika, the Python AMQP Client

Three open-source contributions to pika over four years: SSL big-send handling and SelectConnection reconnect logic in 2011, then heartbeat lifecycle and socket shutdown correctness in 2014. What production AMQP workloads taught about the gap between "connected" and "reliably connected."

Cassandra at Scale: IoT Fleet Management and Big Data Analysis

A large IoT fleet reporting millions of events daily exposes exactly why relational databases struggle with time-series telemetry. This is the Cassandra data model, time-bucketed partitioning strategy, TWCS compaction, and Spark analytics pipeline that powered a major fleet management operation.

XMPP, GWT, and BOSH: Building Confidential Real-Time Messaging for Save the Children Finland

My MSc thesis documented Mantelichat — a Rich Internet Application for confidential peer support chat built for Pelastakaa Lapset ry. Running XMPP over BOSH long-polling in 2010 exposed everything interesting about pre-WebSocket real-time web communication.

Cascade Classifiers and the Integral Image: Viola-Jones Face Detection from Scratch

My BSc thesis at TUT implemented the Viola-Jones face detection algorithm — Haar-like features, the integral image that makes feature evaluation O(1), AdaBoost for feature selection, and a rejection cascade achieving false positive rates below 10⁻⁵.

Modelling Online Gamer Behaviour with SOMs and Decision Trees

At Advant Games in 2008 we built a hierarchical machine learning pipeline — Self-Organizing Maps for unsupervised clustering, decision trees and random forests for classification — to predict player session breaks and risk appetite without expensive focus groups.