I recently became a Staff Software Engineer at Snap and the promotion feels more like a beginning than an ending. I wanted to capture some lessons I wish I could’ve given my younger self — idiosyncratic to my path, but hopefully useful to others on theirs.
Mindset
My most significant challenges came from within, not from the technical work. The technical problems felt solvable. I could think through them, research, and ask for help. The harder work was reshaping how I thought about myself and my abilities.
- It’s ok to be imperfect. I had an idea in my head of what a Staff Engineer needed to be. Imagining myself filling those shoes gave me crippling anxiety. Each time I opened Tanya Reilly’s The Staff Engineer’s Path, I could only read a few pages before the voice in my head saying “you can’t do this” got too loud, and I’d have to put it down.
Two years ago, when I signed up for therapy again, I put on my intake form:
Feeling inadequate for leading a large project at work, finding it difficult to study / prepare for next level considerations due to self-doubt.
My goal:
Find ways to tame internal / self-judgement. Find focus. Continue improving but with positive outlook.
Through therapy, coaching, meditation, and exercise (particularly running and cycling), I found ways to lower my anxiety and let go of the need for perfection. Thoughts aren’t facts. The voice saying “you can’t do this” was anxiety, not truth. This realization gave me space to lead from my values: connection, curiosity, growth. I could show up as both a work-in-progress and an effective leader.
-
Escape the comparison trap. For me, the worst source of “compare and despair” came from Team Blind, an anonymous career forum. While it has its uses, it became a drag on my mental health and a crutch for my anxiety. Quitting it was a huge net positive. While it’s natural to look at other paths and wonder “What if?”, every choice has trade-offs.
-
Focus on process, not outcome. So much is out of our direct control, such as company re-orgs, shifting priorities, and market changes. Chasing a specific outcome (like a promo or top performance rating) can lead to frustration. Instead, focus on the input: your process. Are you making the best decisions you can with the information you have? Are you showing up consistently, and to the best of your ability? Are you building mechanisms for long-term results? The process is what you control, and can make a big difference over time. For example: I batch meetings into focused blocks to minimize context switches. Small chunks between meetings get reserved for tasks like code reviews rather than attempting deep work. I also block off “no meeting” time on my calendar, treating focus time as a first-class commitment rather than something that happens in leftover gaps.
-
Be patient. It’s not a race. A promotion reflects readiness for the next level of challenges. A career is a marathon, and everyone runs it at their own pace.
Force Multiplying
A core job of a Staff Engineer is to make their entire team and org more effective. But how? For me, it came down to identifying and removing friction.
-
Build levers, not just features. I led a large migration and our progress slowed when we each had to solve the same validation problem independently (ensuring that responses remained the same pre- and post-migration). A single endpoint migration could take a week. Initially, I wrote a doc to standardize the process. That helped, but it didn’t get us moving faster. The real improvement came when we built a framework to automate output comparison and validation. This tooling acted as a lever that reduced migration time from weeks to days by eliminating repeated work for everyone.
-
Share your “secrets”. As an early adopter of AI tools, I developed workflows that made me more productive. I initially feared that sharing these learnings would remove a competitive advantage or expose me as a fraud (“he used AI for that?”). I had to consciously let go of that scarcity mindset. I wrote up my learnings, shared them, discovered there was interest in it, and developed it into a training. I felt humbled by the response. Empowering others isn’t a zero-sum game. It raises the team’s level and puts you in a position to learn from them.
-
Grow those around you. As a senior engineer, I had 1:1s with teammates and offered mentorship where I could. Initially, I’d offer stories and advice regularly, sometimes requested, sometimes not. Over time, I learned it’s more effective to help others come to answers on their own. Learning just-in-time, based on what someone actually needs, sticks better (and it’s how I learn too). So when I’m at my best now, I’m mostly listening and asking questions. Loading context into other people’s brains is probably the highest leverage thing I can do.
Strategy
With experience, the challenge becomes less about can you do the work and more about are you doing the right work.
-
What got you here won’t get you there. Up until I became a senior engineer, I succeeded primarily through individual productivity, which doesn’t scale. I learned this the hard way by getting lost in side-quests. As an example, my team ran into a challenge with a database package migration. I thought I could complete it in a week. Instead, it took a full month of hairy, complex work, derailing me from my actual commitments. We ended up rolling it back (though we reused the code later). That month taught me the importance of staying focused on your primary objectives and delegating or deferring what you can.
-
Find or create the “You-Shaped Hole”. There’s a spot where your unique combination of skills, domain knowledge, and interests can be most effective. At one point, I had the opportunity to join a different team. It sounded like a good project, but anyone could probably do it. I chose to stay with my team and invest in my strengths: domain familiarity, Python expertise, and existing relationships. The goal isn’t to be a generic “good engineer,” but to find or create the role where you can deliver disproportionate value.
-
Making things look simple is incredibly difficult. Elegant solutions often hide the mountain of research, dead ends, and debate that produced them. For one project, my “simple” proposal had a 50+ item reference list and an appendix with a completely different approach. Don’t be discouraged by the messy process. That’s what builds confidence and leads to the best answers.
-
Balance the big picture and the small details. You have to operate at multiple levels, such as setting multi-year strategy while also being able to dive into why a service is slow today or where the biggest cost-saving opportunity is this quarter. Both are critical.
Looking ahead
I’m incredibly grateful for the managers and others who believed in me long before I believed in myself. One of my managers offered that I’d go as far as I’d let myself - that getting out of my own way would be one of my biggest challenges.
If I could go back and talk to myself a few years ago (anxious, doubting whether I could ever get here), I’d say: the skills can be learned, but the real work happens inside. The anxiety doesn’t disappear. You learn to work alongside it. It all quiets when you stop trying to be perfect and focus on being helpful and present.
There’s a new set of challenges ahead, including new ways I’ll feel inadequate, new skills to develop. In a way, that’s the point. This promotion isn’t proof that I’ve “made it.” It’s confirmation that I’m ready for the next level of hard problems. The work continues. I’m excited (and a little nervous) for what’s next. That feels exactly right.