I recently got an email asking for some perspective that was general enough that I thought it might make more sense to answer as another mailbag post. The lightly edited core of the email was:
- What advice would you give someone five years in their tech career?
- What should someone focus on in the world of fast-evolving tech?
- Also, how did you find the right mentors in the course of your career?
These three questions relate a bit, but are sufficiently different that I’ll answer them independently.
Advice five years into tech career
If I could only give one very actionable piece of advice, it would be to adopt the Promotion packet technique, aka Julia Evan’s brag document. Conversely, I can also ramble on this topic for a while.
When you talk to folks later in their career, they’ve spent so much time crafting their career narrative that it can be hard for them to remember which parts of what they’re saying are real and which parts are the story they’ve practiced telling about themselves for the last decade. For example, earlier this year I tried to write up my own career story in a way that acknowledges just how much luck and privilege has played a part in my accomplishments. It’s still a narrative–we’re all public figures to some extent these days–but hopefully at least a relatively honest one.
The best general career advice I’ve written is A forty year career, which tries to think about what our careers can be if we focus away from liquidity events and towards fulfilling work. Of course, this advice is harder for some folks to follow, who experience a tech industry that is indifferent to their continued participation: “How would I approach my work differently if focused on growth and engagement, and if I measured eras not in equity and IPOs but instead in decades? I’d focus on a small handful of things that build together, with each making the others more impactful as they compound over time.”
I also wrote up a more generic article on career advice before that, Some career advice, which isn’t particularly good, but has some generic relevant advice, a few that are particularly relevant for someone ~5 years into their career:
- “You’re just getting started. Particularly in tech in the Bay area, you can find yourself in some companies and jobs where you feel like an old-timer even though you’re only ten or even five years into your career. Although it certainly feels that way, rest assured it is not the case. You’re still just getting started, there is still more to learn and new things to do.”
- “Decisions aren’t permanent. Increasingly I believe that there are very few trapdoor decisions. Do you want to become a manager? Go for it. It’s not a neutral event to return from management to engineering, but it’s a very common operation that many folks do successfully.”
- “Learn what you can learn everywhere you go, but don’t stay where you aren’t valued. If you’re lucky, at some point in your career you’ll find a company that values you much, much more than previous ones. Typically this will be because you’ve finally found a place where your values are mostly aligned. If you don’t feel that way, know that there is another company out there, somewhere, that will align with your values and they will value you much more as a result. That said, it takes a while to find such places, so don’t wait to learn until you find one, be a deliberate learner everywhere you go.”
- “Build a reservoir of prestige. Once your resume “looks right”, you’ll have more and easier access to interesting opportunities, including second opportunities if something you try doesn’t end up working out. Even if you enter the industry without much prestige, this is something you can deliberately build over time by working at increasingly well-respected companies, writing online, maintaining relationships and speaking at meetups (perhaps graduating eventually to conferences).”
All of those have been important lessons for me, and in particular, the last two have helped me manage my mental wellness more effectively as I’ve come to understand them better.
Focus in the fast-evolving world of tech?
First, a tangential answer. Titles do matter and it is useful to spend time pursuing them to a limited extent,, especially for folks who don’t look like the stereotypical image of a software engineer. However, it’s also important to remember that titles are not enough. It’s easy to get a senior title in a such a way that you end up stagnating.
Another indirect answer is that unless you have a very clear passion, I’d recommend against specializing too much at this point in your career. I’ve seen folks get framed into a given role and be unable to escape that role for decades. Part of that is, probably, their responsibility for not being more creative in how they switch roles, but there are real forces in play that create career inertia. It’s particularly hard to overcome the financial aspects of that inertia when you have significant responsibilities that make it hard to take a temporary financial hit.
As a final indirect answer–then I’ll actually answer the question–I’d recommend that folks be very cautious about moving from core engineering roles into what I’ll very loosely describe as adjacent roles like TPM, PM, Engineering Management or SRE. If you struggle it can be hard to transition back, but even moreso if you thrive it’s even harder to transition back–how do you step away from all that success? My general advice is to avoid changing roles until you’ve finished what you want to accomplish within your current role–you won’’t always retrace your steps later.
Alright then, so what should you actually focus on?
- Do more and different interesting and difficult things - these will stretch and shape you in remarkable ways. It’s often the specific projects more than the company mission that will create the most opportunities for growth.
- Pace yourself - if you’re burning out, fix that. You’ll get the promotion in a year anyway. If your company is fundamentally designed around burning folks out and it’s harming you, leave. You’ll find a better opportunity and if you wait you’ll be a shell of yourself when you’re interviewing or take months of unemployed recovery time.
- Work on what matters - spend more time working on things your organization values and less time fighting your organization about things they don’t value. If something is very important to you, it’s usually better to find a company that values those things than to try to force a cultural change as a software engineer. There are shades of grey here, of course, if it’s a modest change, then of course try to create that change first.
- Build a network of peers - peer relationships are the secret enabler to better jobs and success within jobs.
- Build financial resilience - saving money early in your career creates flexibility for you and those you care about, forever.
Like most advice, this is pretty generic, but if folks ever want more concrete advice, I’m glad to give my thoughts, although what you probably really want is advice from someone who actually knows you and your context, which brings us to the third and final question…
How do you find the right mentors?
Last year I wrote about the strategies I’ve found for Meeting people, which is some general advice on network building. In terms of actually finding mentors, my experience is a bit like what Ritu Vincent’s shared in her StaffEng interview, “What’s been most impactful for me is having a lot of people who I think of as mentors, usually friends, former managers and folks that I’ve worked with. I have a decent number of recurring monthly lunches, coffee chats and dinners with people who’ve worked with me in the past, know me, and I trust. It’s those conversations about career challenges and growth that have gotten me to where I am in my career.”
I’ve never found the idea of a capital M Mentor to be super useful for me, but there are dozens of folks in my life who I go to sometimes to get their perspective. The two things that have been most useful for me are meeting folks by working together at medium to large companies (Stripe was… maybe 400 people when I joined an ~2,000 when I left. Uber was ~1,000 when I joined and maybe ~8,000 when I left, Yahoo was 13,000 when I joined and, ahh, 9,000 or so when I left, but I was so early in my career that I didn’t meet many folks), and forming various learning circles and communities. For example, early this year I formed a CTO/VPE learning circle (going really well, although not accepting more folks personally, would strongly encourage more folks to form their own groups like this that meet 1-2 times a week for 1 hour to discuss challenges together) and more recently a TechWriters discord (which isn’t really working yet, pretty low engagement in there, but a supportive place and have met some really impressive folks ambiently through it).
If you are more of a Mentor type, my best advice would be to send a really concise, thoughtful question to a dozen folks you look up to, and then if they respond send them another similarly thoughtful question six months later. Do this three or four times and you have a mentor who does have your context and appreciates how thoughtful you’ve been about their time, and most of those folks at that point would be glad to have a 30 minute video call where they wouldn’t have been engaged enough earlier on.