Key Takeaways
- Transitioning to a principal engineer role requires a blend of technical expertise and leadership skills, focusing on both individual contributions and team dynamics.
- The key skills for aspiring principal engineers include strategic thinking, influencing others, and effective communication, alongside the ability to empathize with and mentor colleagues.
- Partnering with management, gaining broader exposure within the company, and seizing opportunities for continuous learning through experiences like conferences and mentoring can enhance career progression.
- The definition and expectations of a principal engineer can vary greatly across organizations, emphasizing the importance of adaptability to culture and leadership needs.
- Companies should enable principal engineers by clarifying expected roles, fostering autonomy, and encouraging a culture that values growth and impact.
Introduction
As a software engineer or individual contributor, the next step in your career can be to become a principal engineer. The path to becoming a principal engineer at companies can feel unclear, inhibiting individual engineering careers. However, this also provides opportunities for engineers to invent and shape the role of principal engineers.
In this panel interview, we'll discuss the journey to becoming a principal engineer, touching on the technical and leadership skills required to excel in this strategic role. We also explore how to navigate career progression.
The panelists:
- Joy Ebertz - Principal Engineer @Harness
- Pablo Fredrikson - Principal SRE @Bitso
- Charlotte de Jong Schouwenburg - Co-founder of @Bravely, Business Psychologist, Executive Coach, Trainer
InfoQ: What's it like to be a principal engineer? How does the role of principal engineer look in your company?
Joy Ebertz: My role as a principal engineer has varied dramatically from day to day, month to month, and year to year. It's a matching game between the company's needs, my skills, and what I want to do. That last piece is more nuanced than it may initially sound. It's not just what interests me, but it may be that it makes sense for me to take on technical work right now in order to build up some street cred so that when I want to try to push through a particular technical initiative later, I'll be able to.
The other piece is that while I definitely work with my manager to figure out what I should be working on, and occasionally, he tells me that I need to switch gears, more typically, it's self-directed and self-motivated.
Success in this role involves understanding how you are most effective. For example, I tend to work best when I'm working with at least one other person - both to hold me accountable (even if they don't actively do anything) and to talk things out with (even if they provide no input).
To give more concrete examples, I spent several months investigating authorization frameworks, tools, and providers and creating recommendations, plans, and estimates. I've also spent months together driving a specific project and coding with the other engineers. So sometimes my job is a lot of research and writing, sometimes it's a lot of meetings, presentations, and convincing people, and sometimes it's a lot of coding. It really depends on the company's needs, my skills, and what I want to do at that particular moment.
Pablo Fredrikson: Being a principal engineer involves a great deal of responsibility (and fun!). A principal engineer may have a range of responsibilities, typically beginning with leading a team of engineers to produce high-quality code. Their technical expertise is essential to guiding the team toward maximum productivity. Beyond this, they focus on identifying projects that will significantly impact the company. Principal engineers are often the first to spot inefficiencies or improvement areas across engineering processes, and it's their responsibility to address these. By doing so, they not only enhance productivity within their team but also raise the overall value and technical standards of the company.
Charlotte de Jong Schouwenburg: We work with Principal Engineers in a wide array of companies - from start-ups, and scale-ups to corporates like Microsoft. Depending on the culture, growth path, and leadership demands, the role definition, demands, and tasks of a principal engineer will vary.
InfoQ: What skills should software engineers develop to become principal engineers?
Joy Ebertz: The higher you go, the more you typically need a balance of technical skills and leadership skills. (Note that I'm purposely avoiding the term soft skills because I don't want to imply that they are less critical.) However, it's rare for folks trying to advance to struggle with technical skills, so I will focus here on people and leadership skills. The first skill I want to discuss is understanding the big picture and making tradeoffs. By this, I really mean time and energy tradeoffs. The longer you've been working in tech, the more areas for improvement you'll naturally notice.
Not all of these are worth spending a lot of time on, and some are worth spending time on when you're a large company but aren't if you're a 10-person startup. As you get more senior, you need to shift your mindset from finding things that can be improved to recognizing when it's good enough. Knowing when to let something go and when to let something drop is incredibly important. You can do many things in a mediocre way or focus on a couple of the most vital ones and really nail them.
The next skill is one people talk about a lot - influencing. You'll often need to get others on board to get the things you want done. Influencing goes beyond making a good argument. It involves understanding people's motivations, as well as the culture of the company, team, and individual. If people say no, is it because they think your proposal is a bad idea or because they're too overworked to spend time on it? If the latter, is there anything you can do to solve their problem or improve their situation?
The final skill I want to mention is communication. You could see this as a sub-skill of influence, but it's important enough to warrant its own mention. Improving written and spoken communication in formal and informal settings, with large and small groups, can go a long way toward getting yourself and your ideas out there.
Pablo Fredrikson: Empathy is the skill software engineers should develop to become principal engineers. Being a good person is crucial. While technical skills are important, empathy and a proactive attitude are even more so.
A principal engineer should be able to identify issues across processes and offer solutions. They should also be willing to mentor and guide other engineers when needed.
Charlotte de Jong Schouwenburg: Principal engineers will expand their responsibilities from content expertise to leading, inspiring, and motivating team members and facilitating them to do their job as best as they can. This requires a complementary set of skills to content expertise.
A number of relevant leadership skills (this list is not exhaustive and will be influenced by the culture and requirements of the company as well as the maturity of the team):
- Focus on strengthening trust, autonomy, purpose, psychological safety, ownership
- Motivating, inspiring, providing vision for your team
- Provide structure (contributing to psychological safety)
- Encourage a growth mindset
- Provide and enable continuous feedback
- Guide team dynamics through conflict to connection
- Highlight the contribution and position of the team within the company as a whole, reiterating the connection to bigger company goals (contributes to a feeling of purpose)
- Become skilled at emotional regulation
- Learn to manage up
- Ability to handle difficult conversations: bad news, conflict management, feedback conversations, setting boundaries
- Walk the Talk: define which behavior exactly you want to see from your people and make sure you exhibit this same behavior regularly and explicitly
- Managing up: convince leadership of the added value in pursuing a certain initiative, even if it requires additional resources/costs
InfoQ: How can software engineers develop those skills?
Joy Ebertz: For some of these skills, such as communication, it's a matter of saying yes when opportunities present themselves, even if they scare you.
For example, the more I've written and spoken, the more I've felt comfortable with both, and the more I've found I have to say. I've found some books helpful for some of the others, but also just talking to people. Finding a peer or more senior mentor you can talk about some of these things with can be a good way to gut-check your instincts and help you notice things you might not have otherwise. Similarly, working with people more senior than you, especially on a project requiring navigating tricky situations, can be a good way to gain insight into how others approach some of these problems.
Pablo Fredrikson: Start by actively listening to others. Focus less on mastering every technology right away; technical expertise will come naturally over time.
Charlotte de Jong Schouwenburg:
Software engineers can develop skills by:
- Learn by example - observe, reflect, and integrate skills that you see inspiring and effective leaders apply (these can be leaders from other expertise as well, as these skills are applicable across areas).
- Seek training and especially look for workshops with action learning where a training actor is present to allow you to put new skills into action in real-life, relevant scenarios.
- Practice as much as possible - leadership shows in your day-to-day actions and communication skills. Try to introduce, repeat, and refine as many skills as you can (e.g. feedback) in real life.
InfoQ: What can software engineers do to become more effective as a (technical) leader and increase their impact?
Joy Ebertz: Other than developing your skills, there are three things I would mention. The first is to leverage your manager - see them as a partner to work with. This will lead to the best outcomes for your area of responsibility, and it will also ensure they know your goals and any skills you specifically want to develop so that they can help you find opportunities.
Secondly, keep an eye out for ways to gain broader exposure - both for others to see you and for a better understanding of what's happening across teams, departments, and disciplines at your company. It's hard to have a high-level picture and make tradeoffs if you aren't exposed to that high-level view.
Leverage your manager to get you into higher-level meetings or give you a recap if they cannot. Finally, take opportunities to get to know people from across the company. If you can do something small to help them (while not upsetting the ruthless prioritization I mentioned earlier), do it. Gaining social capital in various areas and improving your understanding of how other teams see the company, their work, and more can be incredibly valuable.
Pablo Fredrikson: Attending conferences is a great start! Conferences allow you to learn from others’ experiences, including the challenges they faced and how they solved them. Mentoring is another excellent way to grow. I run a YouTube channel where I share insights on technologies I use in my daily work. I’ve found that creating content requires a solid understanding of the topics I discuss, so in preparing to share knowledge, I deepen my expertise. Sharing knowledge has undoubtedly enhanced my technical skills.
Charlotte de Jong Schouwenburg: To become more effective, they can do the three things that I mentioned earlier: Learn by example, seek training, and practice by example.
Practice makes perfect and being transparent & showing that you're continuously learning, developing, and struggling is a perfect example of the behavior you want to see from your people as well.
InfoQ: What can companies do to establish and shape the principal engineer role?
Joy Ebertz: The best way for companies to establish and shape a principal engineering role is to clearly outline what they're hoping to get out of someone in the role while allowing anyone they hire to further shape or reshape the role. This can be especially effective if at least the first few principal engineers they hire have a good sense of organizational needs and problem-solving.
Two of the failure modes I've seen are overly restrictive companies, which do not give the engineers the freedom or leverage to do what they see as most important and impactful, and overly loose companies, which are not quite sure what they want to get out of their most senior engineers and, therefore, don't really give them enough direction to get started.
Pablo Fredrikson: Seek out individuals with potential - those who care, who want to learn, and who are eager to mentor others. These individuals will likely lead the company in a few years. Retain them, and provide them with opportunities to grow and make an impact!
Charlotte de Jong Schouwenburg:
Things that companies can do are:
- Enable autonomy: set out a clear career path
- Manage expectations well by outlining expected qualities, actions, and growth paths
- Show the cope of impact
- Define boundaries of what they can and cannot do
- Be clear on the company culture; walk the talk of what you expect from your employees
Conclusions
Principal engineers engage in different tasks, such as leading technical teams, influencing decision-making, and driving improvements. Their work adapts to the company's needs and their personal goals.
Success in this role requires a balance of technical expertise and leadership abilities. Important skills include big-picture thinking and making trade-offs, influencing others, understanding team dynamics, communication, and people skills such as mentoring and motivating teams.
Engineers can build these skills through mentorship, training, observation, and practice. Actively listening, taking on leadership opportunities, and gaining exposure to broader company functions are recommended.
Companies should clarify expectations, provide autonomy, and allow flexibility in how principal engineers shape their roles. It's essential to provide opportunities for growth and to foster a culture of learning and leadership.