What does Staff level mean at GitLab?
At GitLab, Backend Engineers and Frontend Engineers
work together with Product, Design, Quality, and Security to improve the product and address technical challenges.
At the Senior level,
they are expected to address the most complex challenges within their engineering team, as well as help their team members with technical blockers and process improvements.
When considering a career path or direction within GitLab,
Senior Engineers — both Backend and Frontend — can choose either to advance on the management track to become an Engineering Manager,
or on the individual contributor (technical) track to become a Staff Backend Engineer
or Staff Frontend Engineer.
Each job description gives some idea of the responsibilities of a Staff Engineer role, but how does that look in practice?
Current and previous Staff Backend Engineers and Engineering Managers kindly agreed to talk to me in a series of one-on-one interviews.
As someone considering the technical track to become a Staff Backend Engineer, I wanted to find out what exactly it entails.
Much of what each engineer said overlapped, but each had a unique perspective based on their team and their particular experience within GitLab as an entity.
note: The following is based on the experience of Staff backend engineers at GitLab, but there will be future
explorations into the world of Staff level of Design, Technical Writing, and other positions that can be Staff.
The following sums up the perspective of each of the engineers, with my takeaway in italics.
What Staff Backend Engineers said
Jacob Vosmaer, @jacobvosmaer-gitlab (Amsterdam, the Netherlands), leverages his chronological knowledge of GitLab from when it was small enough to be understood by one person.
This gives him the foundation to understand the product from a systemic perspective.
GitLab is now an enterprise-scale complex project, and uses many third-party open-source libraries as part of its product.
A Staff Engineer can recognize a good solution when they see one, and able to clearly explain its merits to other engineers, community members, managers or customers.
Sean McGivern, @smcgivern (Edinburgh, Scotland) provided some historical context - Staff used to mean a role specifically on a team, but now it's more of a multidisciplinary role.
The impact of Staff Engineers is predicated not purely on advanced technical skill, but their ability to collaborate across teams.
As a former Engineering Manager, he identified an overlap between the leadership skills and time management skills required by Staff Engineers and Engineering Managers.
A Staff Engineer has a broad skill-set with in-depth expertise in several areas (see 'Paint Drip' people*).
Ash McKenzie, @ashmckenzie (Geelong, Australia) noted that reaching beyond his team can mean finding and identifying a niche that needs a champion, and working to improve it without oversight.
In Ash's case, his high-leverage work on the GitLab Development Kit (GDK) means he can help every person working on the GitLab codebase to become more efficient by removing technical blockers in the GDK itself.
A Staff Engineer leverages their increasingly on-demand time to help others, efficiently unblock them and enable them to move forward.
Nick Thomas, @nick.thomas (Shetland, Scotland) identified that one way to thrive at the Staff level was to identify systemic improvements.
This may involve slow, steady identification of system-level challenges, rather than solving immediate time-sensitive issues.
A Staff Engineer is asked for technical opinions more often than at Senior level, and it allows them to have a greater technical and cultural impact.
Andreas Brandl, @abrandl (Hamburg, Germany) noted that levels above Senior require increasing familiarity with the company, processes and culture in order to thrive.
Because GitLab encourages anyone in the company to question anything, it allows dynamic, iterative improvements to processes.
Staff level engineers can demonstrate this publicly and encourage, enable and support others to do the same.
A Staff Engineer questions anything, looks for process improvements and encourages the documentation of processes for clarity and transparency.
Dylan Griffith, @DylanGriffith (Sydney, Australia) emphasized the role of reaching out beyond your team and collaborating with others across GitLab and in the wider community.
By familiarising themselves with the vision of the product itself as well as its business value, this allows Staff Engineers the ability to better identify cross-team issues that may have escaped notice.
A Staff Engineer identifies and addresses cross-team problems that may otherwise fall through the cracks and liaises with management, Product and customers to steward delivery to completion.
Fabien Catteau, @fcatteau (Compiègne, France) focused on knowledge management and transfer within the context of a broader technological vision, which complements the Product vision.
Since GitLab is an enterprise-scale product, nobody can know everything - so Staff level engineers balance sharing what they know and being comfortable with asking for help.
It's important to understand what skills and knowledge are missing from a discussion, reaching out to who knows the missing piece, and bringing them into the conversation.
A Staff level engineer not only focuses on constantly improving their own knowledge of the product, but enthusiastically empowers other developers to do the same.
Rémy Coutable, @rymai (Cannes, France) spoke particularly on having the courage to address problems outside your team or area of expertise.
As a Staff level engineer, your ability to show the values by example is amplified.
Visibly asking for help and bringing in experts from other area of the product encourages others to do the same.
A Staff Engineer reaches beyond immediate technical needs, independently considering the longer-term, and is always looking beyond for ways to have a broad impact.
Grzegorz Bizon, @grzesiek (Olsztyn, Poland) explained the difference between Senior and Staff as not much different technically,
but a Staff level engineer collaborates more with other team members and leverages their understanding of human nature to broaden their impact across the product.
He emphasised kindness as one of the most important values, and at Staff level there is greater opportunity, and responsibility, to help others.
A Staff Engineer is kind, supporting others and helping them grow and succeed in a holistic way, not just limited to technical help.
Rachel Nienaber, @rnienaber (London, UK) has a unique perspective as an Engineering Manager who has helped multiple Engineers attain promotions, including one to Staff level.
She emphasised leveraging leadership competencies to facilitate technological discussions and either owning or delegating projects to completion.
Using your voice in technical discussion is like a muscle - the more you use it, the more natural the activity feels and the more confident you will become to contribute more often.
So she encourages all engineers to contribute in discussions, even if they aren't always 100% certain.
A Staff Engineer dovetails technical strategy to product strategy, helping the team to be more productive while interfacing with other teams.
Yorick Peterse, @yorickpeterse (Hilversum, the Netherlands) described Staff level Engineering in terms of anticipating future needs and understanding the broader technical vision of the product.
To him, Staff level engineers proactively identify problems, define scope and work with stakeholders, Product and team management.
The expectations of quality, technical acumen and communication skills are higher once an engineer hits Staff level, as well as ongoing collaboration outside the team.
A Staff Engineer bridges the gap between Management focusing on capacity planning and timing for the future, and individual contributors carrying out the work.