Software Developer Career Evolution: The Middle Years
Another day. Another code review.

Software Developer Career Evolution: The Middle Years

In the first part of this four-part series we took a look at what it means to be a junior developer. More specifically, I covered my definitions of the first two tiers a developer goes through.

You can find that article here: Software Developer Career Evolution: The Junior Years

In this article I will cover tier three and tier four. Note that when a developer reaches the fourth tier in their career, they have usually been in industry long enough to know whether or not they prefer to go down a people management path or stick to primarily being an independent contributor. People managers tend to end up as team leads, development managers, and CTOs, while independent contributors end up as architects, principal architects and sometimes CTOs as well.

Title: Software Development Engineer II

Tier 3

You have been in industry for about half a decade or more. You have mastered all the technologies you have typically needed in the companies you have worked for. At this point, you have stopping thinking about yourself as a back-end developer, middle-tier developer, or front end-developer. You realize that in order to have a functional and versatile team that delivers on schedule that you might need to be anything the team needs at the time. You start to see yourself as a full-stack developer, someone who can fairly quickly pick up new tech if it means meeting the deadlines. Mentoring junior developers is something you are starting to do a lot more of and you are beginning to struggle with finding the right balance between coding yourself and teaching others. On the one hand you feel you can get things done quicker if you work alone, but on the other you get a nagging feeling that it would probably be better that you help others ramp up even if it means a slight decrease in your own productivity.

Responsibilities

The requirements you encounter start to become a lot vaguer then they have been in the past. You are expected to participate in meetings breaking down business requirements into technical documents; documents you have up to this point been handed by a more senior developer. You are now that more senior developer and junior developers are starting to count on you. You are expected to estimate time against these vague requirements before you have full knowledge of the technical consequences and you do this by reaching into your experience of similar work done on other projects. You are expected to set an example to the other team members. Your habits and approach to the job will be something mimicked by juniors and therefore a violation of conduct will be treated much more seriously than if you were a junior developer. You will no longer be excused from making junior mistakes. When you make a junior mistake, you will be punished where a junior would not have been punished for the same mistake.

How You Get Promoted

You have learned to take full ownership of more complex tasks. You are judged to be reliable in estimating both time and resources to meet deadlines. Though you are still not making widespread architectural decisions, you are someone who can be relied upon to execute tactical missions in delivering work that involves more than just yourself. You do not make excuses anymore about the lack of information as you have figured out that it is your job to push things through to completion and solicit the resources you need to do so. You start to see the strengths and weaknesses of junior developers and feel it is your job to help those who are struggling; it not merely being their problem to deal with. You take pride in your work and standards are important to you as a consequence of your seeing what happens when there are no standards.

Tier 4

You are probably close to 7 years or more in industry. Not only do you consider yourself a full-stack developer at this point but you know very well that building anything resembling a complex software system entails solid teamwork. Coding has begun to bore you. You have written probably over a million lines of code by now. You have worked with technologies that have long gone obsolete. You have forgotten several technologies you knew before, and you have complete confidence that you can pick up pretty much anything in a few days if not a month at the most. No technology scares you anymore. In fact, learning new tech is starting to annoy you. It annoys you because you see a pattern. The pattern is that new tech always seems to solve the exact same problems as old tech did but just slightly better. You no longer feel much need to keep up with new tech because you now have a gut instinct on what are really fashion trends versus what are mainstay technologies. You may even start to consider switching to a different career due to the repetition.

Responsibilities

This is a critical point in your career as a developer. You no longer feel the love for coding you once did but you still like working with technology. You see the critical importance of working and organizing a team but you also see the various failures that tend to happen when the architecture is badly implemented. You make a decision. You choose whether or not you are more suited to leading people or focusing on pure tech. At this tier your career takes a shift; you either go down the leadership path and gain a team of your own or you focus exclusively on purely technological concerns. The responsibilities of each path are stated below.

Leadership

You believe you are best suited to lead a team of developers. Though you consider the architectural dimension as critical, you believe you are more useful and fulfilled by relying on others for the architecture while you yourself focus on the team. You are expected to be empathetic. Team morale is now your responsibility. If developers are not happy you are to blame and it is your job to fix it. You are expected to sense the needs of your team before they do. You make a visible effort to get to know each team member individually and track both their immediate needs as well as their career development. The job is no longer about you. The job is about them. Your team is putting their trust in you not to exploit them by either burning them out with overtime to further your career or stagnate them with menial work. Your primary value is that of a force multiplier. Though you will still code about half of your time, your main job is to make sure everyone around you is more productive as a consequence of your actions.

Independent Contributor

You believe you are best suited to focus on architecture and pure technological issues as oppose to the human dimension of leadership. You count on the team lead to handle everything other than the tech itself. You understand that when you make a technological decision, you are being trusted to not sabotage the team. As such, though you need not manage expectations of individual team members, you are expected to know whether or not the team is capable of executing on your design. You are very concerned about design patterns, tool selection, and the educational gap in relation to fulfilling your design. You are expected to take vague and broad business requirements and based on your experience translate them into a viable, cost effective working solution.

How You Get Promoted

Promotions to the Senior Software Developer title are very serious. This shift is not only one of mentality but one of demonstrable skill. To become a senior developer is to have most safety nets ripped from under you and for your decisions to ripple down to mostly unknown consequences. To get promoted to this level, you must have demonstrated not only ownership over your own assigned duties, but to demonstrate an interest in owning the platform you are working on. You are to show that you care about the success of the business and not just about your own career or the state of the team. You must demonstrate a sensitivity to speech and how your words affect the outcome of the work. You must show an ability to sacrifice personal freedom to the good of the project. This promotion changes your engagement with your employer from that of a job to more of a way of life.

--

In the next article I will spell out the senior years in a developer’s career. Usually years 10+ in industry. 

Chris Herczeg

Senior Engineer at Microsoft

6 年

Thank you for this info, very well laid out and helpful!

要查看或添加评论,请登录

社区洞察

其他会员也浏览了