Becoming a Senior Engineer: the Checklist
We often talk about these reputed senior software engineers, but we rarely have the answer on how to become one. Should you strive to take on this role and what does it really take to become one?
Who am I, and why do I have the audacity to talk about seniority? I like to think of myself as someone that has been into programming ever since elementary school, when I hacked and modded characters in Diablo II, back in 2002, but the reality is that I really got deeper into the world of programming in 2009, when I enrolled in the Faculty of Mathematics. I landed my first job in the gaming industry in the beginning of 2015. Since then I have worked on projects in game development, native mobile development, web and of course any attention-grabbing domain that made me spend countless nights buried in passion projects.
Today, I am Head of Development at Two Desperados, taking on the leadership role for the last couple of years and leading a great team of 20+ engineers.
If you’re interested in a career in Two Desperados or gaming industry in general, you can contact me directly via my LinkedIn Page. I’ll be happy to answer any question you might have.
Are we becoming seniors at a faster pace because time passes more rapidly than before?
I could try and be funny here by saying that in the current emerging markets time passes more rapidly and therefore it is possible to have a senior engineer with (only) three years of experience.
Level of seniority depends on different contexts, be it working full time or freelancing or participating in entrepreneurial projects in different industries. Interacting with diverse individuals and technologies builds more experience and helps you obtain a higher level of seniority. However, I don’t have the answer to how many years you need for which ‘label’: medior, senior or a super mega guru.
I know places where you can get to a senior level pretty quickly, hit the proverbial tech track ceiling and stay on that level until you quit or switch to a management track. But there are also other companies where you will jump through many hoops, meet different challenges and switch multiple responsibilities and labels before you are called a senior.
The truth is that in different environments we will have different labels and levels, different pay grades and roles, but a set of bare minimum common traits and characteristics still apply for a ‘senior’ role.
And this is exactly why I started writing ‘the senior checklist’. I wanted to get a better understanding of what I see as essential for obtaining the ‘senior’ label.
1. A senior engineer understands the business and has a broader perspective.
A lot of engineers think we just need to focus on clean code, but code is just one of the pieces in the product’s puzzle. There are a lot of different teams at Two Desperados that assemble the whole puzzle, and they are all equally important in a thriving business. One should not forget about the other, and a senior professional should always think about how his part of the work impacts company goals. A company in the startup phase, or in a battle for a piece of the market versus extinction will probably not have the cleanest code as a priority, but just a functional product.
Think about what is needed from you to enable the company’s success.
2. Discuss the goals and how you can align your work.
You should ask other colleagues if they need help with their goals and you should pose the same question to your manager.
Management creates department or product strategies based on the company goals, and your part is to align your work with the product/company/department objectives. By achieving your goals you are already steering the company in the right direction.
3. Demand accountability and ownership from others.
The first step is always setting the context and expectations. The next phase is defining completion, success and failure criteria.
Get buy-ins from others on their tasks because that is the only way they can have ownership.
4. Be a mentor to junior engineers and have strong mentors to help you navigate and grow in the company.
Try helping your colleagues not make the same mistakes you did, teach them all you know and connect them with others. Guide them through their journey and take pride and joy in their accomplishments.
Having a strong mentor, who is able to guide and coach you is one of the most important things you can have in your career.
If you don’t have one in the company, and there isn’t anyone suitable, reach outside the company and find someone from the industry. You can even learn a lot from a bad example. However, when you are not sure where you are going, a good mentor will help you navigate that path they once stood on.
5. Ask your manager for stretch projects, or help them identify one for you.
You must take the wheel.
Ask for stretch goals, dive into bigger projects, define your learning and development. No one is going to do that for you. People with less experience, need directions and precise guidance but ‘seniors’ need to come with initiatives and solutions.
6. Don’t run away from time estimations, calculate them smartly and learn from mistakes. Own your estimations.
It is what it is–an estimate. Imagine if you asked your manager ‘Can I get this project?’, ‘When will I get a raise?’, and they answered: “I can’t really tell. I will let you know somewhere down the line”.
Not very helpful, right?
Now, I understand this is a sensitive subject for most. And yes, I got wrong estimates at times. The thing I’d advise you to do when you see your estimate is not correct is to notify the stakeholders in a timely manner. Simply, communicate the problem.
If you are having trouble estimating a task, split it up into smaller ones and then calculate the estimate. Add a 20% buffer for unexpected things. Think about the time for docs, testing, analytics, building and releasing. Think about the time it takes to get the estimation right. Prioritise tasks. Then present that to the stakeholders with two main points. You want a ‘good, quality code, bulletproof’ number? 13 days. You want the ‘quick and dirty, but it works’ number? 7 days. You want details? Give them the broken down, prioritised task list with estimates.
Own your estimates. The worst thing that could happen is for someone to tell you we need this in 4 days, because 13 is out of the question and you respond ‘Okay, I’ll do it in 4 days’. So, what just happened? Is your estimate that bad? Situations like these can ruin the trust between you and the stakeholders.
Be thorough with your estimations, break down the problem, and stick to it.
Something could definitely be done in 4 days, but this exact project–no.
These points only reveal the tip of the iceberg to what makes and who is a senior engineer. Not a scientist, not a mathematician, not a sociologist or a writer; but someone who uses the knowledge and techniques of all of these disciplines in solving engineering problems. Stay tuned for part 2.