- Level up software engineering π
- Posts
- Whatβs the difference between junior, mid-level, senior and staff engineers?
Whatβs the difference between junior, mid-level, senior and staff engineers?
How can you tell if you are ready for a promotion? ππΌ
First off, I just want to say: the level of engineer you are has nothing to do with your worth as a human. π
It has nothing to do with how many lines of code you crank out. Sometimes, mid-level engineers are writing more code than senior level engineers. π
Itβs not even directly tied to years of experience. π€―
Itβs more to do with:
mindset
responsibility
technical expertise and communication
how you approach problems
leadership skills
scope of your influence
Alright, letβs jump in π
Junior engineer
What is a junior engineer?
Junior engineers have 0-3 years of development experience. They are usually fresh out of college, newly self-taught, or coming from a boot camp.
They should be proficient in one or two languages/frameworks and be able to build small to medium-sized features with direction.
At this level, engineers focus mostly on leveling up in their coding capabilities and get up to speed with engineering best practices.
They might do things like:
Improve an existing codebase by adding missing tests to legacy code
Migrate an old feature to a new framework or components
Add to existing apis
Work with senior engineers on pieces of larger projects
Junior engineers will require mentorship from other seniors on the team to ensure they are successful, and continue to level up π€
Every team should have a junior or two. π
Mid-Level Engineer
What is a mid-level engineer?
Mid-level engineers usually have 3-5 years of experience.
They should be proficient in 2-3 languages/frameworks and be able to build a new feature with minimal direction needed from other engineers.
At this level, engineers focus mostly on increasing their depth of knowledge in languages, frameworks and coding patterns as well as starting to contribute and own pieces of larger projects.
They might do things like:
Build out a new set of apis, services, and db tables for a new feature
Contribute quality components to the teamβs style guide
Refactor and optimize old queries, legacy code, or fix complex bugs
They will still require mentorship from senior engineers on the team, but they will be able to tackle many more things on their own, and even provide support to juniors. πͺ
Senior Engineer
What is a senior engineer?
Senior engineers usually have 5+ years of experience. They have proven their depth of knowledge and proficiency on several larger projects. Theyβve mastered several languages, and if they need to learn a new technology or framework they are able to do so quickly.
Theyβve developed deep problem-solving skills and cross-language engineering knowledge and experience.
They stand out in their communication, project management, systems design and architecture experience, documentation initiatives, and mentorship to help the team level up. π§
At this level, engineers tend to focus on being βan owner of a feature or systemβ with an expert end-to-end understanding of it. They are also setting design standards and modeling best engineering culture and practices.
They should be able to:
Plan, research, breakdown, and successfully complete a large project
Identify and fix issues in complex systems
Lead a project with multiple contributors including writing technical specs, helping with sprint prioritization and planning, outlining a testing plan, etc.
Give through, helpful, and timely code reviews
Provide mentoring, technical interviews, onboarding, documentation - things that help the team level up
Successfully juggle multiple priorities or projects
Emerge as force multiplier for their product area
Staff Engineer
What is a staff engineer?
Staff engineers usually have 8-15 years of experience. π
At startups, staff engineers will influence and be responsible for several teams. In a larger organization, they may be staffed to one larger team.
They closely partner with engineering managers and co-own the success of the engineering culture, technical solutions, and systems across the team(s) and many projects.
Where they differ mainly from a senior engineer is influence and scope. π€
At this level, staff engineers work on solutions dealing with large, very complex and important technical and business systems. They set the standard for all other engineers in the organization. βοΈ
They should be able to:
Ship and model the highest quality of work
Influence the orgβs culture around best practices in testing, rollouts, monitoring, scaling, etc.
Spot pain points or weakness in technical or organizational systems and propose and lead solutions
Lead complex projects with clear deliverables and milestones that may span multiple years
Leverage cross-functional leaders in design, product, security, data science, to work towards team goals/projects
Give strong technical / business communication both oral and written
Reminder: we all start somewhere
Just a reminder that in my own journey, the more senior I become, the more I realize software engineering is an endless frontier.
Yes, I know more β but Iβm also working on more complex problems and projects. π
We all start somewhere, and we are all leveling up in various ways by 1% every day. π Keep going wherever you are at. πͺπ
ββββββββββββ
Where are you at in your engineering journey?
Iβd love to hear from you β reply with βbreaking into techβ or your βjunior/senior/staff levelβ if you are already working as an engineer.
See you soon! πββοΈπββοΈ
ββββββββββββ
π Follow along on socials throughout the week as I share about leveling up in #softwareengineering, #startups, and your #leadership #softskills π