5

What does a competent mid-level software engineer look like?

Profile picture
Entry-Level Software Engineer at Series C Startup2 years ago

My main goal right now is to level up, and that next level for me is making the jump from junior to mid-level, hopefully within 2-3 years. To better understand the evolutions I need to make, what are the main differences between junior and mid-level when it comes to SWE?

425
2

Discussion

(2 comments)
  • 6
    Profile picture
    Meta, Pinterest, Kosei
    2 years ago

    At some point, we'll have a really high quality breakdown of the behaviors of entry-level, mid-level, senior, and staff engineer, right here on Taro!

    In the meantime, my brief answer: a mid-level engineer should be able to handle most bugs without hand-holding, and should be able to implement features of medium complexity on their own. Mid-level engineers should start shifting from purely reactive (most junior engineers) to proactive -- they should anticipate bugs and suggest improvements.

  • 5
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    2 years ago

    This will obviously vary a lot from company to company, but generally what I've seen is that a competent mid-level software engineer should have extremely strong coding proficiency.

    What a lot of folks don't realize is that coding proficiency is judged across 3 axes:

    1. Quality - Is your code clean, easy to read, and almost entirely free of bugs? Are your pull requests well-detailed and accepted with 1-2 revisions most of the time? Code quality has an effectively infinite skill ceiling, so many engineers don't realize what quality code truly looks like.
    2. Velocity - How fast you land code. This one is the most straightforward, and almost everyone understands this.
    3. Independence - Can you accomplish tasks without hand-holding and having a senior engineer explain half the codebase to you every time? There's a tricky balance to strike here as asking questions is obviously good, but you do want to make sure you are asking different, deeper questions every time.

    If I were to put things more concretely, I expect a competent mid-level software engineer to be able to deliver on any task that takes 3 months or less with high code quality, higher velocity than all junior engineers, and with minimal hand-holding from senior+ engineers.

    In terms of what growth looks like from junior -> mid-level, it's primarily building up that super strong coding foundation. That's ~80% of the delta, and the remaining ~20% is various "softer" skills like being able to clarify requirements, sync with PMs/designers, and scoping out tasks.