Email the Author
You can use this page to email Tomas Votruba about Upgrade Every Day.
About the Book
"Upgrading software is like basic hygiene. Do it daily for 10 minutes, and you'll live a long and healthy life.
Skip it for a year or two, and you'll find yourself in the hospital."
Yet, we often perceive software upgrades as something to avoid and postpone as long as possible. We assume it's a massive undertaking that requires stopping everything we're doing to dive deeply into a risky process that could take years to complete. "If it works, don't touch it," right?
But what if we adopted the opposite approach? Instead of postponing and allowing problems to pile up slowly until they become impossible to handle, we face them immediately. We tackle upgrades the moment they're necessary—now.
We upgrade every day.
I've employed this method for the past eight years, working hands-on with upgrades for clients worldwide. This book distills approaches that are time-tested and proven effective in practice. You'll learn:
- Why upgrading is easy but refactoring is not.
- How to approach a legacy project you've never encountered before.
- How to prevent your current project from ever becoming a legacy codebase, avoiding issues that quietly but steadily accumulate.
- How to apply Occam's razor to problems of any size.
- What the "touch the ceiling" technique is and how to utilize it in desperate situations when upgrading seems impossible.
- A set of go-to solutions for a wide range of problems—from dealing with a PHP library removed from Packagist and projects lacking type declarations, to major framework upgrades.
Every upgrade contains low-hanging fruit. This book shows you how to identify these opportunities, start small, and build momentum confidently. Soon, upgrading your software will feel as routine and effortless as taking a shower.
About the Author
Tomas Votruba is a software architect and open-source advocate who makes complex PHP codebases easier to work with. He’s the creator of Rector, a tool that helps thousands of developers upgrade their legacy code automatically.
Tomas writes with the same clarity and precision he brings to code: sharp, no fluff, always actionable. When he’s not coding, you’ll find him pruning trees, exploring train timetables, or benchmarking CPUs like Threadripper for real-world dev workflows.
He believes the best solutions are boring, fast, and easy to maintain.
His writing speaks to devs who value craft, clarity, and getting things done.