Software engineer levels explained: trainee to principal and engineering manager

What trainee, junior, middle, senior, staff, principal, tech lead and engineering manager actually do, what each must know and how to move up.

By Sasha Kolesnik (LinkedIn)Published 12 min read

#career#javascript#typescript#react

Most tech companies use a ladder that goes trainee or intern, junior, middle, senior. After senior it splits in two. One branch stays technical (staff, then principal). The other goes into people management (engineering manager and up). Tech lead sits in between: it is a role, and at many companies it is not a separate level at all.

The names change from company to company, the logic mostly doesn't. Each step up means a bigger scope, vaguer problems and more people affected by your decisions. This guide covers every level: what the job is, what you need to know, how interviews change and what gets you to the next step.

The ladder at a glance

LevelScopeTypical experienceInterview focus
Trainee / internLearning tasks with a mentor, no ownershipStudent or career switcherBasics, attitude, how you learn
JuniorWell-defined features, close reviewAbout 0-2 yearsHTML, CSS, JavaScript, DOM, simple components
MiddleFeatures in a larger system, independent on clear problemsAbout 2-5 yearsFramework depth, state, forms, a11y, machine coding
SeniorMany parts of a system, loosely scoped problemsAbout 5+ yearsFrontend system design, behavioural, trade-offs
StaffUnscoped problems across a domain or departmentVaries a lotPlatform thinking, migrations, org impact
PrincipalTechnical vision across departmentsVaries a lotCompany-level strategy
Tech leadTechnical direction of one team or a few teamsUsually senior+Delegation, planning, review at scale
Engineering managerPeople, hiring, delivery of a teamUsually after senior or tech leadPeople management, hiring, delivery

Read the experience column with care. Those ranges are market convention, and I could not find a primary source that sets them. Dropbox says plainly that promotion depends on "demonstrated, sustained impact at the next level", and that there is no checklist (Dropbox promotion principles). Years alone don't move you up.

Why level names differ between companies

There is no industry standard. Two public ladders show how different the labels can look:

  • Dropbox numbers its levels. IC1 to IC4 are all "Software Engineer", IC5 is Staff, IC6 is Principal, IC7 is Senior Principal. Managers have a parallel track from M3 to M7 (Dropbox career framework).
  • Etsy uses names: Engineer I and II, Senior I and II, Staff I and II, Senior Staff, Principal (Etsy Engineering Career Ladder).

So "senior" at one company might be "Engineer II" at another. When you compare offers or read job posts, compare the scope described, not the word in the title. If you want to see more examples, swyx keeps a list of public engineering career ladders.

Trainee and intern

Scope. You get learning tasks and a mentor. Nobody expects you to own anything yet. The Etsy description of its entry level fits well: "narrowly defined tasks", working "from clear instructions" (Etsy ladder).

What to know. HTML and CSS basics, JavaScript basics, Git, the basics of one framework. Also a skill people underrate: asking good questions. A good question says what you tried, what you expected and what happened.

How to move up. Finish tasks without someone holding your hand, open clean pull requests and learn how the team's codebase is organised.

Interviews. Expect questions on fundamentals and on how you learn. The HTML, CSS and JavaScript courses on ShortLesson cover the base.

Junior developer

Scope. Well-defined features, with someone reviewing your code closely. In Etsy terms this is still Engineer I.

What to know.

  • JavaScript and TypeScript fundamentals: closures, async code, the event loop, prototypes
  • One of React, Angular or Vue
  • Semantic HTML and CSS layout (flexbox, grid, responsive design)
  • Git for daily work
  • Basic tests
  • Debugging in browser DevTools

How to move up. Deliver without rework, estimate your own tasks, debug on your own and start reviewing other people's code.

Interviews. Fundamentals: HTML semantics, CSS basics, JavaScript, DOM APIs and simple React components (GreatFrontEnd on FAANG loops). A full checklist is in what a junior frontend developer must know.

Middle (mid-level) developer

Scope. Features and projects inside a bigger system. You work on your own when the problem is well scoped (Etsy Engineer II).

What to know.

  • TypeScript, properly
  • Framework internals: state, rendering, hooks or dependency injection
  • Testing at three levels: unit, component, end-to-end
  • Performance basics such as Core Web Vitals
  • Accessibility basics (WCAG)
  • HTTP, REST and GraphQL
  • Enough backend and database knowledge to read an API and a query
  • CI

How to move up. Own a feature end to end, including the unclear parts. Make trade-offs and explain them. Mentor juniors. Leave the codebase better than you found it.

Interviews. Hooks, state management, forms, accessibility, debugging, API integration and CSS architecture. Many companies add a machine-coding round where you build a small UI in 45 to 60 minutes (GreatFrontEnd FAANG guide).

Senior developer

Scope. Many parts of a system. Moderately complex problems that arrive loosely defined. A senior leads direction and implementation and delivers either alone or by leading teammates (Etsy ladder).

What to know (hard skills). Frontend architecture, performance profiling, accessibility in depth, design systems, build tooling, observability, API design, security basics (XSS, CSRF, CSP) and frontend system design.

What to know (the rest). Mentoring, written design docs, talking to stakeholders and owning the outcome, not only the code. This half is where most middle developers get stuck.

How to move up. The step to staff needs impact beyond your own team. You solve problems nobody has scoped yet and set a direction other people follow (Etsy ladder, StaffEng).

Interviews. Frontend system design shows up here. Amazon, for example, reserves its frontend system design round for candidates with 5+ years of experience, according to GreatFrontEnd. Behavioural rounds also carry more weight with each level and play a central part in deciding where you land (GreatFrontEnd FAANG guide).

The concrete behaviours for each step from junior to senior are in how to go from junior to middle to senior.

Staff engineer

Scope. "Significantly complex, unscoped problems". A staff engineer influences a whole department or domain and sets technical direction (Etsy ladder).

Will Larson makes a useful point: staff is not only a title. It is the title plus the role, the behaviours, the impact and recognition from the organisation (StaffEng). He describes four archetypes: Tech Lead, Architect, Solver and Right Hand (staff archetypes). Tech Lead is the most common one, and it gets its own section below. The point of the list is that "staff" can look very different from one person to the next.

How to move up. Work on the problems that matter most to the organisation, build support for your initiatives and write strategy.

Interviews. Expect platform thinking, design system strategy, migrations and evidence of impact across teams (GreatFrontEnd FAANG guide).

Principal engineer

Scope. Needs that cross departments. A principal defines technical vision and strategy for several departments at once (Etsy ladder). At Dropbox it is IC6, with IC7 Senior Principal above it (Dropbox framework).

The role is rare, and impact is measured at company level. The differences between the two top IC levels get a full article: staff vs principal engineer.

Tech lead

Tech lead is a role more often than a level. The tech lead guides the technical approach and execution of a team (sometimes a few teams), coordinates the work, removes blockers and keeps relationships with other teams working. Larson calls it the most common staff archetype (staff archetypes).

In practice the tech lead is often a senior engineer with no direct reports.

What to know. Delegation, planning, code review at scale, mentoring.

How to move up. Grow people, own delivery and communicate upward: to your manager, to product, to other teams.

Engineering manager

After senior the path branches. Many companies run two tracks: one for management and one for technical leadership without reports (StaffEng overview). Staff+ engineers usually don't manage people. Their manager counterparts spend a large share of their time on people.

Dropbox publishes both tracks side by side: IC1 to IC7, and M3 (Engineering Manager) to M7 (Senior Engineering Director) (Dropbox framework). Kickstarter and Rent the Runway also publish management ladders (swyx's list).

What an EM does. Public ladders describe the same core work: hiring, 1:1s and feedback, team delivery and planning, performance management, communication with other teams and the health of the team.

How to switch from senior or tech lead. Show the behaviours before you get the title: mentor and grow people, run hiring loops, handle conflict, own delivery and stakeholder communication, write planning docs. Some engineers try a hybrid tech lead manager role for a year or two before deciding. That advice comes from secondary blogs, so treat it as one option rather than a rule.

A rough way to decide: if architecture gives you energy, look at the staff track. If 1:1s and hiring give you energy, look at management.

How pay changes by level

Pay grows with level, but the exact numbers depend heavily on market and company. Two reference points:

  • Ukraine. In the DOU summer 2026 survey (May to June 2026, 4,541 respondents), the median net salary was $950 a month for juniors, $2,500 for middle, $4,500 for senior and $5,500 for Lead+. Staff software engineers reported $7,130 (DOU salary report, dev.ua summary).
  • US. Levels.fyi shows a median total compensation of $200,000 for software engineers and $360,000 for software engineering managers (both pages checked 2026-11-13) (software engineer, engineering manager).

DOU numbers are net of taxes and US numbers are gross total compensation, so don't compare them directly. The full breakdown is in senior software engineer salary.

How interviews change by level

Most loops follow the same stages: recruiter screen, technical screen, live coding, system design, behavioural, then a hiring committee or final call. What changes is the weight of each stage.

  • Junior: fundamentals. Can you write semantic HTML, lay out a page in CSS and explain how JavaScript runs?
  • Middle: depth in your framework and practical tasks such as building a form or a small component under time pressure.
  • Senior: frontend system design and behavioural questions about ownership and trade-offs.
  • Staff+: platform and migration decisions, impact on the organisation.

In Ukraine, take-home test tasks are common for frontend roles. DOU has covered the debate around them: they are often unpaid and often come back without feedback (DOU on frontend test tasks, DOU on test tasks).

FAQ

How many years does it take to become a senior developer?

There is no fixed number. Market convention puts senior at around five years or more, but no primary source sets that rule, and Dropbox explicitly bases promotion on sustained impact at the next level rather than on time served.

Is middle the same as mid-level?

Yes, both words describe the level between junior and senior. Etsy calls the equivalent level Engineer II.

Is a tech lead higher than a senior engineer?

Not always. Tech lead is usually a role, often taken by a senior engineer. At staff level, Will Larson describes tech lead as one of four archetypes.

Should I go into management or stay technical after senior?

Both are real career paths with their own ladders. If you enjoy architecture and hard technical problems, the staff track fits. If you enjoy 1:1s, hiring and growing people, try management.

What is the difference between staff and principal engineer?

Scope. Staff engineers work across a department or domain. Principal engineers set technical vision across several departments. Details in staff vs principal engineer.

Practise for your next level

Knowing the ladder helps, but interviews test what you can explain out loud. The ShortLesson app has short lessons and interview questions for JavaScript, TypeScript, React, Angular, Vue and backend basics. Pick the topics for the level you are aiming at and practise them a few minutes a day: open the courses.

Related lessons

Practice the topic in the platform courses.

Follow the author

Sasha Kolesnik · Frontend engineer

New articles and notes on learning and frontend.

Practice interview questions

The app has questions junior developers often get in interviews. Answer them, read the feedback, and come back to your weak spots.

The app is coming to the stores soon.

← All articles