There are some great answers here, but I would say that the best resource I can give you is this: https://progression.fyi/ this is a set of career ladders from a bunch of different companies. many you've never heard of, but also some very well known ones. You will learn pretty quickly that: the real meanings of the same job titles vary a lot based on size and maturity of company title inflation has become a very real thing in the industry. I'm "old" at this point, but "back in myyyy dayyyy" nobody was a "Senior Engineer" unless they'd been in the industry 10+ years. Anymore, I see people with that title 4 years out of college. I'm not mad about it, the reason things have changed is most likely the lack of promotion/growth opportunities for people when there were basically just 2 job titles. engineers naturally want these career ladders to be checklists toward getting a promotion. but that's not what they are. No matter what, some of the things in here are going to be subjective to measure. There will be gray areas. Most companies will not only have different gray areas, but will also want you to be performing "at the level above" for ~6+ months before getting a promotion. At 6 years into your career, I could see you landing a job as senior or as midlevel depending on where you go. If you don't interview well, and don't demonstrate some of the qualities desired in these ladders during your interview process, you most likely won't be getting a senior position at a FAANG or other super well known company. However, you could likely get a midlevel job at some of these companies, and they'd probably pay as well or better than a senior role at a small company. What's more important to you - comp, or title? Answer from honestbleeps on reddit.com
🌐
Reddit
reddit.com › r/experienceddevs › what is your expectation of a senior dev?
r/ExperiencedDevs on Reddit: What is your expectation of a senior dev?
February 19, 2023 -

In my current company I'm a senior developer. I recently interviewed for a senior dev position at another place and the feedback I got was terrible. Personally I think the interview didn't cover enough areas at all, but that's just me trying to rationalize a quite shocking result.

Either way, it's led to me questioning what the most commonly accepted standard for senior devs is, as I know that it can vary quite widely.

For me personally (6YOE, non FAANG, mostly web work, .NET if it matters) my standards are:

  • Can take any general software development task and just do it, using the full suite of features and syntax available in the framework being used

  • Writes quality, readable, efficient code with few basic mistakes

  • Knows the wider impact of their work, either through innate understanding or from repeat experience of standard development tasks

  • Knowledge of databases and how to manage and interact with the data via queries and stored procedures

  • Has a good understanding of the most important software architecture principles, common design patterns, etc

  • Can contribute to discussions on any new task or feature and play a part in agreeing on any final decisions

  • Understands and experienced with project management concepts like agile, scrum etc

  • Ability to mentor or guide junior members

  • Ability to perform code reviews

  • Knowledge of CI/CD and unit testing (though in my company that's left specifically to DevOps/ QA teams)

To be honest this is more like a list of "the level I'm currently at" (and incidentally is all the things my recent interview experience did not cover). Personally I think it might be considered mid/upper-mid level by some standards, which is fine by me because I know it can vary from place to place, but my latest interview feedback left me feeling like I was only a junior in their eyes. Strange because I'm surrounded by juniors at work and it's clear to me that I've advanced way way beyond that. But now I'm just ranting.

So let's see what standards you guys have for senior devs, according to your own / your company's way of thinking.

Thanks.

Top answer
1 of 41
139
To me, your list sounds like an intermediate dev. They’re the people I give the “here are the goalposts, stay within them and implement this thing I sketched up” type cards. They are also the people I consult with when working on designing systems, since they’re the ones that wrote a lot of it. However, they also tend to struggle with large picture items. For example, they can make something run in a container, but it might not run well (our containers run a task scheduler in the background for lots of things. How wonderful for me…). They can somewhat define (maybe not well), but they can execute. A senior in my book is starting to direct construction, advising the architects, identify the tactical strategy, and delegate work appropriately. The PM may designate tasks, but in reality they will usually be advised by someone in a technical capacity. They are able to assess performance of peers. They are capable of working with new or unknown technologies (e.g. I don’t know Rust but we just bought a product that requires us to use it, so I guess I’m learning Rust…). They should have knowledge about things adjacent to their app (e.g. cloud networking, WAFs, other such things) enough to talk intelligently to other teams and solve problems, etc. Senior devs are also responsible for implementing engineering initiatives (we’re moving away from secrets to vault so we need to do X, Y, and Z, so let’s do A in this card and leave B), and are aware of what hills are worth dying on and what truly doesn’t matter (I don’t give a shit that there are magic numbers all over the code that was due two months ago…. Ship it and refactor it next week and in the meantime document the hell out of it vs. like hell I’m gonna let you query the company’s core api server thousands of times a second when I specified using a cache even if it’s two months late, so I’ll scrounge you up a memcache server and put it in). Teal Deer — you’re a senior when your daily duties take you out of programming and into technology in general, when people come to you for advice and/or help, and/or you specify larger strategies and goals. The more senior you are the less you may program and the more you direct. You typically only take the most complicated and/or critical pieces.
2 of 41
133
Ability to work on large projects that spans multiple systems owned by different teams. Ability to design systems, scoping out tasks and delegating part of coding work to juniors. Ability to clear ambiguity and derisk timelines. Ability to communicate contingencies beforehand. Ability to work with your product counterpart and come up with feature roadmap..
🌐
Medium
medium.com › @einat.mahat › senior-developer-mindset-traits-soft-skills-and-lifestyle-47b184c2ec9e
Senior Developer Mindset: Traits, Soft Skills, and Lifestyle | by Einat Mahat | Medium
July 7, 2024 - Seek feedback, clarify doubts, and engage with people to align on expectations. Document: Documentation is key. Record your experiences, learnings, and achievements. Use tools wisely to track your progress and most importantly: only compare yourself to your past self. These principles guide your path to seniority and meaningful contributions. ... So what IS a senior developer? A senior developer is not only defined by years of experience.
Discussions

skills - When should you call yourself a senior developer? - Software Engineering Stack Exchange
To me, the term 'senior' denotes ... expectations. Take this scenario into consideration: 16 programmers on a team, each with exactly 1 year more experience than the rest. This means, the 16'th programmer has 16+ years of experience. Eight of the most experienced members are tragically killed when a bus slams into a store. Would the guy with half the experience now be considered a senior developer... More on softwareengineering.stackexchange.com
🌐 softwareengineering.stackexchange.com
December 11, 2010
What is your expectation of a senior dev?
There are some great answers here, but I would say that the best resource I can give you is this: https://progression.fyi/ this is a set of career ladders from a bunch of different companies. many you've never heard of, but also some very well known ones. You will learn pretty quickly that: the real meanings of the same job titles vary a lot based on size and maturity of company title inflation has become a very real thing in the industry. I'm "old" at this point, but "back in myyyy dayyyy" nobody was a "Senior Engineer" unless they'd been in the industry 10+ years. Anymore, I see people with that title 4 years out of college. I'm not mad about it, the reason things have changed is most likely the lack of promotion/growth opportunities for people when there were basically just 2 job titles. engineers naturally want these career ladders to be checklists toward getting a promotion. but that's not what they are. No matter what, some of the things in here are going to be subjective to measure. There will be gray areas. Most companies will not only have different gray areas, but will also want you to be performing "at the level above" for ~6+ months before getting a promotion. At 6 years into your career, I could see you landing a job as senior or as midlevel depending on where you go. If you don't interview well, and don't demonstrate some of the qualities desired in these ladders during your interview process, you most likely won't be getting a senior position at a FAANG or other super well known company. However, you could likely get a midlevel job at some of these companies, and they'd probably pay as well or better than a senior role at a small company. What's more important to you - comp, or title? More on reddit.com
🌐 r/ExperiencedDevs
153
262
February 19, 2023
What does it require to become “Senior Software Engineer”?
I would not look at the YEARS. These are rules of thumb used by recruiters who (mostly) don't know what they are talking about. They will ask you to do bubble sort programming exercises and other nonsensical tasks to prove your ability - they largely have zero idea about project management; bruh react / vue / ember 10 years of experience in back stack and front stack Rails; JS experience required. People asked about Ecmascript. No, I want JS. SQL highly regarded: MYSQL and NodeJSQL devops min 7 years. bootstrap, tailwind, svg, inline css, tailinwid css, postcss, nodeJS, Please specify your current title and FAANG manager in the header of your email. These recruiters do not know half the stuff they are writing about, many are too lazy to find out. But i digress: The key is to make money for your employer. Identify problems, and solve them as efficiently as possible. The yardstick is money. More on reddit.com
🌐 r/rails
37
57
November 4, 2023
"Exceeding Expectations" as a Senior Software Eng and beyond
To a degree, the "Needs Improvement", "Meets Expectations", "Exceeds Expectations" system and its many variations are a psychological game. White-collar professionals tend to have lengthy formal educations that condition them to seek grades according to explicit rubrics. This conditioning can be used against you as you focus on meeting the prescribed standards to get the good grade and then the promotion that you believe the good grade qualifies you for. What often happens is that you work hard to meet the bar but the bar is increasingly being raised, as these seemingly clear and unambiguous standards are actually highly subjective, and a reason can always be found for why you didn't make the grade. In my experience, you don't get ahead by doing what you're told according to some artificial rubric. You get ahead by clearly seeing where the problems and opportunities are and accomplishing results in a way that makes you indispensable. They will promote you and give you a raise when they are afraid of losing you and not a moment sooner. More on reddit.com
🌐 r/ExperiencedDevs
41
75
July 25, 2023
Top answer
1 of 4
4

Before I dive into this I want to say something I consider very important:

  • It is extremely normal to have doubt about your "performance" when you're starting a new position, especially when you're thrust into a senior-level role where your "peers" are people who have years of experience/expertise with the company.

With that being said... stop being so hard on yourself. I know it isn't that easy, but no matter how experienced you are or what point you're at in your career it takes time to ramp up when you start with a new company. That's especially true when it comes to software development because of the massive differences there can be from company to company or even team to team when it comes to environment, standards, languages, etc.

The important thing (IMO) is that you keep a positive attitude, demonstrate that you're working hard, and do your best to influence the things you can based on your experience. For example, another posted mentioned things like contributing to coding standards, mentoring junior programmers, security, etc. Those are things that are universal and don't require expertise with a process/application to be involved in and provide input.

I would also say that if the company doesn't have documented development standards that could be a good place for you to take initiative and document them. See if you can sit down with your peers and the solution architect and document their standards (don't hesitate to make suggestions). Not only will it help you familiarize yourself with their environment/expectations, but it will provide a benefit to any future new/junior developers who come on board when they start to ramp up.

Besides that: just keep at it. Try to understand the process and the requirements and then dig into the functional side of the code. Over time you'll gain the experience you need and you'll find you aren't asking as many questions until the day comes when you realize that people are coming to you for answers.

As a final note: communication is important. I wouldn't go to your supervisor/s and express that you're feeling insecure about your performance, but it is completely ok to ask for feedback and make sure they know that you care about being a valuable member of the team and that you are constantly striving to improve yourself.

2 of 4
9

The best way to find out if you are fulfilling the expectations of your role is to ask your manager.

Arrange some time for a one on one with them, let them know in advance that you'd like feedback about how you're settling into the role (so that they don't get put on the spot, and have time to think about relevant feedback before talking to you), and then listen to what they have to say.

Note that I said "how you're settling in" instead of something like "is there anything I'm doing wrong". I deliberately chose neutral language. Your manager quite possibly thinks you're great, don't set a negative tone when you don't need to.

🌐
Interaction-design
handbook.interaction-design.org › guides › roles › senior-developer.html
Expectations from Developers | IxDF Open Handbook
A senior developer is thus a "guarantor" that we continually optimize our team spirit, fun, productivity, learning, results, impact on the world, and programming practices. This list is an extension of our expectations from a senior developer (see the previous section).
🌐
Quora
quora.com › What-is-expected-from-a-senior-developer
What is expected from a senior developer? - Quora
Answer: To be able to develop independently and partially lead a project. To be able to make good program architecture decision, and being able to maintain the technical health of the project.
🌐
Loige
loige.co › the-senior-dev
The Definition of Senior: A Look at the expectations for Software Engineers
March 26, 2023 - ... A senior software engineer should have developed some degree of flexibility in different programming languages and they should understand paradigms such as OOP vs Functional, Declarative vs Imperative, and Compiled vs Interpreted.
Find elsewhere
🌐
Theseniordev
theseniordev.com › blog › what-is-really-a-senior-developer-core-principles
What Is Really A Senior Developer: Core Principles · theSeniorDev
It is not that they don’t keep ... don't let the noise distract them from the main thing. Senior Developers prefer quality and quantity....
🌐
Full Scale
fullscale.io › blog › senior-developer
What is A Senior Developer? Qualities To Look For - Full Scale
Having great coding skills is a must for a senior software developer. However, they have other responsibilities besides coding. It is very vital to look for these soft skills and qualities: ... Yes, the number of years spent working as a developer matter.
🌐
Medium
medium.com › s › story › what-truly-makes-a-senior-developer-74b608847d7e
What Truly Makes a Senior Developer | by Brenn | Medium
July 31, 2022 - In the world of software, just because someone has been a developer for a long time, it doesn’t mean they have become excellent at it. In my experience, what differentiates senior developers and engineers from junior and mid-level ones is how they use skillsets and approach problems.
🌐
DEV Community
dev.to › dragosnedelcu › 12-senior-developer-traits-junior-developers-need-to-master-285m
12 Senior Developer Traits Juniors Need To Master 🔥 - DEV Community
December 14, 2023 - They finish more projects than they start. And they master the framework they already work with, before learning a new one. If you want to get to Senior faster, the first trait you need to develop is focus. One thing that screams "Junior dev" is the attitude of "let’s build it and we will find out".
🌐
Medium
medium.com › @chiragdarji › the-role-of-a-senior-software-engineer-and-expectations-da608d79ab69
The Expectations and Responsibilities of a Senior Software Engineer | Medium
January 9, 2023 - Senior software engineers provide guidance, take ownership of projects, and understand code review as a learning opportunity. They also explain tradeoffs and work effectively with stakeholders.
🌐
Nearsure
nearsure.com › homepage › blog › are you a senior dev? a practical senior software development checklist
Are You a Senior Dev? A Practical Senior Software Development Checklist | Nearsure
July 5, 2023 - Globally marked as a significant ... responsibilities that come with this position also entail communication and leadership skills on top of sustained strides in technical abilities....
🌐
Pesto
pesto.tech › resources › best-job-description-template-for-senior-software-engineers
Best Job Description Template for Senior Software Engineers
Technical Expertise: Senior developers are expected to have in-depth knowledge of multiple programming languages, frameworks, and software architecture principles, whereas junior developers are still developing their technical skills.
🌐
Dac
dac.digital › home › blog › what makes a good senior developer?
What makes a good senior developer? - DAC.digital
November 5, 2024 - Problem-solving skills are one of the most important aspects of a great software engineer and should be developed early in your career to set you up for success. This will be especially important if you’re hired for a senior role, as you can expect to deal with an issue virtually daily – some of which may be complex.
🌐
DEV Community
dev.to › thawkin3 › what-i-look-for-when-hiring-senior-software-engineers-4a6j
What I Look for When Hiring Senior Software Engineers - DEV Community
March 31, 2022 - In short, they're not stagnating in their career, and it shows. Hard skills are important, and a senior software engineer needs to know their stuff. They are expected to be experts in their field, or at least in a subset of a few key areas.
🌐
DevSquad
devsquad.com › blog › senior-software-engineer
What to Look For in a Senior Software Engineer
March 19, 2026 - When you're hiring a senior software engineer, you're not only looking for technical expertise but also creativity, problem-solving skills, and leadership potential.
🌐
Sebastian Oelke
soelke.de › expectations-and-growth-strategies-for-senior-software-engineers
Expectations and growth strategies for Senior Software Engineers
September 25, 2024 - Being a Senior Software Engineer will challenge you in many different ways. You are expected to write quality code in a sustainable pace. On top of that, you also want to show more interest in how your team is doing in the greater context.
Top answer
1 of 16
490

You can call yourself a Senior when:

  • You can handle the entire software development life cycle, end to end
  • You lead others, or others look to you for guidance.
  • You can self manage your projects

Software development is a curious creature unlike other fields.

Sometimes, a fresh punk out of college can run circles around veterans who have 20+ years of "experience". Programming is a bizarre world where code is king.

Some achieve the above in 2 years or less, others take 10 years.

2 of 16
276

When I hear “Senior Developer” I think of someone who has mastered programming. I think of a person who can design, code and test a system. They can talk to system architecture or component design. They understand and use design patterns. This person can anticipate the performance bottlenecks, but knows not to pre-optimize. This person will leverage asynchronous programming, queuing, caching, logging, security and persistence when appropriate. When asked they can give a detail explanation of their choice and the pros and cons. In most cases they have mastered object oriented programming and design, this not an absolute other languages such as Javascript, F#, Scheme are powerful and are not object oriented. They are adept in risk management and most important of all they can communicate the before mentioned to their peers.

What is mastery? There is a generally accepted idea, that to master ANY one skill it takes 10,000 hours of repetition for the human body and mind to grasp and internalize a skill. This is written to at length in Malcolm GladWell’s book Outliers. When the original author talked about mastering a field, he was refering to reach the top of a highly competitive field would take 10,000 hours.

Some examples of in Malcolm GladWell’s Outliers are:

Mozart his first concerto at the young age of 21. Which at first seems young, but he has been writing music since he was 11 years old.

The Beatles were initially shunned. They were told they did not have the mustard and should consider a different line of work. They spend 3 years in Germany playing about 1200 times at different venues, each time being 5 to 8 hours in length. They re-emerged as the Beatles we know and love today.

And lastly, Bill Gates at age 20 dropped out of Harvard to found Microsoft. To some this might seem foolish, but considered at 20 he had spent nearly half of his young life programming. In 1975, only maybe 50 people in the world had the experience he did. His experience gave him the foresight to see the future in Microsoft.

Peter Norvig also discusses the 10,000 hours rule in his essay “Teach Yourself Programming in Ten Years”.

In the book Mastery by George Leonard, great detail is given on how to master a skill. One must practice the skill over and over and over again. The more the repetition, the more you become aware of the differences in each repetition. Only with this insight can you become better.

The software industry’s titles (Junior, Mid-Level and Seniors) are misleading and inconsistent from organization to organization. I’ve worked with companies, who defined a Senior Developer as someone with 5 years or more of experience. There is no mention to the quality of the experience, just that they sat in front of a computer for 5 years. In working with these folks, many of them had not yet grasp object oriented programming -- yet they were considered Senior Developers.

There must be a better more objective way to measure the skill set of a software engineer. John Haugeland posted a computer programmer’s skills matrix. It’s an objective way to measure a programmer’s skill level, which otherwise is left to gut feeling.

When looking at software engineers I see 4 tiers of skills: Luminary, Senior, Mid-Level and Junior.

Luminary (10+ years) is one who has mastered a skill and has set about improving their respective discipline. Some examples include: Ted Neward, Uncle Bob Martin, Donald Knuth, Oren Eini, Peter Norvig, Linus Torvalds. Luminaries change based on your skill-set.

Senior (7 to 10+ years, Level 3) is one who has spent the last 10,000 hours programing in a specific genre. There is a strong understanding of design patterns, They leverage asynchronous programming, queuing, caching, logging, security and persistence when appropriate.

It’s very possible that a Senior will never reach Luminary. Luminaries are often found speaking and writing. They are actively trying to impact their discipline.

Mid-Level (4 to 6 years, Level 2) is one who understands day to day programming. They work independently and create robust solutions. However they have yet to experience creating or maintaining large or complex systems. In general Mid-Level developers are great with component level development.

Junior (1 to 3 years, Level 1) is one who understands the basics of programming. They either have a degree in software engineering or computer science or they are self taught. Their code is continually reviewed. Guidance is given in regards to algorithms, maintainability and structure.