How to get a promotion and become a Staff Engineer at FAANG

Watch the video explanation ➔

Becoming a staff or principal engineer at a major organization like Google, Microsoft, Amazon, Facebook, or Uber is a significant milestone for any individual contributor (IC). It requires a combination of deep technical expertise, proven leadership experience, influential presence, demonstrated business impact, and the trust of your manager. In this article, we will explore these five key steps that can help you cross the barrier and advance to the staff level in a big organization.

1. Deep Technical Expertise

When aiming for the next level, it is crucial to establish yourself as a subject matter expert. Having a deep understanding of the product and technologies you work with is essential.

As a staff engineer, you become the go-to person for anything engineering-related in your domain. People will rely on your expertise to drive complex projects, solve intricate engineering problems, and foster collaboration between teams. Deep technical expertise instills confidence, enabling you to communicate effectively with others, identify blind spots, and ensure successful project completion.

2. Proven Leadership Experience

To reach the staff level, you must demonstrate proven leadership experience. Staff engineers tackle complex problems directly impacting business success and revenue. Organizations seek individuals who have excelled in their roles and have a track record of leading and delivering complex projects on time.

As you transition from a senior engineer to a staff engineer, the complexity of the projects typically increases significantly. Leading multiple projects that make a substantial impact is crucial. Highlighting your proven leadership experience showcases your ability to lead and drive initiatives successfully.

3. Building Influence

Establishing influence is paramount to advancing to the next level. In addition to being the go-to person within your team, it is essential to build influence within your team, sub-organization, and ideally, the entire organization. Becoming the person others turn to for answers and guidance in your domain is invaluable.

Building influence is not only about personal branding; it involves asking critical questions, challenging decisions, and earning the trust of your colleagues. Having influence means people trust your expertise and actively seek your input, making you a respected authority in your field.

4. Demonstrating Business Impact

Being a staff engineer goes beyond being a skilled coder; it requires delivering tangible business impact. Your role involves building solutions that positively contribute to the organization’s revenue and profit. The ability to quantify your impact in terms of monetary value is highly valuable.

Leading projects that significantly increase revenue or profit showcases your ability to contribute to the organization’s bottom line. Demonstrating your proficiency in delivering projects with a quantifiable business impact is vital when aiming for the staff level.

5. Gaining the Trust of Your Manager

Earning the trust of your manager is vital for your career progression. Your manager plays a crucial role in advocating for your promotion and fighting on your behalf. Building trust with your manager is not about bootlicking but about working together as a team to deliver impactful results.

When your manager sees you as the go-to person for challenging situations and trusts your abilities, it increases your chances of reaching the next level. Developing a strong working relationship with your manager paves the way for opportunities and growth.

Conclusion

By focusing on these five key steps—deep technical expertise, proven leadership experience, building influence, demonstrating business impact, and gaining the trust of your manager—you can increase your chances of becoming a staff engineer. Remember that reaching the staff level is not just about coding but about making a quantifiable impact at a higher level. Best of luck on your journey to the next level!

Here's the video ⤵

Courses I teach

Alongside my daily work, I also teach some highly practical courses, with a no-fluff no-nonsense approach, that are designed to spark engineering curiosity and help you ace your career.


System Design Masterclass

A no-fluff masterclass that helps experienced engineers form the right intuition to design and implement highly scalable, fault-tolerant, extensible, and available systems.


Details →

System Design for Beginners

An in-depth and self-paced course for absolute beginners to become great at designing and implementing scalable, available, and extensible systems.


Details →

Redis Internals

A self-paced and hands-on course covering Redis internals - data structures, algorithms, and some core features by re-implementing them in Go.


Details →




Arpit's Newsletter read by 80000+ engineers

Weekly essays on real-world system design, distributed systems, or a deep dive into some super-clever algorithm.