What a year it has been so far. So much happened behind the scenes that my output slipped from roughly one article a week to one a month. But sometimes you have to step back, look things over, and adjust before you can pick up speed again.
The biggest shift was in my day-to-day workflow, and that always comes with some relearning. The breadth of my technology spectrum stayed the same; its weightings did not.
Languages: What Stayed, What Shifted
For programming languages, that still means mostly Go and TypeScript. Zig moved to the side, my first detours into “modern” C++ are behind me, and Rust has returned alongside the established tools. Used with the right principles, Rust holds real potential for me. I won’t give up C either—though it was never my primary language.
The Web as the UI Platform
My focus on the web for user interfaces hasn’t changed. It is and remains a wonderful platform that keeps evolving. That said, I’ve stepped away from Lit again; it simply didn’t feel right for my purposes. Web Components in general are unnecessary for what I do. With Svelte, which I’ve always found exciting, I’ve found an excellent replacement.
I already laid out that trade-off in Lit vs Svelte: Rethinking Web Component Development.
Editor and Operating System
GoLand had to make way for Zed. The entire JetBrains ecosystem is excellent, but I was looking for something simpler again. Simplicity isn’t a slogan for me; it’s a conviction. And Zed simply fits better.
That choice rippled down to the layer beneath the editor, the operating system. gopls still performs poorly on
Windows, so the move to Linux followed, where I stayed with the classic. I’ve been running Ubuntu Desktop for a few
months now, and it finally lets the Go language server play to its full potential.
It’s a deliberate reversal of Why I Choose Windows for Software Development—and one I’m happy to make out loud.
The JavaScript Runtime
Bun also fell by the wayside—not because it isn’t good. There were simply a few details where I had to fall back on
Node. Node keeps evolving too, so the combination with pnpm currently offers the slightly broader setup.
One decision I’m walking back is Why Bun Has Become My Go-To JavaScript Runtime.
AI as a Tool, Not a Replacement
I never closed myself off from AI. What mattered from the start was treating it as a tool—and not as a replacement for experienced developers. I’ve been working successfully with OpenCode for months now, and I’m definitely more productive for it. Still, vibe coding remains an absolute no-go for me. Guided properly, though, the tedious typing is exactly the kind of work you can hand off.
That’s the same line I drew in AI in Software Development: Tool, Not Replacement.
Understanding the Machinery
Of course, you have to understand the AI landscape well to enrich your own projects with it sensibly. What always matters to me is mastering the fundamentals. So I built my own agents and MCP servers—not least to find out how plainly many previously complicated approaches can actually be implemented and operated.
A New Face for the Website
And finally, after almost two years, my website has a completely new look. It took that long to find the right positioning. As you can read on the homepage, my direction is clear: “Computer Science as Industrial Craftsmanship.” Craftsmanship grounded in computer science, applied pragmatically at scale.
The rebuild itself began in My GenAI Experiment: Building a Website with Authentic Content and AI Support.
Taking Stock
None of these decisions came from hype. They came from using the tools every day, noticing the friction, and being willing to walk back a choice I’d made in public. The stack is roughly the same in breadth; what changed is my confidence about which parts deserve my attention. If one lesson stands out from the year, it’s that a good tool earns its place by disappearing into the work—and that’s the bar I’ll keep applying.
Further Exploration
- Lit vs Svelte: Rethinking Web Component Development—how I evaluate the web as a UI platform
- Why Bun Has Become My Go-To JavaScript Runtime—the post I’m now walking back
- Why I Choose Windows for Software Development—the OS reasoning I revisited
- AI in Software Development: Tool, Not Replacement—the mindset behind how I use AI
- Reclaiming Pragmatism in Software Development—the principle underneath all of this
- Reflections on My Technical Writing Journey: A Year in Review—the last time I took stock

