AD
Episode
294
Interview
Web News

Junior Developer vs Senior Developer

Recorded:
March 1, 2024
Released:
March 12, 2024
Episode Number:
294

Progressing through your web development career is unique depending on the companies you decide to work for, but there are some common positions that companies will use to help guide their promotion process. These positions include junior developer, developer (intermediate), senior developer, tech lead, and staff engineer. Each one of these positions will have a unique flare depending on who's setting up the teams but in general as you climb the ladder through them you'll collect more cash, more responsibility, and slowly transition to less code/more management. In this episode Matt and Mike discussed the common promotions that web developers progress through and how they can vary company to company.

Listen

Also available on...
...and many more, check your podcast app!

Who’s in This Episode?

Show Notes

How to support the show

Patreon

Prices subject to change and are listed in USD

  • Support the show from as little as ~$1/month
  • Get a shoutout at the end of the episode (while supplies last) for just ~$3/month
  • Help support the HTML All The Things Podcast: Click Here

Learn with Scrimba

We receive a monetary kickback when you use our link

  • Learn to code using Scrimba with their interactive follow along code editor
  • Join their exclusive discord communities and network to find your first job!
  • Use our affiliate link to learn more


Show Notes

Introduction

  • We’ll break down the different levels of developers and what is required of them from a high-level
  • Titles are very arbitrary and can be mostly made up in smaller/non-tech companies
  • We’ll cover a bit on how to make the transition up the ladder
  • For people who are laid off, this will give them a good idea on where they would fit in at most companies

Junior Developer

  • Entry-level role to get into tech
  • Still usually has some years of experience requirement (this can be ignored if you have a good portfolio)
  • Long onboarding with a lot of mentoring and over-the-shoulder support
  • Typically given basic tasks that can range from writing documentation to implementing heavily scoped features
  • The key is most of the tasks you’ll be assigned will/should have very few assumptions that you’d have to make. All the details should be clear so that you can focus on implementation
  • Example task
    • If the company is making a todo list, an example task for a junior developer would be to create the task item component that would take in some defined props and be able to be used in a template loop to show all the tasks

Developer (intermediate)

  • You’ve shown you can handle assigned tasks without any issue
  • You’ve begun to expand from just doing assigned tasks to scoping out and creating tasks
  • Typically 2-5 years of experience
  • Have had one or several developer roles in the past
  • Will be tasked with more complex tasks that might involve integrations, APIs, algorithm implementations, etc
  • Will also be assigned small portions of the project to ‘own’
  • Ownership of a feature means you’re required to go out and gather requirements, create some documentation, and create the tasks associated with it, usually alongside a project manager
  • Example task
    • If the company is creating a todo list you might be assigned something like the user settings screen
    • Not much clarity would be given so you’d have to go out and figure out what the MVP for this could look like
    • Work with PM and design to get some layouts and timelines
    • Assign tasks to other developers (junior or otherwise)
    • Complete tasks yourself
    • Present feature after completion and follow up for enhancements and fixes

Senior Developer

  • You’ve handled the implementation and scoping of several features at this point
  • You’ve worked with all the relevant departments and shown you can take assigned high-level ideas to full implementation 
  • Typical 5-10 years experience
  • You’d be responsible for large portions or entire applications (ownership increases) 
  • Potentially responsible for complex implementations that can touch many parts of your company infrastructure
    • Front-end, back-end, credentials server, database, etc
  • Would be required to mentor and help out intermediate and junior developers
  • Design system architecture
  • You’d usually be an expert in certain technologies
    • For example, you’re an expert in TypeScript
  • Example task
    • You’d be in charge of the entire todo list system architecture
    • You’d pick the tech stack that works with your company's technical expertise
    • You’d scope out the required 3rd party services and provide cost estimates
    • You’d work with the team to come up with the high-level features that need to be built and review the decisions the other devs make in how they break down each feature into implementation tasks
    • You’d usually create the app scaffolds and implement the initial system architecture
    • For a complex todo list maybe you need to set the database scaling
      • Authentication patterns
      • Testing methodology 
      • Schemas
    • You’d probably still take on some coding tasks for the project (usually the trickier ones)

Tech Lead

  • You’ve shown that you’re interested in more of a leadership position
  • You’re more inclined to mentor and guide your team then design and implement the system architecture 
  • You’d do mostly what a senior developer does but work closely with the upper management and project management teams
  • You’d make sure the technical choices being made align with the goals of the company
  • You’d work as the intermediary making sure that timelines make sense from a technical perspective
  • You’d be doing some project management and usually leading standups
  • You’d also still be coding and taking complex coding tasks but with the mindset that you need to split time between leading and implementation
  • Example task
    • Scope out the implementation of the todo list with the stakeholders and engineering team
    • Assist or be the project manager on the project
    • Make sure the development team has everything they need for success on the project
      • Clear roadblocks
    • Do most of the stuff that the senior would do, but maybe a bit less due to your leadership responsibilities

Staff Engineer

  • Domain expert in multiple verticals in your company stack
  • You’re making larger technical decisions that impact multiple projects 
  • You’re assisting several teams in helping them with complex problems and unblocking them