What does it mean to be a Senior Dev

Rob Wilkinson
Oddball
Published in
3 min readJan 3, 2018

--

Here at Oddball I spend a lot of time hiring, mentoring and improving engineers, it got me thinking, we toss around the words Junior, Mid, and Senior Developer all the time and we have an innate gut check of what that means, but we don’t have a solid definition of what those terms actually mean. I put my head together with one of the engineers here to think about this, here’s what we came up with for what we look for in front end engineers. (note, we look for React engineers so some of this is specific to React)

Skill Tracks

Broadly speaking there are 2 tracks for any front end dev, there is the framework specific trend( “I’ve been doing React.js for 3 years”) and the framework agnostic track (“I’ve been writing javascript for 3 years and have a deep understanding of the DOM, CSS and performant JS”). You can rank higher on one track than another but have to have a combination of both.

Junior

Broadly speaking a junior developer should be able to take a well defined scoped user story/ticket and complete it with minimal input. That could be something as simple as changing a button text, or displaying a list of data.

They should be able to do the following with ease:

  • Create components
  • Passing props
  • Setting state
  • Basic component architecture
  • Understanding html + css
  • CSS box model + flexbox
  • Simple HTML tags
  • Basic data munging, sorting/algorithms

Mid

A mid level engineer should be able to take a single epic, “user needs to be able to see a list of posts and search them” and understand and complete the work that goes into that.

They should:

  • Understand a state management framework (redux, flux, baobab)
  • Understand `mapStateToProps` `mapDispatchToProps` or the equivalent
  • Solid understanding of life cycle methods and how to use them
  • Extensive knowledge of CSS properties + animations/transitions
  • Clear concise semantic HTML (not div soup)
  • Understand Smart vs Dumb Components

Senior

A senior engineer should be able to look at a mock-up from a designer and quickly understand the work that would go into that, the data state needed to achieve that work and feel comfortable building that in a scaleable fast way. This was the hardest category for us to define, a lot of this is on leadership, and being able to explain things. A certain amount of managerial skill is required for this role, they are a leader on the team, whether it is in the title or not.

They should:

  • Optimize for performance
  • Understand data caching/store normalization
  • Mentor and show a willingness to lead
  • Deal with a large overly complicated css codebase and modularize accordingly

Think this is all elitist BS? Think that my definitions are too hard? too easy? would love to start a discussion, leave a comment and let me know

--

--

Engineer who focuses on helping businesses and entrepreneurs achieve their goals through the power of technology.