IoT at the grid edge by day, home lab tinkerer by night. Based in Tampere, Finland.
I'm Charles Leerink. Skadi Labs is where the side projects live — some are running in production, some are gathering dust in a container graveyard.
Day job is Technical IoT Lead at Landis+Gyr, keeping smart metering infrastructure honest. Before that: eight years at Sonos, a stint at Wirepas doing IoT mesh networking, maritime logistics at Seaber. The common thread has always been the gap between how systems are supposed to work and what actually happens when you plug them in.
Most things here are Python and FastAPI because I'd rather ship something Tuesday evening than spend the week picking the right framework. Local-first because I'd rather own the database than pay a subscription to access my own data.
Architecture decisions, implementation details, and things I figured out the hard way. Mostly about systems that run on hardware I own, AI that doesn't phone home, and the gap between how things are supposed to work and how they actually do.
Find more on my LinkedIn profile.
What I discovered by treating ChatGPT like a Linux system and exploring the containerized environment behind every conversation
Read article →
The bugs, fixes, and lessons from real-world testing of my self-hosted Sonos scrobbler.
Read article →
After three months of dogfooding, SpinStack is ready for a small group of testers. A self-hosted music analytics platform for Sonos users who want to own their listening data.
Read article →Side projects that started as a problem and refused to stay small. Some are in production. Some are in the container graveyard. These are the ones still running.
Self-hosted music tracking platform. Monitors Sonos devices, logs every track played, and manages vinyl collection — without sending anything to Last.fm.
Local AI agent architecture with a tiered approach to RAG — routing queries through layers of specificity before hitting vector search, because standard RAG gets noisy at scale.
Middle-earth themed home lab. Hardened jump server and bastion host, configured with Ansible. SSH hardening, Fail2ban, AIDE file integrity monitoring. Next up: full observability stack.
Scrapes Finnish property listing sites and alerts on new mökki matches. Built because manually refreshing listings felt like playing the stock market.
Countdown timer and instructions for downloading your data from the platforms that have it. Pure HTML, CSS, and JS — no frameworks, no trackers.
Compares IKEA product prices across Finland, Sweden, and the Netherlands with currency conversion. Rate limited, because IKEA's servers deserve respect too.
I take on a small amount of consulting work where my background is actually useful — critical infrastructure, IoT integrations, and local-first AI systems. If that sounds like your problem, get in touch.
Systems where failure has real consequences
I've built technical operations for high-trust environments — energy infrastructure, IoT deployments, carrier integrations. Not strategy decks: actual implementation of hardened processes, incident response frameworks, and resilience systems that hold up when things go wrong.
AI that runs on your hardware, not someone else's
I build AI systems that stay on your infrastructure. Local LLM deployment, vector search pipelines, and practical automation — for environments where sending sensitive data to a cloud API isn't an option.
Getting teams to actually use what you've built
I've delivered SDK coaching, API onboarding, and integration workshops across Europe, Asia, and North America — mostly for teams where hardware, software, and carrier operations meet and nobody fully understands the other side.
Email is best. If it's consulting-related, a sentence or two about the problem is more useful than a brief.
hello@skadilabs.dev