A Career in Programming

It’s time for a company takeover!

Well not literally, but professionally, since the path from a Senior Engineer leads to the ownership of entire projects and even organizations. In order to become a Staff Engineer, a programmer must first gain the title of an Advanced Senior Engineer and our blog post reveals the necessary steps involved for both of these high-ranking posts.

Advanced Senior Engineer

After spending years as a Senior Engineer, it won’t be hard to spend roughly the same number of years as an Advanced Senior Engineer. Exact numbers vary, but one year is a minimum, and one can expect to work at this post for three years or even longer.

This is not without reason, since these engineers exhibit not only ownership of the entire project/product, but take initiative to identify and solve important problems. They coordinate with others and set directions at project level, constantly taking part in the decision-making process.

At this stage, the issue of technical debt arises and has to be identified and tackled by Advanced Senior Engineers before it gets a chance to grow into a debt that requires up-front work to get involved.

When it comes to the work itself, excellent judgement is something that the programmer has attained so far. It is a much needed skill since Advanced Senior Engineers act as a resource to unblock and enable the entire team. They are the go-to experts in the entire company for at least one of the areas (Rails, Ember etc.).

Since they possess an understanding of the broad systemic architecture, they assume a new role of researching and even proposing new technologies, which will be essential in their next career step.

A Career in Programming

Staff Engineer

Multi- is the keyword to the tasks a Staff Engineers undertakes. Like managing one project/product wasn’t enough, now multiple teams and projects are put in the care of this position. Since not many programmers advance this far, there is no fixed period one spends as a Staff Engineer.

Basically, they are expected to exhibit ownership across the organization. By now, these programmers have made an unambiguous impact on the entire company’s future technical path. Their role is crucial when it comes to developing long-term strategies for complete and critical areas of business.

All the tasks they had as Advanced Senior Engineers are multiplied so they act as a resource on several projects/products and across several teams as well. They not only research new solutions, but are responsible for their successful implementation. The improvements they create have to prove stable, scalable and in general perform well across major business-critical systems.

They have to recognize more complex problems, break them down and swiftly come up with solid solutions. Staff Engineers are masters of debugging and technical guidance since they are the highest instance their fellow programmers address.

Last but not least, Staff Programmers are regarded as the driving force for multiple teams. Their cross-team work consists of hearing and guiding debates in order to produce a decision which they will feel confident enough to back. They provide teams with clear directions for the period of six months or a full year and identify the areas which need most care and planning.

Both of the posts we discussed require the ability to look into the future, of the industry, all the while coordinating and guiding other programmers. This is no coincidence, since the positions we write about in our final blog post have to assume responsibility for whole organizations and even the industry in its entirety. Stay tuned, just two more steps left before we reach the programming crème de la crème.