Software developer and IT consultant — Tampere, Finland
I solve problems.
I work out how things work — and why they don't. I've done it since I was a kid; these days for businesses.
I build websites, online shops, integrations and automation for businesses. The same thinking applies to electronics, home automation and 3D printing.
A web platform, a microcontroller, a stripped-down IP camera, my own car, my own house. The tools change, the thinking doesn't.
What I do for clients
A one-person studio since 2013. Scoping, build and maintenance from the same person.
01
Websites and online shops
From a company homepage to a shop that takes payments. Fast, visible in search and easy to maintain.
02
Custom software
Web platforms, customer portals and internal tools built for one purpose. First we work out what problem is really being solved.
03
Automation and integrations
Manual steps taken out of the middle. Systems and APIs talking to each other, with AI where it helps, so nobody copies data by hand.
04
Performance and SEO
Load times, Core Web Vitals and technical search visibility. Measured, not guessed.
05
IT consulting and maintenance
Networks, firewalls, servers and backups. Also maintaining sites I did not build, such as kotivartija.fi.
06
Home automation, hardware and 3D printing
Home Assistant, ESPHome and embedded devices. Spare parts, mounts and prototypes modelled and 3D printed.
How I work — two principles
First work out what the problem actually is.
I compare the options and read the documentation before writing a line of code. Most expensive solutions start from an assumption nobody checked.
Then automate everything that repeats.
There's no point in a human doing repetitions — unless it's sport. At iravirallinen.fi the whole shop runs itself: orders to Printful, cart and payments through Snipcart, emails sent automatically. Nobody keys in an order by hand.
§ Capability — four layers
The same thinking, different tools.
Web is most of what I sell. The other three layers are why a problem rarely stays unsolved — and they can be ordered too.
01 / WEB
Web platforms
Systems at commerce scale and small precise tools. Most of them are still in production.
Nuxt · Vue · TypeScript · Tailwind · Node · PHP / Laravel · Python · MySQL · Cloudflare Workers, D1, Durable Objects
Evidence
huuto.net · hintaseuranta.fiiravirallinen.fi — a shop that runs itselfkortit.io — Durable Objectspalttala.fi · 24safety.fi · eone.fi02 / EMBEDDED
Devices and firmware
When a device won't do what it should, I open it. Firmware pulled apart, my own RTSP server in C, and a meter reading electricity straight off the serial port.
C / C++ · Arduino · ESP32 · ESPHome · KiCad · DLMS/COSEM · RTSP · UART
Evidence
Conecto 6S — own firmware, no cloudAidon P1/HAN energy meterPlant sensor, deep sleepOptiGym retrofit · IR blasters03 / INFRA
Where it runs
The same environment at home as at a client's: virtualisation, firewall, backups and a network that stays up unattended.
Proxmox · OPNsense · Home Assistant · Cloudflare mTLS · Linux · Hetzner · n8n
Evidence
13 VMs / LXCs on my own ProxmoxSelf-hosted InvoiceNinja, n8nAssetto Corsa server, Hetzner04 / PHYSICAL
Making and fixing
Some problems only end when you make the part yourself. Same goes for the car and the house — I do my own repairs and renovation.
Bambu Lab P2S + AMS 2 Pro · Ender 3 / Klipper + Mainsail · self-built laser engraver · Fusion 360 · PETG · Godot
Evidence
A laser engraver I built myselfVolvo V70 — PETG mount for the key slotEnder 3 reflashed for KlipperFunctional parts from CAD to printBackground
From a primary-school Counter-Strike clan to production systems.
Everything I know, I learned because something didn't work and I wanted to know why.
I built my first website in primary school, for a Counter-Strike clan. Game servers followed: SAMP, CS 1.6 and Minecraft, and every one of them needed a site of its own. The first money I earned from code came from selling a Minecraft server.
The same habit has been there ever since. Open the thing up and work out how it works. Usually for no practical reason at all.
The engine
You don't need a reason to open something up. Wanting to know how it works is reason enough.
Now that curiosity is the profession. I build software for businesses through Aasmaa.fi and run technology at ePrice Oy, whose services include huuto.net and hintaseuranta.fi. The evenings still go to whatever nobody ordered.
The learning didn't stop at school. I take online courses in subjects I want to understand from the ground up — electrical and electronics theory among them. In practice it means a schematic reads as a schematic, and what a component does is something I can work out rather than guess.
Now building
In developmentA game I'm making for my own child.
Hillala is a collection of games built in Godot for my daughter. The starting point is simple: a game has to teach something, or it does not belong here. A parent sets the child's age, and the app recommends only games suited to it.

Rules that do not bend
01
No reading required
Anything a child needs to do is communicated visually or by sound. Text is for the parent.
02
No fail states, no clock
You can finish a game but you can't lose it. No Game Over screens and no timers — a small child doesn't perform to a deadline.
03
Learning is not an add-on
The educational angle is where each game starts, not a reward screen bolted on top.
04
No ads, no tracking
A children's game has no business selling a child's attention on. No advertising and no third-party trackers.
Build log
How it was made
I write up what got built, what broke and how it was fixed. Not a tutorial blog — notes on what actually happened, including what went wrong.

A camera off the cloud — custom firmware for the Conecto Bullet 6S
A cheap security camera with 8 MB of flash, an ARMv5 core and a hard dependency on the Tuya cloud. I dumped the firmware over UART and wrote my own RTSP server in C.
Read the entryReading an Aidon meter — P1/HAN and DLMS/COSEM
Finnish smart meters speak DLMS/COSEM out of the HAN port. A custom ESP32 circuit reads consumption every ten seconds straight into Home Assistant.
A plant sensor that lasts years on one battery
The ESP32-C3 datasheet promises 5 µA in deep sleep. Reality is 600 µA, and 90 % of that is a single indicator LED. A soldering iron quadrupled the battery life.
Ira — an artist site with a shop that runs itself
A Nuxt 4 site for the artist Ira. The merch shop runs unattended: orders to Printful, checkout through Snipcart, emails sent automatically.
Palttala — historic lakeside cabin
A bilingual website for Palttala, a historic 1805 log cabin on Lake Näsijärvi near Tampere — 6+6 guests, hot tub, private beach.
kortit.io — a real-time card game on Durable Objects
A browser card game running on Cloudflare Durable Objects. One object per table holds the game state, with no separate database during play.
A laser engraver made from an old 3D printer
The Geeetech i3 had reached the end of its life as a printer. The frame, motors and motion axes were fine, so it became a laser engraver instead.
Hillala — educational games for kids, built in Godot
A collection of games built in Godot for my own child. Every game has an educational angle, and a parent sets the age and sees the time played.
The archive fills up as it goes. An entry appears when the work is done, not before.
All entries →Experience
Chief Technology Officer
Responsible for technology and product development. Services include huuto.net and hintaseuranta.fi.
Founder and developer
One-person studio: sites, applications, automation, IT consulting and hardware work for small businesses.
Head Developer, Point of Sales
First integrations tech lead, moving acquired brands onto Sambla's systems. Then led development of the point-of-sale system.
IT Team Lead
Started as a front-end developer, grew into the whole stack and finally led the IT team. Built a CRM from scratch, moved every brand's front end onto one Nuxt codebase, and helped move from a single server to a load-balanced setup.
Get in touch
Got a problem that needs solving?
Tell me what needs building, or what's broken. I answer every message myself, usually within a day.
