The Three Tiers of Software Development (Where will you land?)
Software development is stratifying into three distinct tiers. Where you land will determine whether you make more money, the same, or far less than today.
Software development is stratifying into three distinct tiers. Where you land will determine whether you make more money, the same, or far less than today.
After two years of false starts with the Bristlemouth platform and permit headaches, I’m revisiting my whale song project with a completely different approach: semi-autonomous floating drones. The regulatory landscape has forced a rethink, and honestly, it might lead to something better.
Looking back at 2025, one theme dominates: AI agentic programming went from novelty to necessity. This year transformed how I think about software development, career advice, and even my personal hardware projects. Here’s what I wrote about, what I learned, and what I expect in 2026.
Five factors now drive language choice: developer adoption, job market demand, LLM code generation quality, concurrency handling, and deployment complexity. Here’s how they intersect.
A friend recently asked me about restaurants in San Francisco and was shocked I’d never written about Foreign Cinema. Honestly? I was shocked too. It’s my favorite restaurant in the world. Yes, the world. And I travel to London, Paris, Mexico City…
“We are nearly at coder-equivalency for economically useful coding. A sufficiently experienced software engineer can now write >90% of production-ready code purely through prompting.” Yes, exactly.
I let Claude Code do whatever it wants without asking permission.
Before you spit out your coffee: I keep it in a jail. A container jail.
I don’t like the term “vibe coding.” I strongly prefer “AI-assisted software engineering.” But regardless of what you call it, Gene Kim and Steve Yegge have written a book about it - and their journey from skeptics to true believers is the most interesting part.
Python dominates robotics today. C++ is the serious choice. But I’m starting to think we’ve been sleeping on Go. Here’s why I’m actively exploring it.
In my previous post about Claude Code, I talked about using VS Code devcontainers to safely run Claude in “dangerous mode.” That was great for a typical software project. But what about something harder? What about porting a complex hardware-interfacing library from Python to Go, where you need to deeply understand USB protocols, radio registers, and firmware internals?
That’s exactly what I did with gocat – a Go library for controlling the YardStick One sub-GHz RF transceiver. And Claude Code was instrumental in making it happen.