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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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."
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.
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.
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⁻⁵.
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.