Skip Main Navigation
Ben IlegboduBen Ilegbodu

The Popoff Progression

A plan for new software engineering grads to focus on gaining depth in a single technical area to help grow their career

Friday, May 22, 2020 · 4 min read

As a new bootcamp or college graduate, your first job can be really critical in determining the trajectory of your career. I believe that in your first job you should seek out mentorship and training that will allow you to focus on gaining significant depth of experience in a single technical area. This is counter to the prevailing wisdom to gain broad experience in several different areas.

I have reviewed so many resumes and interviewed lots of candidates who were a year or 18 months into their career, but honestly didn’t appear to be any different than the next cohort of graduates. Even though they had professional exposure to lots of different technologies, when looking for their second job, they struggled. They weren't really strong in any of the technologies they had used at their first job. As a result, they weren't shining in their interviews. They would likely join their second company at the same level as a new grad (and the same level they were in their first company too), but with seemingly less potential.

The Beginning

picture of a worried man at the computer
Photo by Tim Gouw

When you start your first job out of bootcamp or college, you really don’t know anything. You went to school, but in the grand scheme of things, you don’t know much. We’ve all been there. Trust me. So, in the beginning, your imposter syndrome levels are high and each week you come into work worried that you may be fired because you aren’t contributing much. But don’t worry, things will get better.

It’s at this point, however, where you have your first fork in the road. Without a focus and adequate mentorship, you’ll likely just take on simple tasks like fixing text copy or easy bugs. They will be things you’re confident that you can already do. And because what you can do is minimal, you’ll jump around different parts of the stack, dabbling in little things here and there. You need a mentor or manager who will push you in a specific area to take on tasks you can’t do yet in order to help you grow.

Now it is important to get a good understanding of the surface area of your team’s code. But I believe that about 3 months into your first job, you should identify an area of focus. It could be something that you’re really interested in learning and getting better at, or it could be a gap that would really level up the team. It could be developing high-quality UIs in React, writing robust end-to-end tests in Cypress, working with a design system in Figma, or writing GraphQL resolvers in Rails. It could be nearly anything. Just make sure it’s something that you and your manager agree upon. That way when there are tasks in that area of focus, your manager will push you and advocate for you to take them on.

Figuring it out

silhouette of a woman celebrating
Photo by Nghia Le

The next fork in the road will come when you’re starting to get good at this skill. You’re actually able to debug problems in React without needing help. You can go through a code review without 50 suggested changes. Yay! 🎉 But then a shiny new project building out a GraphQL server in Rails comes up for the team. You’re 9 months in and you are itching for something new. Do you jump on that project to learn Rails (and GraphQL) or do you keep diving deeper with React?

Again, this is where I go against conventional wisdom and suggest you continue developing your React skills in depth. You could spend the next 3 to 6 months getting to the same level with Rails as you did with React, but then when you return to React, you’ll realize that you’ve forgotten what you've already learned. You've forgotten how to debug. And your code reviews are coming up with feedback on things that you once did correctly the first time.

And if at this point you need to look for a new job (for whatever reason), you can’t really interview for React-focused roles. And you can’t really interview for Rails-focused jobs either. You will, of course, need a generalist role, but you likely won’t come off as strong either. You'll basically be starting all over. Like I mentioned before, you'll be at the same level as a new grad.

“One Thing”

Instead, I suggest focusing on getting even stronger with React, or whatever was the “one thing” that you chose as your first skill. The goal is to get so good with this “one thing,” that you could leave the company, interview solely based upon this skill, and get hired because of your depth in this skill. Now I'm not suggesting that you leave, but that’s the depth you would want to strive towards. And if you are that solid, the company wouldn't want you to leave either.

That means that you should be able to:

  • Build without assistance (you’re even Googling less, oh my! 😱)
  • Quickly debug without assistance
  • Code review others’ work and give actionable feedback
  • Pair with others to help them build and debug
  • Informally teach and train others who are just learning

Then, 12 to 18 months in, once you’ve become a go-to person in your organization for developing React applications, for example, then you can move on to the next skill and follow the same progression for that skill. And it may even take you a shorter amount of time to get really good at the “second thing.” Then in that two- to three-year window when everyone seems to want to change jobs, you’ll have 3 or 4 deep skills that will hopefully get you that Senior Engineer role (because we know it’s hard to get promoted internally).

Now I’m a realist. There’s no way you’ll be able to focus distraction-free on one skill for an entire year. Your team is going to need you to do many other things. And again, exposure across the stack is good. So if your focus is developing React applications, it’s really good to know how the Rails APIs work, even if you never develop them. However, if you have that goal to get really good at that “one thing,” it’ll give you the necessary focus to make sure that you don’t get sidetracked.

By the way, this focused progression of “The Beginning” to “Figuring it out” to “One Thing” is what I call the “Popoff Progression.” I named it after Nick Popoff, a Director of Engineering at Eventbrite, who shared it with me when we were talking about training up bootcamp graduates several years ago. I love it and I share it with any recent or soon-to-be grads that ask me for career advice. And now I've shared it with you.

Keep learning my friends. 🤓

Subscribe to the Newsletter

Get notified about new blog posts, minishops & other goodies

Hi, I'm Ben Ilegbodu. 👋🏾

I'm a Christian, husband, and father of 3, with 15+ years of professional experience developing user interfaces for the Web. I'm a Google Developer Expert Frontend Architect at Stitch Fix, and frontend development teacher. I love helping developers level up their frontend skills.

Discuss on Twitter // Edit on GitHub