How to advance your career without becoming a manager

Tor Erik Linnerud
AlphaSights Engineering
4 min readMay 23, 2016

Aaron Patterson, well known for his contributions to Ruby on Rails (along with many other things) recently posted a series of tweets about developer’s career progression, questioning the phrase “individual contributor”.

This prompted many interesting replies suggesting what appropriate tasks an engineer can take on as they gain more experience.

The compensation a business is willing to offer an employee is related to the scope of the problems the employee is able to solve for the business. Hiring people is hard and expensive so businesses prefer to solve problems with as few people as possible. So logically a business prefers a problem to be solved by a lower number of “individual contributors” rather than by a larger team that includes a manager.

Andreas Klinger pointed out that splitting employees into the buckets “management” and “individual contributor” is a historical artifact and less relevant to the way software development is done in 2016.

I would tend to agree with this, but there are several responsibilities that businesses often place on managers but not developers. These responsibilities, if adopted by developers, greatly increase their value to the business and ultimately their ability to attract higher compensation.

Some of the appropriate responsibilities that were suggested in the replies included coaching, mentoring, leveling others up, onboarding, debugging and infrastructure gardening.

As someone who is heading up a team of engineers but still writes code on a regular basis, here is my take on what I think makes for a valuable experienced engineer.

Keep tabs on what is happening elsewhere in the business

If you keep some level of insight into the ongoing affairs of the business in every function outside of your own, you are able to self direct and know what problems are actually valuable to solve versus just possible to solve.

Support your team members when they are stuck

Whilst most good developers will gladly pair or act as an on-demand mentor for more junior team members, it is more work intensive but very helpful to the team’s productivity to recognise when someone else is stuck and spend time with them to help them move forward. This often reveals areas where they weren’t aware that their lack of understanding was holding them back.

Lead others when the problem is too big to solve yourself

Engaging with a problem, breaking it down into smaller pieces that can be worked on by a larger team and making sure that pieces assemble into the right solution is an essential skill that any good developer should seek to master.

Stay on top of communication

Other employees need information to do their jobs and if you can provide information of relevance without them having to ask, you are likely to make them more productive (and they will probably like you more).

Always recommend the most appropriate technical solution

If you can be trusted to set personal interest aside and genuinely recommend the solution that is best for the business rather than the easiest or the one using shiny new technology of the month, no one needs to question the recommendation. You can’t do this unless you have context in the first place so remember the first point.

Take responsibility outside of your core areas

When one of our Managing Directors saw a nail protruding from the floor he took off his shoe and used that to hammer in the nail. No matter the size of your company there isn’t someone employed to take on every task, so from time to time you should expect to take on tasks that may not be technical in nature.

Recognise structural problems and take steps to fix them

Be aware of issues that your team is experiencing, try to find potential improvements and discuss these potential improvements with your team members and other leaders of your organisation.

Help the team grow

Over time it is natural that employees move companies. Being able to locate and pitch new suitable team members is essential to a business, and is something that everyone can take part in rather than considering it a separate business function.

Push the organisation in the right direction

Engineers are often ideally suited to spot business opportunities. You know what is easy and what is hard, what is possible and what isn’t possible. Rather than waiting on others to see what you see, evangelise your ideas and share them with the rest of the organisation.

Although the fulfillment of these responsibilities all consume some time, it is still possible to remain technically involved and work on code either directly or in close collaboration with a team. When experienced engineers adopt these responsibilities, the need for managers is greatly reduced and there is really no limit to how valuable you can become to the organisation.

With that being said, it is often the case that in the pursuit of some of these responsibilities, you need to enlist the help of others and you need to offer them guidance. It is therefore normal to find yourself with some form of leadership responsibility even if you are not a manager. Approach it as a necessity for the task to be done rather than a career objective in itself.

--

--

Tor Erik Linnerud
AlphaSights Engineering

Love building teams and solving problems with Ruby and Postgres. Former Technical Director at AlphaSights.