COBOL moved complexity from machine instructions to business logic specification. 4GLs moved it from code to data modeling. No-code moved it from programming to workflow configuration. LLMs are moving it from syntax to verification. The complexity never disappeared. It accumulated at the new boundary. And the new boundary is arguably harder than the old one.
Category: Uncategorized
WebMCP Is Coming: How AI Agents Will Reshape the Web
On February 10, 2026, the Chrome team quietly published a blog post announcing something called WebMCP. It was framed as an “early preview,” tucked behind a feature flag in Chrome 146. If you blinked, you missed it. But if you understand what it actually does, you realize it might be the most consequential browser feature…
Full-Time CTO vs. Fractional: The Real Math Nobody Shows YouThe Math on Hiring a Full-Time CTO (And Why It Rarely Adds Up)
Every startup founder eventually faces the same inflection point. The product is gaining traction. Technical decisions are getting more complex. Investors are asking who’s driving the technology strategy. The board wants a name next to the CTO title. And so the search begins for the person who will own the technical vision, build the engineering…
Evaluate: Why Human Judgment Is Non-Negotiable
We have arrived at the phase of ADD where the most important human skill comes into play. You have written a specification. You have generated code using appropriate context and patterns. Now you must determine whether that code is actually correct. This is not a formality. AI-generated code can be syntactically correct, pass basic tests,…
The Quiet Builders: A History of Introverts in Engineering and What AI Means for the Future
Throughout human history, there has always been a place where the quiet ones could excel. A domain where deep thinking mattered more than small talk, where careful analysis outweighed charisma, and where the quality of your work spoke louder than the volume of your voice. That place has been engineering. From the mathematicians of ancient…
What Makes Ruby Different: Unique Structures vs Python, Java, JavaScript
In my previous post on Ruby’s building blocks, I covered when to use Struct, Data, Class, and Module. But I glossed over something important: many of these constructs don’t exist in other languages – or exist in such diminished forms that they barely count. Ruby isn’t just another object-oriented language with different syntax. It has…
A CTO Would Be Bored by Tuesday
Founder: “I need a CTO.” Me: “For what?” Founder: “Technical leadership.” Me: “What technical decisions are you making?” Founder: “Which tools to use. How to connect them. What to build vs buy.” Me: “You need a technical advisor. Maybe 5 hours a month.” Founder: “Not a full-time hire?” Me: “You’re pre-product-market-fit with 2 clients. A…
The AI-Native Rails App: What a 2025 Architecture Looks Like
Introduction For the first time in decades of building products, I’m seeing a shift that feels bigger than mobile or cloud.AI-native architecture isn’t “AI added into the app” it’s the app shaped around AI from day one. In this new world: And honestly? Rails has never felt more relevant than in 2025. In this post,…
Why “Lines of Code” Is the Wrong Way to Measure AI Productivity in Software Development
Last week, I had a conversation with another CTO that got me thinking about how we measure productivity in the age of AI-assisted software development. Here’s how it went: CTO: Right now, about 70% of our software output is generated by AI.Me: Interesting. How are you measuring that?CTO: By looking at the proportion of code…
May 1st, Workers’ Day: Reflecting on the Future of Developers in the Age of AI
Every May 1st, we celebrate Workers’ Day a moment to recognize the hard work, progress, and dignity of people across every profession. Traditionally, it’s a day to honor laborers, craftsmen, and knowledge workers alike. Today, in 2025, it’s worth asking: What does Workers’ Day mean for developers, engineers, and tech builders when AI is rewriting…