Freelance engineer, Norway
Helgi Skjortnes
I build and ship the backend other people's businesses run on. Recently a vehicle marketplace in Kenya, a sales and operations platform in Norway, and a marketing data warehouse in the US.
About

I'm Helgi, Senior .NET Developer and Head of Integrations at SpareBank 1, working in the Norwegian financial sector. Outside that I take on freelance work: backend systems and integrations, data platforms, and the AI and infrastructure pieces that have taken up most of this year. Over the last decade I've built ERP systems, CRM integrations, marketplace platforms, analytics warehouses and agent orchestrators.
My background is self-taught. I started from a YouTube video about making games, got hooked, and never looked back. That path through restaurant ownership, sales, and eventually software consulting means I understand both the code and the business side of what I build.
When I'm not writing code for clients, I run a homelab that's probably more infrastructure than one person needs: a Proxmox cluster, around sixty containers across fifteen stacks, ZFS storage, Cloudflare tunnels, the whole thing managed with OpenTofu. My current obsession is Hrolbot, an autonomous AI agent system where Claude Code workers coordinate through a message mesh to write and review real code.
I'm based in Ålesund, Norway. I work with clients worldwide and I'm always interested in integration challenges, backend systems, and automation work.
Projects
A selection of what I have been working on, client platforms and the tools I build for myself. Each one says what the problem was and what shipped.

Marketing Data Platform & Reporting Dashboard
A BigQuery warehouse and reporting dashboard for a US marketing agency, replacing a spreadsheet workflow with one source of truth per client, plus an assistant that answers questions over it in plain language.
Experience
View full experience →Technologies
Databases
DevOps
Frameworks
Languages
Platforms
Tools
Self-Hosted Infrastructure
Homelab
Self-hosted infrastructure and services
Blog
View all posts →
It Wasn't the Load Balancer: Stale MySQL Stats After a Migration
86 tables told MySQL they were empty, two days after 25 GB had been loaded into them. One query to find stale InnoDB statistics, and the second slowdown that same night that had nothing to do with them.
I Wrote a Linter for Text That Sounds Like AI
Most people can spot AI text within a sentence or two now, and once they've spotted it they stop reading properly. So I built a checker that catches the tells before anything leaves my machine, calibrated on my own writing, and it learns from the edits I make.
Setting Firefox Bookmark Keywords From an Extension, Without an API for It
Firefox extensions can't set bookmark keywords. There's no API, and there hasn't been one for ten years. I needed it for my container add-on anyway, so Passport signs in to your Mozilla account and writes the keyword through Firefox Sync instead.
Get in Touch
Have a project in mind? I'd love to hear about it.
Get in touch