Another year wrapped. Time for the obligatory reflection post—partly for you, mostly for future me who will forget what 2025 felt like.
The Theme: Side Projects Actually Shipped
Looking back, 2025 was the year I finally broke out of the endless planning-but-never-launching cycle. Four projects went from idea to production. Not all of them successful (we'll get to that), but all of them shipped.
That matters more than I expected. There's something psychological about having things out in the world, being used by real people, generating real feedback. It's different from local prototypes that only you ever see.
What Shipped
NebenkostenPro (September): The utility cost statement generator for German landlords. AI reads your bills, generates legal documents. Launched in September, grew slowly but steadily. Not life-changing revenue, but profitable enough to cover server costs with some left over. More importantly: it solved a real problem, and people pay for solutions to real problems.
BoberHouse (July): The Telegram bot for household tasks. Started as a weekend project for me and Melissa, now runs daily in our apartment. Haven't released it publicly yet, but friends keep asking for access. Maybe 2026 is the year to open it up.
The Reply Bot (October): Built an AI that tweets in my style. Ethically questionable? Maybe. Technically interesting? Definitely. Still running, still making me think about what "authenticity" means in an AI age.
This Blog (December): Meta, I know. But starting a blog felt like shipping something too. A commitment to writing regularly, to processing thoughts publicly. So far so good—you're reading proof that it worked.
What Didn't Ship
The graveyard of abandoned projects:
A habit tracking app: Started in March, abandoned in April. Turns out there are approximately 47,000 habit tracking apps and none of them need another competitor.
An AI meeting summarizer: Got excited about the concept, built a prototype, realized Otter.ai and a dozen others already do this better than I could.
A German vocabulary trainer: For expats learning German. Built the core logic, got stuck on content creation. How do you generate thousands of example sentences? Gave up.
Pattern recognition: I abandon projects when I realize someone else has already solved the problem well, or when the non-technical parts (content, marketing, support) overwhelm the technical parts.
Tech Reflections
LLMs changed everything. Not in a hype-y way, but in a practical "this is now possible" way. NebenkostenPro couldn't exist without GPT-4's vision capabilities. The reply bot needs language understanding that wasn't available two years ago. I'm building things that simply weren't buildable before.
Go is my new default. Coming from years of JavaScript/TypeScript, Go felt restrictive at first. Now it feels liberating. One binary, no runtime dependencies, compiles fast, runs forever. For backend services and CLI tools, it's become my go-to.
Simple stacks win. SQLite over Postgres for side projects. HTML/CSS/jQuery over React when you don't need reactivity. Single-file deployments over microservices. Every complexity you avoid is maintenance you don't have to do.
Docker everywhere. I used to resist containerization for small projects. "Overkill," I thought. Now everything runs in Docker on my VPS. Reproducible deployments, easy backups, simple rollbacks. The initial setup cost pays off fast.
Work Stuff
The day job at Spekter continues. Still leading the dev team, still building cloud infrastructure. The work is good—challenging enough to be interesting, stable enough to fund the side projects.
I've been thinking about the "employee vs. founder" question more this year. The side projects scratch the founder itch. Maybe someday one of them grows big enough to be a real business. Or maybe they stay side projects forever, and that's fine too.
No dramatic career changes planned. But I'm keeping my eyes open.
Life Outside Code
Travel: Two weeks in Vietnam in February. First time in Southeast Asia that wasn't just beaches. Ho Chi Minh City was chaotic, overwhelming, and absolutely alive. Would go back.
Health: Got back into running after a two-year hiatus. Finished a 10K in October. Not fast, not pretty, but finished. The discipline of training was as valuable as the fitness.
Relationships: Three years with Melissa now. The BoberHouse bot has genuinely improved our household dynamics, which is either romantic or deeply nerdy depending on your perspective.
Numbers
Because I'm a nerd who tracks things:
- Commits pushed: ~800 across all projects
- Blog posts written: 4 (aiming for more in 2026)
- Coffees consumed: Too many to count, but significantly reduced after switching to green tea in September
- Books read: 12 (goal was 24, reality wins)
- Money made from side projects: Enough to cover hosting with some left over
- Money spent on side projects: Roughly the same amount on API calls, domains, tools
Net profit: approximately zero. But the learning was free.
Looking Ahead to 2026
No grand resolutions. Just intentions:
- Ship more: The best projects of 2025 were the ones that launched. More of that.
- Write more: This blog exists now. Use it.
- Automate more: The AI tools are getting good enough to handle real work. Time to let them.
- Touch grass occasionally: Code is great. Sunshine is also great. Balance.
See you in the next post. And next year, in the 2026 review.
Happy New Year. 🎉