Stop being a mutt dog and be a senior
In Brazilian portuguese there’s a popular expression: the mutt dog syndrome. It happens when one automatically feels they are less than the other person without actually grasping their knowledge around a given subject. Fear is what drives the syndrome. It’s not a paralizing fear, but being afraid of messing something, or having your contribution denied/mocked on, already counts as fear.
What's the difference between a junior, a staff and a senior engineer?
- The junior is a beginner. They will need assistance for doing their tasks, and some oversight until they can be independent.
- The staff engineer is already aware of the technical part. And for the things they don’t know, they are comfortable looking for a solution, testing and shipping themselves. He can take care of himself and won't need any handholding for any technical subject.
- Now the senior accumulates the technical knowledge, but is also the person responsible for the team's work environment. The senior fosters a good relationship for everyone to work, fosters collaboration, eliminates noises, wacky competition, and brings things back on track when they go south (by the way I know a lot of engineers who say they are senior, but are too proud to offer help and to teach. You got to have a good amount of humility to be a true senior, and pride is your number one enemy).
It takes courage for moving from a staff engineer to a senior one. And that typically comes with experience. The more experience you have, the more comfortable you'll be on your job, simply because you already know some of the bad outcomes that can come from a given scenario, and you'll be prepared to handle them when they come. That courage is the result of confronting the fear present in the syndrome.
I’m a big fan of the saying “ask for forgiveness and not for permission” when we get to code deploy moments. Interacting daily with people who prefer to send an email, make a big plan, consult every stakeholder before applying a change, it just creates more bureaucracy. The planning of this entire change takes a week, when the actual change takes an afternoon! Organizations are faster when there's less dependencies. Many times, this excess of preparations and double/triple/quadruple checks with everyone that possibly can be impacted by something, is the result again of the same fear as the syndrome's.
Now for all the mid-level and senior engineers out there, who are overthinking around a task, I want to encourage: do it. Have a clear understanding of what you are doing and the environment around you, then get over the fear and do it. Delete the commented part of the code that will never be used again. You don’t need to save it! Git has it already. If you are causing a downtime, of course let’s plan for it first. But if you’re not, come on! Do it. Ship it. And then use the feedback cycle to improve again the process and your changes. Take the risk. Make things happen.
And finally about the mutt dog. Simply put: it’s wrong. It takes a while to realize but it’s just wrong. The language you code, how good you are at coding are not what takes you from staff to senior. And it’s even less relevant to the impact you are capable of doing. Being a senior is taking care of others, is taking the risk, is communicating clearly and brutally honestly to higher management, sharing clear expectations, and anticipating things that can go wrong.
And when you take the risk and things do go wrong, it’s still alright. The problem is not the error on your screen, the problem is not learning from it. So put your head up, say you messed things, fix it, and learn from it.