Context: I recently participated in a panel at my company, Lyft, talking about the things I wish I knew about leveling to a Staff position — Staff Engineer, in my case. At Lyft (and other tech companies like Google or Facebook), levels go from 3-10 and levels 6 and 7 are considered "Staff". The panelists and audience were all members of under-represented minorities, referred as "target group" in this context, including blacks, women and latinx.
1. Tell us a little about yourself, and how you got started in the industry?
I have an undergrad in oceanography and a PhD in physical oceanography. After finishing my PhD, I started working as a climate scientist, running climate simulations to understand the impact of the Amazon deforestation on climate change[archived]. The simulations produced 100+s of terabytes of data that I analyzed using Python. Back then, Python was not as popular as it is today, so I started writing libraries for data analysis and releasing them as open source. Eventually I was hired by a startup[archived] in the US working with ocean, meteorological and climate data — my title was “ocean data engineer” — and after 1 year I joined Facebook as a “regular” data engineer.
2. Tell us about your current role, your title and generally the sort of work you and your team do day-to-day.
I’ve been a Staff Engineer since the last promotion cycle, when I was promoted from T5 to T6. I work in the Data Analytics Platform team, and my most recent work has been developing an IDE for composing and executing SQL queries. I like the role because it requires coordination and cooperation across a tall stack and many teams, in addition to writing robust code. Before, I worked developing Apache Superset[archived], implementing features that Lyft needed, as well as deploying and maintaining it internally. Working primarily with open source is different because most of my interactions were with engineers in other companies, which has its pros and cons.
3. Were you previously hired as a Staff Engineer, or was your promotion internal at Lyft? If you were staff-level previously, how does the promotion process compare to the process you see here at Lyft?
I was hired as T5, and promoted internally.
4. What two or three factors were most important in you reaching staff? Describe any projects or practices that you took on that helped you achieve your goal.
First, the basics. Ensuring that the technical aspects of engineering are there: writing good code, keeping code up to high standards when reviewing it, ensuring best practices, writing good and up-to-date documentation, and identifying and solving pain points you and your team members have that affect their productivity and impact.
Second, having a long term vision and communicating it. My mentor told me, “if your team doesn’t have a 2 year vision you should write one”. I was fortunate to be able to represent my team during the planning for the 2020 roadmap, advocating for the vision that I had and how we could work together with other teams.
Third, knowing who and how to ask feedback for calibrations. When asking for feedback remember to mention that you’re going for promotion (and the level), and ask for specific feedback in one area. Ensure you have feedback covering all areas.
Finally, having an impact outside of Lyft also helps. I became an Apache committer and PMC member, spoke in conferences and helped organize meetups around data.
5. How long did you feel you were performing at the staff level before you were formally promoted?
6. Have you been rejected from a promotion opportunity? What did you learn from that experience and what changed in your capabilities or skills the next time you applied?
Yes, in my previous cycle. I evaluated the feedback with my manager and made a detailed plan to ensure that I would be able to cover all the expectations of a T6 in the next 6 months. One thing I learned is that getting promoted requires careful planning, to make sure there’s a balance between all the different expectations — if you’re exceeding too much in one it probably means another is being left behind — and also in asking the right feedback.
7. What was your biggest challenge in your promotion process to T6? What unique challenges came along with being a Target Group member in this process?
My biggest challenge was prioritizing and saying “no”. My natural reaction is to jump in and help people, and that can lead to my work being spread too thin. Also, many times the exciting/challenging/fun work is not the most impactful one, and I had to learn to ruthlessly prioritize.
8. Have you had/have a sponsor throughout the process? If so, how did you secure one? How has it benefited you in your career?
No, I had a mentor. To be honest I just learned the difference between sponsorship and mentorship now.
9. How did you feel after getting a promotion to T6?
Happy, and like I had received recognition that I deserved.
10. After your promotion to T6, what additional skills/capabilities did you add to your role to continue progressing/growing?
Since my promotion is recent, and the current situation is atypical, the most important skills I’ve been trying to develop are related to my team being remote: ensuring that everyone in the team shares the same context, and that junior engineers have the support necessary for their productivity.
11. Where do you feel most impactful as a Staff Engineer? A specific story would be grand.
I feel that the biggest impact is actually in helping the team in building scalable solutions, designed for the long term. Helping build a solid foundation for projects, and building it with clean interfaces so that team members can be more productive.
Linus Torvalds once said (paraphrasing) "if you start with the correct data structures the algorithm will write itself". A similar concept exists when architecting systems.
12. Can you think of anything you’ve done as a Staff Engineer that you weren’t able to or wouldn’t have done before reaching that title?
Not really. To me the title is more an acknowledgment, as it should be. In order to be promoted to T6 you need to show sustained performance at that level for some time (usually 9-12 months), so I don't think there were any changes in terms of what I've done after reaching the position.
13. How do you keep in touch with how things really work as you spend less time on hands-on development?
My team is small and my promotion is recent, so I still spend considerable time doing development. One thing that helps is enforcing good standards from the start (unit test coverage, eg), and providing tooling simplifies development (eg, mocks for external components with complex behavior). My favorite quote is “a lot of effort went into making this effortless”[archived].
14. How does it feel to have more visibility as a Target Group member at a senior level? What are challenges and difficult situations that you've encountered that you can share with the group, and how are you working through them?
In my case my biggest challenges were not related to being part of a target group (latinx), but more from coming from a non-engineering background. Dealing with impostor syndrome and having to prove (mostly to myself) that I had the skills needed took considerable time. Two of the reasons why I joined Facebook were that I knew I would be able to learn a lot, but also I knew that people would respect my experience as an engineer there.
15. Do you spend time advocating for technology, practice, process or architectural change? What’s something you’ve advocated for? Can you share a story of influencing your team?
Yes! I’m a big fan of UI and UX. One thing I advocated for the SQL IDE we’ve been building lately is that if you copy the current URL and send it to someone else, they should see the same thing (assuming they’re allowed to). It’s something simple, but that many data tools get wrong.
I’m also very passionate about the interview process. I convinced recruiters to use the candidate’s first name only on the meeting invites, since it shows up on the tablets in each room. I did this after interviewing two candidates on the same day, in adjacent rooms, both from the same company.
No, not yet. It’s something I want to start doing. Looking back at the last few years, it's something I've done occasionally, but without realizing it. I feel that having a proper method, setting expectations from both sides and having accountability can make the process much more efficient.
17. Did you ever consider engineering management, and if so how did you decide to pursue the staff engineer path?
Not really. I’ve managed interns before, at Facebook, and realized it’s not for me. I’d rather use my people skills in doing interviews and teaching new hires during onboarding.
18. How has your work/life balance changed before and after your promotion to T6? How was the adjustment period like for you?
I never had big challenges with my work/life balance, and nothing has really changed for me since I became T6.
19. How do you feel COVID 19 affects your workload as a staff engineer?
My team was already in Seattle, so the remote aspect affects my work very little. But we had a junior engineer joining the team, and I noticed the current situation makes it harder to ensure they are onboarded and ramped up appropriately, requiring more constant checkins.
20. What are useful resources you can share to help others transition to T6 more smoothly?
I’m not sure, I mostly transitioned to T6 by doing the work I thought was important, and using the career spreadsheet as a reference to see that I was covering all the expectations.
21. What do you wish you were told on your journey to becoming a staff engineer, especially for this Target Group audience?
When I started my career in tech I had no idea that there were different levels, and that some people were willing to mentor/support you. It took me a couple years to understand how everything worked, and it would’ve been nice to have more context when I started.
22. What advice would you give to someone who has just started as a staff engineer (specifically for this Target Group audience)?
Keep learning, keep a journal, find a mentor/sponsor and someone for you to mentor/sponsor.
23. What are some resources (books, blogs, people, etc) that you’ve learned from? Who are your role models in the field?
When I started my career blogs were very popular, and I learned a lot from great Python programmers like Jack Diederich[archived], Luciano Ramalho[archived], Ned Batchelder[archived] and Ian Bicking[archived]. I admire them because they are able to make computer programming accessible and fun. As for books, I would recommend The Architecture of Open Source Applications[archived] and Designing Data Intensive Applications[archived].