It's a bright Monday morning, and you've just poured yourself a fresh cup of coffee. You're comfortably settled at your desk, getting ready to tackle another week. Suddenly, your inbox explodes with urgent messages - Prod is down!
Whoops, you broke it.
But wait, before you spiral into self-blaming and regret, remember this - You are not your code.
If you're the first to know, you are, at that precise moment, the responsible party. Capability is culpability.
So, what's worse? Prod down for two hours, and no one knew? Or Prod was down for two hours, and you knew 45 minutes ago but didn't raise the alarm because no one else seemed concerned?
It's a tricky conundrum. (Is it?)
So, grab your coffee, buckle up, and let's navigate this adventure from mid to senior. It's all about growing, learning, and, yes, even breaking things along the way.
Contrary to popular belief, failure is not the enemy of progress. In fact, failure is often the most effective teacher. It's through our mistakes that we learn the most valuable lessons. As a developer, the occasional stumble is inevitable, but it's how you respond that truly defines your growth and trajectory.
When prod goes down, your first instinct might be panic or even denial. But it's vital to move past these initial reactions quickly. Admit the mistake, alert your team, and focus your energy on finding a solution. Transparency and ownership are the hallmarks of a senior developer.
It's essential to remember that making a mistake does not make you a bad developer. Often, developers, especially mid-level ones, identify so strongly with their code that a bug or failure can feel like a personal flaw. But that's not the case. You are not your code.
As you transition from a mid to senior role, it's important to cultivate a sense of detachment. This doesn't mean not caring about your work. Instead, it means understanding that even good developers can write bad code sometimes. It's part of the process. What matters is learning and improving from these experiences.
Making mistakes is a part of the job, but it doesn't end there. What separates mid-level developers from senior ones is their capacity to learn from their mistakes.
After the initial fire has been put out, it's essential to conduct a post-mortem. If not for your organization, do it for yourself. Understand why the mistake happened, what could've been done to prevent it, and how to avoid it in the future. Be thorough, be honest, and most importantly, be proactive in your learning.
A great definition of intelligence I've come across recently:
Intelligence: How quickly you learn - ie the measurement of how quickly you change your behavior in same situation.
As a senior, your approach to mistakes will also set the tone for how your team handles them. Cultivating a culture where mistakes are seen as opportunities to learn rather than reasons to punish is key. This means leading by example: openly admit your mistakes, share your learnings, and maintain a positive, growth-oriented mindset.
Of course, the ultimate goal should always be to avoid breaking prod in the first place. This is where good processes and safeguards come into play. Implementing robust testing protocols, conducting code reviews, and promoting a culture of quality assurance will go a long way.
Breaking prod is a nightmare scenario for many developers. But it's also an opportunity. An opportunity to learn, to grow, and to demonstrate leadership. By embracing these opportunities, you'll not only become a better developer but also a better leader.
Here's mine:
When I was a young pup, back when it was the norm to connect and edit files live via FTP, I pressed `cmd+a` and `delete` in the wrong folder... and didn't notice until it was 60% through deleting the entire app. 😱
Through my cold, nervous sweat (and as soon as I could breathe again), I flagged it. Fortunately, my seniors were patient with me and taught me how to use the backup restoration system. They were kind and shared their own stories with me.
To me, it ended up feeling like a rite of passage.
Also published here.