Practice
A senior programmer is an experienced software development specialist who possesses deep technical knowledge, leadership qualities, and the ability to lead complex projects. He not only writes code but also:
Leads a team of developers
Designs system architecture
Makes strategic technical decisions
Mentors junior colleagues
Interacts with the business and clients
Usually the path to this position takes from 6 to 10 years of active work in the IT field.
Besides bossing developers around at a new job, my responsibilities also include finding and selecting them. And after reviewing a number of candidates for the Senior .Net Developer position, I made another interesting discovery.
While working at Microsoft, I discovered that their processes are very well fine-tuned. In other words, Microsoft is a process-driven company. And in this company, the possible career growth paths, positions, and transitions between them are very clearly defined. So, at Microsoft there are two tracks: individual contributor (IC) and people manager (PM). And the position held or desired lies on one track or the other. At the same time, the growth prospects are absolutely parallel, with the ability to switch between tracks if desired. In short, to be cooler and earn more, you don't have to become a manager. And the requirements are completely different: an IC must be a guru in their field, while a PM must effectively manage people, and they may not "get the topic" at all. And that's the right way.
With our developers, however, things aren't quite the way one would like. Taking into account the processes I observed at Microsoft, I expected that a Senior .Net Developer would indeed be a master of their craft. But that wasn't the case. It turns out that "in the field" everything is different.
Here's how it works with us. A person comes to the company. Still green. They assign him to the Junior Developer position and appoint a Middle (Senior) Developer as a mentor over him. And that person starts mentoring (dumping routine, uninteresting tasks). After some time, either due to rotation or due to actual professional growth, he moves up to the Middle level. And after working for some more time, showing loyalty to the employer and professional growth, he eventually grows into a Senior Developer. And that's where the metamorphosis happens. Instead of writing even more high-quality and divine code, he is forced to switch to managing (bullying) those who ended up under him: Juniors and Middles. And management expects exactly this from him. He would be glad to study new technologies, but instead he is forced to engage in micro-management of the "greenhorns." Thus, our Senior = Lead and is located not on the IC track, but on the PM track. That's the letdown that awaited me.
You can find a Senior Developer here. But as practice has shown, these are precisely the developers who have never worked at large software companies. So there you have it.
There are no formal medical restrictions for the profession, but considering the sedentary lifestyle and work at a screen, the following are desirable:
Good eyesight or corrective glasses
Absence of chronic diseases of the musculoskeletal system
Ability to work at a computer for 6–8 hours a day
Regular physical activity outside of work
The work requires high stress resistance and well-developed cognitive skills:
Ability to concentrate on tasks for long periods
Ability to solve complex logical problems
Emotional intelligence for working in a team
Patience, especially when debugging and searching for errors
Flexibility of thinking and the ability to learn
Mental models, such as the Pareto principle, first-principles thinking, and the ability to prioritize tasks, are key thinking tools of a senior3.
Bachelor's degree in: informatics, software engineering, computer science
Master's degree — an advantage, especially in large companies
Certificates: AWS, Azure, Google Cloud, SCJP, SEMC
Proficiency in several programming languages: Python, Java, C++, JavaScript
Knowledge of system architecture, databases, DevOps practices
About 70% of seniors have a bachelor's degree, 17% — a master's.
| Country | Average salary |
|---|---|
| USA | $126,000 |
| Switzerland | $110,000 |
| Australia | $100,000 |
| Israel | $90,000 |
| United Kingdom | $84,000 |
| Netherlands | $81,600 |
| Norway | $78,000 |
| Finland | $78,000 |
| Sweden | $76,000 |
| Ukraine | 30,000 -$54,000 |
Source: Qubit Labs
Senior programmers are subject to a number of risks associated with sedentary work and high workload:
Osteochondrosis, scoliosis, back and neck pain
Deterioration of vision, dry eye syndrome
Carpal tunnel syndrome
Cardiovascular diseases
Stress, anxiety, depression
Excess weight and physical inactivity
Solutions: ergonomic workplace, regular breaks, physical activity, prevention of eye diseases.
A senior programmer can transition to or collaborate with a number of adjacent roles:
| Profession | Description |
|---|---|
| Software Architect | Designs software architecture |
| Staff Engineer | Leads technical initiatives |
| Technical Product Manager | Connects technology and business |
| DevOps Engineer | Automates development and delivery processes |
| QA Automation Engineer | Writes tests and ensures quality |
| Data Engineer | Works with big data |
| IT Consultant |
Advises companies on technology |
Comments