Hasan's Journal

Stories, lessons, and scars from production.

Mehedi Hasan
Back to blog

Year One as a Mid-Level Engineer

The transition from junior to mid-level is gradual, but looking back, a few specific things changed. Here's what they were.

#Career#Mid-Level#Reflection

The Shift

The transition from junior to mid-level doesn't happen on a specific date — it's a gradual accumulation of skills and confidence that, at some point, crosses a threshold where you stop feeling like a junior who's pretending to be competent and start feeling like someone who genuinely knows what they're doing. For me, that transition happened over the course of 2021, and looking back, I can identify a few specific shifts that marked it. The first was that I stopped needing detailed task breakdowns. As a junior, I needed tickets that said "implement this function with these inputs and these outputs." As a mid-level, I could take a feature description — "users should be able to filter orders by date range" — and break it down myself into the technical tasks required to implement it.

The second shift was that I started reviewing other developers' code. As a junior, I was only on the receiving end of code review. As a mid-level, I was asked to review PRs from other juniors, and that responsibility forced me to articulate what I thought made code good — not just "this works" but "this is readable, maintainable, and follows the patterns we've established." Reviewing code is a different skill from writing code, and developing it taught me as much about code quality as writing code did, because it forced me to form opinions about trade-offs rather than just implementing whatever approach came to mind first.

The third shift, and the one that felt most significant, was that I started being asked for my opinion in design discussions. As a junior, I attended design meetings to learn. As a mid-level, I was expected to contribute — to have opinions about architecture, to push back on proposals I thought were wrong, to suggest alternatives. That expectation was intimidating at first, but it was also the thing that made me feel like a real engineer rather than a ticket-execution machine. Having opinions, defending them, and being willing to change them based on new information — that's the core of what it means to be a mid-level engineer, and it's the skill that the rest of the career is built on.