Traditionally in the tech industry developers are divided into four gradations based on their qualification levels: Junior, Middle, Senior, and Team Lead. In two previous articles we have already covered all the basics of what it’s like to be a Junior and Mid-Level Developer. Now it’s time to move to the next gradation. Senior Developer, what it’s like to be one and how Senior is different from a Mid-Level coder? Let’s find out. What It’s Like to Be a Senior Developer. A Short Guide to the Role - 1

Who is a Senior Developer?

In such articles on professions and specialisations in software development we always have to make some sort of a disclaimer, explaining that the perception and understanding of a certain position can vary a lot, depending on the company, the industry it’s operating in, and other factors. Some people, mostly the ones who tend to be somewhat conservative, believe you are only allowed to call yourself a Senior if you have over 10 years of coding experience, which is accountable. Meaning, only years when you were actually coding as a full time employee count, you can’t start counting from when you first tried to program on Basic at the age of 12 (as many young coders tend to do, pissing off real Senior programmers). Being less conservative, many people believe more than five years of full time work as a software developer allows you to call yourself a Senior. On the other hand, years of experience is just a number, what really matters is knowledge, skills, and applicable experience. This is where you have to really deliver to deserve the Senior title, because Senior Developer is often seen as an all-knowing, almighty coding wizard. In management’s perception, Senior is normally the one who knows how to solve any project-related task or how to write the required code. But one of the most important functions of a Senior developer on a specific software development project is the knowledge of the project itself with all its issues, needs, nuances, and so on. Being able to work autonomously is an important quality of a Senior. This means that the Senior knows what and when to do, and needs no supervision to deliver the work he’s expected to do. And this is quite a valuable quality in the eyes of any employer, as it means you can give this developer a project-related task and leave all the rest to him/her. With “all the rest” being: figuring out needs, requirements, and limitations for the task to be completed, coming up with the right approach, finding proper instruments, dividing the big task to smaller tasks and giving those to Mid and Junior-Level Developers, etc. There is another major aspect that differentiates Seniors from Mid-level and Junior coders. It’s in the code they write, and the way they do it. Senior normally is and should be the one who writes the most clear, simple, and concise code. Sometimes to the extent when this code looks overly straightforward and primitively basic. This is because Senior has to consider not just the completion of the task as the final result, but the overall effect of the new code to the project’s code base. Senior developers write their code having maintainability and scalability in mind, and this is their major strength, which can only come with experience and nothing else.

What are the responsibilities of a Senior Developer?

Now let’s talk in more detail about some of the most standard and common responsibilities of a Senior Developer, naturally focusing on responsibilities typical for Java programmers.
  • Identifying and analyzing user requirements;
  • Prioritizing, assigning and executing coding tasks;
  • Developing Java applications;
  • Reviewing code work for accuracy and functionality;
  • Analyzing code segments regularly;
  • Staying up to date with new technology and teaching Junior developers how to use it;
  • Generating ideas and solutions related to the development cycle with other team members;
  • Taking general responsibility for all development work and project’s code.

Requirements for a Senior Developer

Here is a list of the most common and typical requirements for a Senior Developer that you should meet in order to get this job. Of course, the requirements would vary depending on company hiring policies, technologies used on the project, and your programming language.
  • Extensive general knowledge of software development and its technologies;
  • Strong knowledge of Java;
  • Experience in designing, building and testing enterprise applications;
  • In-depth knowledge of popular Java frameworks like Spring, Spring Boot, or Java EE, JSF and others;
  • Experience with Object-Oriented Design (OOD).
These are just basic programming-related requirements, but having technical knowledge often is not enough to get a Senior Developer’s job, as there are so many other important skills that make up a strong Senior. Here are some commonly mentioned non-tech requirements for Sr. Developer.
  • Good delegation and time management skills;
  • Problem-solving abilities;
  • Good communication skills;
  • Strong written and verbal communication skills;
  • The ability to meet deadlines and think strategically.

How much Senior Developers make?

As you may know, when it comes to salaries for coding jobs in the U.S., for an experienced Senior Developer, sky is a limit, as giants like Google, Facebook, Amazon, Apple, and Microsoft are paying software engineers A LOT. For example, at Google, a software engineer at Level 7, which is considered the highest you can get as a developer, can make $608,000 total a year. But let’s go through average figures. According to Glassdoor, the average Senior programmer in the U.S. makes around $121,000 per year, which is considerably higher compared to a Mid-Level coder’s salary of $71,000 a year and the average wage of $63,502 a year that Junior devs make in the U.S. According to a report by PayScale, a Senior Developer with 10-19 years of experience earns an average total compensation of $109,122 based on 5,523 salaries. In their late career (20 years and higher), employees earn an average total compensation of $111,432. In Germany, according to PayScale, a Senior software developer with over 10 years of experience earns a total average compensation of €63,638. In France, the average salary of a Senior is €54,982. As usual, when it comes purely to the numbers, American programmers are ahead of their colleagues in Europe and elsewhere. Another interesting point to note is that Senior programmers in America earn significantly more than Mid-Level coders. Perhaps, this would be best explained with an assumption that the majority of really professional and experienced Senior coders in the U.S. work for American tech giants, which are the world leading software workforce spenders.

Career perspectives

When it comes to career perspectives, Senior Developers definitely have them. But the funny thing is, the majority of them are not really looking for any. Positions such as Team Lead and Tech Lead would be among the main options to look forward upon reaching the Senior level. As well as various options in tech management. With probably the positions of CTO and CEO of a tech company as the highest possible achievements in a Senior dev’s career. CTO is a more realistic one of course, since even in the tech industry, the majority of CEOs in fact have no or very limited technical background.

What it’s like to be a Senior Developer. Opinions

Naturally, when it comes to the Senior Developer position in general, most discussions tend to focus on two key topics the developers are just keen to debate on: what really makes you a Senior Dev and how soon you can start calling yourself a Senior. “That may surprise some people, but the Senior level jobs consistently asked for applicants to have between 5 and 8 years of experience. There were a few that asked for 10 years or more, but not many. As a Senior Developer, a company will expect you to be able to take a vague idea, spec it, plan the development, engage a team and follow it through to completion. Whereas, an intermediate developer will, generally, be expected to perform, without supervision, the individual tasks assigned to them, work within a team and perform some mentorship. But not necessarily control the entire process from start to finish,” John Morris, a Senior programmer with over 10 years of experience, shares his view. “With a Senior developer, I can give a high level/more vague goal and they can spec it out, create a plan for execution, run it by me, then go implement it with a minimal amount of hand-holding. So when you feel confident that you can take a vague idea and bring it fully to completion you’re a Senior dev. Note that doesn’t mean you never ask for help, because everyone does from time to time, but you can drive the process without me having to babysit you,” says Eric Wise, Co-founder and CEO of Wise Telemetry. And let’s wrap it up with this pretty good quote by Pablo Oliva, an experienced software developer from Germany: “The Senior developers I have worked with seemed to have a huge toolbelt, so to speak. Whenever problems arose, they had plenty of resources to turn to. They knew the tools and languages we used on a daily basis quite well, and knew where to look for when they didn't know something (there is a difference between googling aimlessly and going to the right manual page at the first try). This knowledge of old solutions and proficiency at seeking new solutions made them well respected by their peers, who would often turn to them for suggestions. They would also, in turn, know when to stop looking by themselves and ask a colleague for help. Some had certifications, some hadn't. Some had graduated, some hadn't. But they were always a reference point for their teams (and even for people in other teams, for some particularly spectacular senior devs). So, how many people think of asking you for help when they get stuck?”