Ozymandias on Rails. The Pedestal Inscription | baweaver
baweaver
baweaver
Software Engineering
Simplicity is hard work. But there's a huge payoff. The person who has a genuinely simpler system is going to be able to affect the greatest change with the least work.<br>— Rich Hickey
ruby<br>June 28, 2026
Ozymandias on Rails. The Pedestal Inscription
“Look on my Works, ye Mighty, and despair.”
Percy Bysshe Shelley, “Ozymandias” (1818)
Legacy. It’s an interesting word, isn’t it? What is a legacy, and what does it mean to us as developers? In Shelley’s poem, a traveller finds a ruined statue in an empty desert. Two legs, a shattered face, and a pedestal upon which there is an inscription: My name is Ozymandias, King of Kings; Look on my Works, ye Mighty, and despair. Nothing remains of the works. The empire is gone, faded to time and the desert sands. The mighty should indeed despair, because even a King of Kings is nothing to time.
Why is this relevant to us today, as Ruby engineers? What lessons can we learn from Ozymandias?
For those who do not know me well I have spent close to 15 years now inside Rails monoliths that look a lot like this. The ones that succeeded, and because of that grew and hired hundreds to thousands of engineers who continued to build into the next decade or more. One day you look around, and you realize that large swaths of these systems belong to nobody, error channels have been red for months now and the problem seems intractable, and not a single person can hope to hold the shape of it in their head anymore.
The monument still stands, the legacy that got us here, but all things crumble and fade over time. The people who built it are likely long gone, and piece by piece the knowledge fades with them, until what is left feels like a ruin and no one quite knows what to do about it.
This series is about what you do when you find yourself in such a situation.
Vanilla Rails is plenty (until it isn’t)
But how is it we get to such a state and such a legacy? Because Rails is designed that way.
There’s a long-standing argument in the Rails world that vanilla Rails is plenty. Callbacks, concerns, fat models, the usual omakase experience Rails gives you. The argument is that disciplined use of the defaults scales further than most people credit, and that reaching for architectural abstractions is usually a way to import complexity you don’t need. 37signals states it plainly.
It’s the through-line of a decade of Rails leadership. DHH argued for the monolith over microservices in 2016, allowed pulling a single service out when the monolith strains in 2020, built the framework on a doctrine whose purpose is to equip a generalist to build a whole system rather than require teams of specialists, and doubled down at RailsWorld 2025 with his framing of “merchants of complexity” (a term from a 2023 post that became the keynote’s central theme) selling solutions to problems the monolith was supposed to solve on its own.
To be fair though, it’s also more careful than its reputation implies, as these opinions are scoped. Microservices are for companies of thousands, while the monolith is for small teams, and copying patterns from those large companies is a good way to hurt small ones. The 37signals post qualifies itself the same way, closing on an admission that they don’t know whether the approach holds at Shopify’s scale.
This series is not an argument for microservices. It’s about how someone in the middle can chart a path forward without the framework helping them get there. The qualifications are there. They just answer the wrong question, and they don’t travel.
Every argument is about a team at a single point in time. The problem is that teams grow, and a monolith rots when that team of twelve becomes hundreds over a decade and institutional memory thins with every departure. How long before that company is no longer the same people? Before everyone who wrote the initial version is long gone? Each departure is another piece of context and knowledge leaving, some of it written down, but a lot of it isn’t.
They also don’t stick like headlines do, because readers remember bold titles, not footnote disclaimers. People remember “majestic monolith” and “vanilla Rails is plenty.” They don’t remember “for a team our size, at our tenure, under our load.”
There we find Ozymandias. The pedestal doesn’t read these works are impressive for a kingdom of a certain size. It reads look on my Works, ye Mighty, and despair, as if the conditions that produced them would hold forever. The systems I keep inheriting were built by people who carried the headline without the footnote, and by the time the conditions changed nobody remembered there was a footnote to go back to.
What actually goes wrong
I’ve been writing about the mechanical side of this all month in Rails: The Sharp Parts. These are failure modes in the abstractions themselves, and they break regardless of how good your team is or how...