00:00:00.000
Ready for takeoff.
00:00:17.279
Hi, RubyConf! Last stretch before lunch. Are you as excited as I am?
00:00:26.100
Okay! Hi everybody and welcome to the talk titled "Staff Engineer: Here Be Dragons." My name is Alexandre Terrasa, and I am a Staff Engineer at Shopify. You can reach me by email because I'm an old person, apparently.
00:00:30.840
We're hiring, so if you're interested in what we're doing and want to have a chat, please come join us at the booth after this talk.
00:00:37.559
I'm a member of the Ruby and Rails infrastructure team, working with some amazing people. Together, we tackle projects like the Ruby language, the Rails framework, ygit, trophy, the Ruby syntax tree, and the Ruby LSP. This talk is about dragons, and specifically about what 'Here Be Dragons' means.
00:01:07.860
In medieval times, uncharted areas of maps were marked with 'Here Be Dragons' to indicate zones where people had yet to explore. While paths like junior to senior engineer are well-defined, the role of a staff engineer feels more elusive and filled with uncertainty—much like those dragons.
00:01:29.520
As I began my career as a junior engineer and progressed to senior engineer, the paths seemed clear, but stepping into a staff engineer role became daunting. It wasn't immediately clear what was expected of me or what my responsibilities would entail. That's why I wanted to give this talk: to help demystify the role and clarify what it means to lead beyond the management track.
00:02:29.880
I want to clarify that I do not claim to be an authority on this matter, nor do I consider myself a great staff engineer. There are individuals from my team here today, so I hope to be honest and share insights based on collective experiences.
00:02:55.500
For this talk, I consulted senior colleagues, staff engineers, and other team members. I want to thank everyone who helped me understand their experiences, share their perspectives on this position, and answer the questions I've been asking over the past few weeks.
00:03:12.960
I also want to highlight two excellent resources: 'Staff Engineer' by Will Larson and 'Staff Engineers Part' by Tanya Raley. I encourage you to read these if you're curious about becoming a staff engineer or if you're already in that role. They provide valuable insights into what it means to be a staff engineer.
00:03:49.920
To better understand what staff engineers do, let's briefly review the journey from junior to senior engineer. It usually starts with a junior engineer position, perhaps right out of university or from a different background. At this level, the goal is to level up your craft; you contribute to projects and ship code with many oversights while taking direction from more senior engineers.
00:04:30.420
As we grow and progress, we reach the engineer level, where we continue honing our craft but collaborate more with the team. We apply best practices learned from more experienced colleagues and start shipping code more independently. However, the impact we have at this level is still primarily individual.
00:05:02.940
Eventually, we become senior engineers, trusted experts of the code we work with. We require less oversight and better understand the long-term impacts of our technical decisions. We contribute to new technical patterns and hold our peers accountable for adhering to those patterns. At this stage, our impact shifts from being individual to influencing our peers and the broader team.
00:05:56.700
In most companies, the title of senior engineer is considered the peak career level. It is the highest position that most engineers will achieve without making a shift to management. While it's generally important to progress quickly from junior to senior roles, there are no expectations to advance beyond senior engineer.
00:06:55.140
But what if you want to go further? You typically face the choice between the management track—engineering management—and the technical track—technical leadership. The management track includes the positions of engineering manager, senior manager, director, and VP, focusing on performance reviews and career progression.
00:07:47.280
If you're not inclined towards management, you might consider the technical track, which includes levels such as staff engineer, tech lead, architect, senior engineer, principal engineer, and distinguished engineer. Today's discussion will center on the staff engineer level, where many find themselves grappling with ambiguity.
00:08:56.400
The issue with the role of staff engineer is that it may not be present in all companies, which depends on the organization's maturity. Statistically, there are fewer staff engineering positions compared to senior engineers, resulting in less guidance available through articles and resources.
00:09:54.840
Historically, the title of staff engineer likely originates from the British Navy's establishment of naval engineers when steam engines were introduced. In 1885, the most senior chief engineers received commissions as 'staff' with ranks equivalent to lieutenants in other branches, indicating experience of 8 to 15 years in the field.
00:10:44.720
The term 'staff' itself comes from the German word 'stab,' designating a group of military officers assisting a commander in decision-making. Today, staff engineers lead teams (squads or clusters), identify technical problems, and create impactful solutions. They align the technical direction of ambiguous projects while developing team processes, tools, and the codebase to improve throughput and engineering quality.
00:11:24.840
Their impact level shifts from individual contributions to team-wide growth. As Rose Wigley, a senior staff engineer at Shopify, succinctly put it: a senior engineer is a problem solver, while a staff engineer is a problem finder. As staff engineers, we identify strategic challenges and priorities for our companies, think ahead, and strive to anticipate potential problems.
00:12:30.180
To gain a clearer picture of what a staff engineer's week might look like, let’s visualize a standard workweek. As a staff engineer, you remain part of a team, report to an engineering manager, and participate in team rituals. Responsibilities like morning sprint planning, one-on-ones, stand-ups, and team socials still fill your schedule.
00:13:17.640
In addition to team collaboration, you set the technical direction for your team. For example, you'll schedule time for code reviews, which ensure that your team builds correct code within the right architectural context. Code reviews are essential for maintaining engineering quality and keeping awareness of team dynamics and projects.
00:14:16.560
As a trusted area expert, you’ll likely be involved in meetings—strategic planning sessions where you contribute to selecting priorities and aligning with higher management, and collaborative alignment meetings to decide the technical direction across teams. You'll leverage your expertise to enhance communication and foster teamwork.
00:15:07.140
Mentoring and sponsorship are crucial duties of a staff engineer. The best staff engineers dedicate time each week to help grow their teams and the people around them, fostering a team’s growth and empowering others to make decisions.
00:15:50.160
Back to our weekly schedule—mentoring involves organizing one-on-ones to assist team members’ growth, provide feedback on processes, and discuss ongoing challenges. It's essential to keep open lines of communication, especially in remote work settings.
00:16:49.560
Pairing is another effective tool to foster learning and sharing knowledge, which should be done across varying seniority levels. Additionally, hiring is part of growing the team. By allocating time for interviews, you can ensure that candidates from various time zones have opportunities to connect with your team.
00:17:38.940
Being a staff engineer involves ensuring your team’s success, which includes mentoring, onboarding, and sometimes taking notes or sharing the outcomes of meetings. It's essential to create and maintain effective documentation to clarify processes and systems for new team members.
00:18:25.680
Now, let's address a common question: "Do you still code?" Generally, the answer is yes, but the time allocated to coding diminishes as responsibilities increase. As staff engineers, coding efforts often become more specialized and focused rather than frequent.
00:19:07.680
Ultimately, the time allocated to various tasks as a staff engineer will evolve, depending significantly on your organization’s focus and priorities—whether it’s solving immediate challenges or refining processes for long-term successes.
00:20:03.180
As you contemplate becoming a staff engineer, first ask yourself if this is what you really want. If you prefer spending your time programming, this role may not suit you. Define your vision as a staff engineer and gain clarity about what you wish to accomplish.
00:20:43.920
Engage with staff engineers in your organization for insights about their roles. Understand what energizes you, and find the right problem space where you can provide the most impact. Prioritize high-impact, strategic work, being mindful not to take on everything by yourself.
00:21:37.920
Be a partner to your engineering manager to create an environment that fosters team growth and success. Cultivate visibility for your behind-the-scenes work, sharing updates with your team, senior management, or stakeholders as necessary.
00:22:12.840
Remember, this professional journey is a marathon, not a sprint. The challenges faced as a staff engineer could take years to resolve, so pace yourself for long-term impact rather than short-term quick fixes.
00:22:46.560
On the subject of becoming a staff engineer, it’s important to reflect on the deeper implications of the role. Being proactive in developing those skills while already contributing positively to your team prepares you for advancement when the opportunity arises.
00:23:49.020
Securing a sponsor—an individual capable of advocating for you when opportunities arise—can be a vital step in your career advancement. If your current company lacks room for growth, consider looking elsewhere where your skills may be more valued.
00:24:30.420
In conclusion, reach out for mentorship and build a network of allies in your career. Discussions about your experiences help open doors and present opportunities previously obscured. Leverage resources to aid your growth, and don't hesitate to lean on others during your journey.
00:25:14.760
For further exploration on this topic, I encourage you to visit the staffenge.com website, a treasure trove of resources. It includes insightful articles, examples, and practical advice on becoming a better staff engineer.
00:26:10.400
Thank you all for your time. I think we have a few minutes for questions. If not, feel free to find me afterward at the Shopify booth to discuss further.
00:26:43.440
As for how to cope with not solving problems yourself, it’s important to trust your team and understand that finding larger problems to solve is a critical part of your role. You need to accept that delegation empowers your team while enhancing workplace dynamics.
00:26:58.320
Building a network of staff engineers can be challenging if you work at a smaller company. To connect with others, look for opportunities both within and outside your company. Conferences and community discussions, like those on forums or podcasts, can provide rich insights and allow you to engage with peers.
00:27:50.280
Mistakes are part of the learning curve. Be transparent when you make them, accept responsibility, and focus on preventing the same errors in the future. Work collaboratively with your team to identify solutions, and ensure that your communication fosters a positive environment.
00:28:33.560
Thank you very much, everyone! Enjoy your lunch.