Junior vs. Mid vs. Senior Software Engineers – Experience, Skills, & Expectations
When thinking about hiring additional engineering resources, you might ask yourself, “Do I need a junior, mid-level, or senior software engineer?”
However, what you should also be asking is, “Do I need an individual contributor, solutions architect, or manager?’
Together, these two questions will help you create a job description, interview qualified candidates, and hire the right individual for your technology goals.
Below, we’ll compare both seniority and impact, giving you a better understanding of the differences between juniors, mids, seniors, contributors, architects, and managers. Phew, that’s a lot of titles, so let’s dig in.
Jr vs. Mid vs. Sr Software Engineer
Generally speaking, here are the differences between junior, mid and senior engineers.
Junior developers usually have 1-3 years of development experience. They should be proficient in one or two languages/frameworks and have dabbled in a few other languages.
A mid-level engineer should have 3-5 years of experience or a bachelor’s in computer science with a year or two of experience. At this point, they should have mastered 2-3 languages/frameworks. At Devetry, we expect our mid-level engineers to have full stack experience (backend, frontend, and databases).
A senior engineer should have 5+ years of experience and be proficient in any modern language (or be able to quickly jump into anything new.) They should also have great communication, technical project management, and architecting skills.
Beyond these standard experiences, it’s also important to define skills and expectations within your organization. At Devetry, we use these:
- Time scope of accountability: On average, how long are they working on a task? For juniors, this might be a few days; for seniors, many months.
- The complexity of scope: How difficult is their work and what does it require?
- Communication: What are the expectations surrounding communication?
- Expertise: Generally speaking, how much do they know?
- Leadership: Who are they in charge of? For both juniors and mids, it’s probably just themselves.
- Oversight: What kind of oversight do they need? This can range from daily check-ins to as needed.
Something else to note is that three categories (junior, mid-level, and senior) might be too restrictive for your organization. Another way of looking at levels is to use a numerical system. So you might have software engineer I, II, III, or IIII before you arrive at a senior designation.
There are many ways to approach seniority, encourage growth, and organize your team, but always be intentional.
Contributor vs. Architect vs. Manager
Now, as mentioned, we think you should also think in terms of contributor vs. architect vs. manager. How much coding do you need compared to strategic growth? How many managers for each coder in your organization? Here are the differences between contributors, architects, and managers.
Contributor (Jr, Mid, & Sr Engineers)
Think of contributors as your boots on the ground. They are doing the bulk of the work. You give them a task and they complete it in a timely manner. To have a well-functioning product, you need a strong team of contributors to accomplish your roadmap.
Within this group of contributors, you will have different levels of skill and experience (what you’d normally call junior or senior engineers) even though they’re all contributors. It’s important to have this mix because not all seniors want to become architects or managers–and that’s okay.
Architect (Mid, Sr Engineers)
Also called a staff or principal engineer, an architect will help define the guardrails of a project. This includes things like language, framework, the type of database, how authentication should work, and more. These engineers are probably not writing the code. They create documentation to define how it works and then hand it off to contributors to execute.
While an architect might not have to know that much about business, they are responsible for knowing and guiding the technical strategy for a digital product. They are also responsible for the general project management. However, that’ doesn’t mean that they’re people managers. Most likely, they do not manage their contributing team members.
Manager (Sr Engineers)
Managers are quite different than contributors and architects. Instead of being responsible for technology, they are responsible for people—namely keeping people happy and engaged.
Managers are software engineers who possess technical and managerial skills.
They also need to think about the market, the users of the product, non-technical team members, and general business needs.
Hiring Jr, Mid, & Sr Software Engineers
No matter what industry or product you’re in, you’ll likely need a bunch of doers, a few planners, and a few managers. Within those categories, you’ll have different experience levels which you can call Jr/Sr or level 1/2/3/4.
As you interview and hire different levels of software engineers, it’s helpful to have a standardized assessment for juniors, mid-level, and seniors. That way you can know quickly whether they are a good fit for the contributor, architect, or manager position you have available.
We’ve created a software engineer interview rubric that allows us to streamline the hiring process, remove unconscious bias, and increase the rate of employee success. No matter which level you’re hiring for, this rubric can help!