For over a decade, Ruby on Rails was the only stack I fully trusted myself in as a solo or small-team engineer. This year, AI made that loyalty optional, and Python is the proof: I shipped my first production code in a language I'd never used professionally, and trusted it.
Claude Code reviewed that first Python code and said the craftsmanship read senior, edging into staff-level. I take a verdict like that with a pinch of salt, AI tends to be generous with compliments, but it matched something real: the same discipline I'd spent a decade building into Rails work.
Rails earned that trust honestly. The good defaults ship with it: clear boundaries, an ORM, a testing culture, conventions that enforce discipline even when you're moving fast. I flirted with TypeScript, React, and other stacks more than once, and never got back to that speed or that quality bar. Not because those languages are worse. Because the internet gives you ten plausible answers to "how do you do X pattern in language Y" and no reliable way to know which one actually holds up. So I kept reverting to Rails, the one place I already knew the right answer.
What changed isn't the language, it's the order I tested things in. I battle-tested the workflow on Rails for years before I trusted it enough to swap the language out for Python. Ruby and Python aren't like-for-like, but the practices underneath them are: test discipline, clear boundaries, dependency restraint, sane security defaults. The agent handles execution now, the actual writing and rewriting of code. The start, the finish, and every judgement call in between are still mine. Once the workflow held the line in Rails, the language stopped being the barrier.
Every PR still carries the agent's evidence of which practice it applied, where, and why, proof for the reviewer that it met the bar. Built for the reviewer, that same trail doubled as a learning tool for me stepping into a language I'd never shipped in. It would do just as much for a junior engineer picking up their first stack.
I'd still recommend Rails first for any startup building a web product. It's fast, token-efficient, and the structure is honest. But I'm no longer stuck there. The stack stopped being the safety net.
Rails never made me a disciplined engineer. It made discipline hard to avoid. Now the workflow does that job, whatever the language, and shows its work while it does it.
Claude Code reviewed that first Python code and said the craftsmanship read senior, edging into staff-level. I take a verdict like that with a pinch of salt, AI tends to be generous with compliments, but it matched something real: the same discipline I'd spent a decade building into Rails work.
Rails earned that trust honestly. The good defaults ship with it: clear boundaries, an ORM, a testing culture, conventions that enforce discipline even when you're moving fast. I flirted with TypeScript, React, and other stacks more than once, and never got back to that speed or that quality bar. Not because those languages are worse. Because the internet gives you ten plausible answers to "how do you do X pattern in language Y" and no reliable way to know which one actually holds up. So I kept reverting to Rails, the one place I already knew the right answer.
What changed isn't the language, it's the order I tested things in. I battle-tested the workflow on Rails for years before I trusted it enough to swap the language out for Python. Ruby and Python aren't like-for-like, but the practices underneath them are: test discipline, clear boundaries, dependency restraint, sane security defaults. The agent handles execution now, the actual writing and rewriting of code. The start, the finish, and every judgement call in between are still mine. Once the workflow held the line in Rails, the language stopped being the barrier.
Every PR still carries the agent's evidence of which practice it applied, where, and why, proof for the reviewer that it met the bar. Built for the reviewer, that same trail doubled as a learning tool for me stepping into a language I'd never shipped in. It would do just as much for a junior engineer picking up their first stack.
I'd still recommend Rails first for any startup building a web product. It's fast, token-efficient, and the structure is honest. But I'm no longer stuck there. The stack stopped being the safety net.
Rails never made me a disciplined engineer. It made discipline hard to avoid. Now the workflow does that job, whatever the language, and shows its work while it does it.