I don’t really do “women stuff”. I don’t really identify with any gender and I find a lot of the advice to be condescending and overly delicate, and it’s just a really boring thing to think and talk about. For me.
But I’m feeling guilty after turning down a bunch of requests to do shit for International Women’s Day next week. So I’m gonna do a thing I’ve been avoiding doing for years, and write down my (deeply problematic but practical) advice.
Toughen up. For your first 10 years or 3 jobs in the industry, you’re a junior contributor. You need them way more than they need you, so suck it up. Try not to dwell on the bullshit. Work hard and level up and always angle for more money and power when you can.
Stay technical. There are a thousand paved ramps out of engineering roles and only a few hard paths back in. Technical excellence is currency in this industry, even more so if your credibility is gonna get challenged again and again. So don’t stop engineering til you’re great at it.
Use your power for good. Once you become a senior contributor — and i’m not talking bullshit titles but real seniority, when people are coming to you for help far more than you go to them — then you can afford to get sensitive. …On behalf of others. The research convincingly shows that women get punished for advocating for themselves, but not for advocating for others. It’s a sweet loophole, use it.
If you feel like table flipping out of tech, just remember the rest of the world is at LEAST as sexist as tech is, but without the money and power and ridiculous life-coddling. Where exactly do you think you’re going to go?
Don’t quit tech: quit your job. There are LOTS of tolerable-to-great companies out there. If you stay and suffer, you’re just rewarding the shitholes with your presence. Don’t reward the shitholes any more than you can help it.
Learn shit, save your money, amass great power. Then use it to fuck shit up.
I have a very cynical reaction to the word “values”, especially in the context of corporate entities. At best it’s a disingenuous marketing campaign, usually it’s more like a red blaring light shining on their degenerate hypocrisies and weakest aspirations.
But we’ve been doing a lot of hiring. And one day I realized that most of our top candidates were asking the same two questions: 1) how do technical decisions get made, and 2) what are our company values?
After a few rounds of stuttering and sounding like an idiot, I decided it was time to mayyyybe stop sounding like an idiot and come up with an answer.
But it’s hard to do something you don’t believe in, let alone something as cheesy and heart-on-your-sleeve as write a company values statement. So first I had to talk myself into believing it was worth doing. Which went something like this:
Candidates I respect seem to think this thing matters, therefore it must matter to me too.
Well, some are worse than others. The ones I feel cynical about are the worst. (Facebook’s were a running joke because nobody believed them)
I didn’t hate Linden Lab’s values .. until we stopped believing in them. Hmm, so what was valuable about them?
Well, people used them to help resolve conflicts and make decisions. Nice.
Ok, what else do I hate? Values that are overly broad or include their opposite (“we work hard AND play harder”, “we’re empathetic BUT tough-minded”), are overly generic or too obvious (“no assholes” — duh), are unmemorable laundry lists, or too angelic and earnest (this list is not going to get you laid, capitalist scum).
Ok. So. Our values should be particular (they should not apply just as well to any other company), they should help make decisions and resolve conflict (if they aren’t useful/if we don’t use them then what’s the point), they should be pithy and a bit snarky (an aesthetic choice, just a spoonful of bile to help the medicine go down).
I started jotting down values fodder on my phone, while walking back and forth between home and work, which is how I do all my writing these days. I spent a couple weeks spewing notes out. It was a mess.
Then I sat down with Ginsu, my wizard of a COO, because I knew[*] he had the unique power to sift through my ramblings and craft a pithy message from vast effluvia. After bouncing it around a bit and soliciting everyone’s feedback, we were left with this list, which we quietly back-posted.
What I love about the list that it is specific, actionable, and truly echoes things we say every day to each other (“Everything is an experiment”, “Fast and mostly-right is better than slow and perfect”, and “We hire adults”), as well as bringing bits of our heritage (“Feedback is a gift”is lifted from Facebook; “Do it with style” comes from Linden Lab).
I like that I overhear people repeating the phrases to each other as they do their work and argue and urge each other on. I even love that there are huge, known flaws with it (“do it with style” notoriously does not scale) because that reminds me this is a living document, that we have committed to its care and feeding and regular revisioning.
I even love that you may read it and think, “This place is not for me.” If a place is for everyone, it is not for anyone in particular. I am okay with being a particular place, for particular people at a particular time in our lives. Specificity elicits passion in a way that generic never can.
Nothing lasts forever. As we close this round of funding and the end of the beginning chapter of this company, it’s nice to take a breath, pause, and put a stamp on it.
Lately I’ve been doing some career counseling for people off Twitter (long story). The central drama for many people goes something like this:
“I’m a senior engineer, but I’m thinking about being a manager. I really like engineering, but I feel like I’m just solving the same problems over and over and it seems like the real problems are people problems. I have to be a manager to get promoted. I hope it isn’t terrible, once I make the switch. I hear it’s terrible.”
I’ve been meaning to write this post for a while. There’s a lot but let’s start with: Fuck the whole idea that only managers get career progression. And fuckkkk the idea you have to choose a “lane” and grow old there. I completely reject this kind of slotting.
“Your advice is bad and you should feel bad”:
The best frontline eng managers in the world are the ones that are never more than 2-3 years removed from hands-on work, full time down in the trenches. The best individual contributors are the ones who have done time in management.
And the best technical leaders in the world are often the ones who do both. Back and forth. Like a pendulum.
I’ve done this a few times myself now; start out as an early or first infra engineering hire, build the stack, then build the team, then manage the team, then … leave and start it all over again. I get antsy, I get restless. I start to feel like I know what I’m doing (… a telltale sign something’s wrong).
It’s a good cycle for people who like early stage companies, or have ADD. But I don’t see people talking about it as a career path. So I’m here to advocate for it, as an intentional and awesome way of life.
There are lots of people who do both well - but serially. Not simultaneously.
(h/t to @sarahmei who was tweetstorming this up at the EXACT SAME TIME as i was writing this. Yes Virginia, internet feminists ARE linked by a mystical hive brain.)
On being a manager (of technical projects)
Promoting managers from within means you get those razor sharp skills from the people who just built the thing. That gives them credibility, while they struggle with their newly achieved incompetence in a different role.
That’s one of the only ways you can achieve the temporary glory of a hybrid manager+tech lead. This is an unstable combination, because your engineering skills and context-sharpness are decaying the longer you do it.
You can only really improve at one of these things at a time: engineering or management. And if you’re a manager, your job is to get better at management. Don’t try to cling to your former glory.
Management is highly interruptive, and great engineering — where you’re learning things — requires blocking out interruptions. You can’t do these two opposite things at once. As a manager, it is your job to be available for your team, to be interrupted. It is your job to choose to hand off the challenging assignments, so that your engineers can get better at engineering.
5. Both code and people require the same thing to thrive: focused, sustained attention. No one does both well.
Conversely: the best tech leads in the world are always the ones who done time in management. This is not because they’re always the best programmers or debuggers; it’s because they know how to get shit done, which means they know how to communicate and manage other people.
A tech lead is a manager … but their first priority is achieving the task at hand, not grooming and minding the humans who work on it.
They still need the full manager toolset. They’ll need to know how to rally people and teams and motivate them, or how to triage and restart a stalled project that everybody dreads. They still need to connect the dots between business objectives and technical objectives, and break down big objectives into components. They need to be able to size up a junior engineer’s ability and craft a meaningful assignment, one that pushes their boundaries without crushing them … then do the same for another twenty contributors. This is management work, from the slightly shifted perspective of “Get Thing X Done” not “care for these people”.
So these tech leads usually spend more time in meetings than building things, and they will bitch about it but do it anyway, because writing code is not the best use of their time. Tech is the easy part, herding humans is the harder part.
Senior engineers who have both these toolsets are the kind of tech leads you can build an org around, or a company around. They get shit done. And they are rare.
Almost all of them have spent considerable time in management.
We don’t talk about this nearly enough: the immense breadth and strength that accrues to engineers who make a practice of going back and forth.
Being an IC is like reverse-engineering how a company works with very little information. A lot of things seem ridiculous, or pointless or inefficient from the perspective of a leaf node. .
Being a manager teaches you how the business works. It also teaches you how people work. You will learn to have uncomfortable conversations. You will learn how to still get good work out of people who are irritated, or resentful, or who hate your guts. You will learn how to resolve conflicts, dear god will you ever learn to resolve conflicts. (Actually you’ll learn to YEARN for conflicts because straightforward conflict is usually better than all the other options.) You’ll go home exhausted every day and unable to articulate anything you actually did. But you did stuff.
You’ll miss the dopamine hit of fixing something or solving something. You’ll miss it desperately.
One last thing about management. There’s a myth that makes it really hard for people to stop managing, even when it makes them and everyone around them miserable. And that’s the idea that management is a promotion.
Management is NOT a promotion.
1. Becoming a manager is not a promotion - it's a lateral move onto a parallel track. You're back at junior level in many key skills.
Seriously, fuck that so hard. It is SUCH an insidious myth, and it leads to so many people managing even though they hate managing and have no business managing, and also starves the senior eng pool of the great mentors and elder wizards we need.
Management is not a promotion, management is a change of profession.And you will be bad at it for a long time after you start doing it. If you don’t think you’re bad at it, you aren’t doing your job.
Managing because it feeds your ego is a terrific way to be sure that your engineers get to report to someone miserable and resentful, someone who should really be writing code
or finding something else that brings them joy.
There’s nothing worse than reporting to someone forced into managing. Please don’t be one of the reasons people burn out hard on tech.
It isn’t a promotion, so you don’t have any status to give up. Do it as long as it makes you happy, and the people around you happy. Then stop. Go back to building things. Wait til you get that itch again.