Optimizing for Opportunity

Ryan Peterman - May 19 '23 - - Dev Community

Career growth past the staff level can often seem out of reach. We know that to succeed we need both ability and opportunity. But when it comes to advancing past a certain point, access to the right opportunities becomes the limiting factor. To better understand how to optimize for opportunity, I studied the career paths of 11 people who were at least engineering directors or principal engineers (IC8+) at Meta. Here's what I found.

Image description

Engineering Directors:

These directors had a similar story: they worked on a product that was a top company priority, grew a ton, and had outstanding business impact. Their careers grew as quickly as their teams did.

They optimized for opportunity by leading teams focused on mission-critical projects. Some intentionally sought out top priorities, while others became involved by chance. Either way, working on top company priorities gave them access to more resources. In one director's case, she had direct time with top executives and dedicated executive coaching when she needed it.

They also invested in building the necessary skills to take advantage of growth opportunities. The skill set they needed changed as their teams scaled. They mastered prioritization and delegation based on need. One director's thought on prioritization stood out:

"It's often more impactful to take something from good to great rather than from poor to passable."

Product Engineers:

These product engineers' growth also came from working on products that were growing and having tremendous business impact. Along the way, they developed organizational trust from their strong track records.

These engineers had more agency and control over opportunity than their managerial counterparts. They could pick projects that interested them and use prototyping to realize their ideas. One engineer's thought describes this well:

"As engineers, we have the unique ability to just build our ideas. Taking the abstract and making it concrete advances discussion; nothing beats experiencing a product yourself. I've always looked for simple ways to prototype sooner."

These engineers optimized for opportunity by establishing trust through past success, which granted them first access to future critical projects. Also, these engineers were often proactive in working with the most skilled people at the company. One of the engineers even made it a point to go from project to project with the most skilled designer at the company.

Infrastructure Engineers:

These infrastructure engineers all solved high-leverage problems which improved large parts of the engineering organization. Their work had a compounding effect since they made improvements to the tooling or underlying infrastructure every engineer uses at Meta.

These infrastructure engineers seemed to have the most agency in creating opportunities since their impact didn't depend on product growth. Across the board, each engineer champions the quote "code wins arguments". Prototyping and proving their ideas allowed them to create opportunities. None of them mean this as a way to solve problems single-handedly, but use it as a tool to get consensus. One of the engineers summarized this:

"If you want to go fast, go alone. If you want to go far, go together".

They optimized for opportunity by putting themselves in a position to get lucky. They were proactive in chasing the top problems for the engineering organization. Oftentimes, these engineers worked on these problems outside of their team's scope in their spare time. They also invested in continuing their engineering education by pairing with domain experts and reading technical books.

Summary and recommendations:

All 11 of these people were lucky to be working at an incredibly successful, growing company. Growing companies are much more likely to have opportunities for career growth since "a rising tide lifts all boats". If your current company doesn't have that growth potential, you may want to consider switching. Aside from joining a growing company, these people did three things that increased their chances of finding the right opportunity.

First, they sought out business-critical projects that excited them. It's not enough that their projects were a top priority, but also it's important that they were passionate about their projects. It motivated them to do higher-quality work and put more time in which led to better outcomes. If you are not passionate about what you are working on or it is not critical to the success of your company, talk to your manager or consider switching teams.

Second, they were intentional about working with the most talented people they knew. This helped them achieve more through their collaborations. Not to mention this increases the chances of future opportunities since talented people are often working on impactful projects. To do this, factor in the talent of your peers when choosing what to work on and who to collaborate with.

Lastly, they all honed their skills and delivered high-quality work. Their skills increased the chances that they succeeded once the right opportunity presented itself. Collaborating closely with domain experts and reading "subject-killing" resources are two ways to develop your skills. Most domains have a "subject-killing" resource (e.g. High Output Management for eng management) which will tell you most of the critical information you need to know. Also, their track record helped them have access to more opportunities down the road. Always hold a high bar for the quality and polish of your work. It will pay off over time.


Extraordinary career growth isn't something that many will achieve even if they have the necessary ability. Growth at the highest levels requires access to increasingly scarce opportunities so it's not something you should expect. However, you can increase your chances with these behavior changes. Hope this is helpful, enjoy the ride and good luck.

Join 2500+ software engineers who receive new posts on my Substack and support my work

Thanks for reading,
Ryan Peterman

. . . . . . . . . . . . . . . . . . . . . . .