It’s hard to overstate just how influential Microsoft has been on my career. For sure I learned a ton inside the company, but more significantly I grew better outside the company thanks to the perspective I gained there. This is true in a million ways, but probably the most foundational is that it taught me that passionate software engineers self-select into one of two buckets — that the folks aware of their bucket are the happiest and most effective – and which one I belong to.
I say “passionate” not to judge (honest!), but to make clear that I’m talking about the folks that love this craft and pour their sweat and souls into it. There are plenty of solid developers who 100% see the job as a job, and that’s just a different way of living your life … no sweat. For me, the “why” of going to work every day has always been essential, and I find that the folks I resonate with tend to feel the same way.
So which kind of engineer are you —a DEEP NERD or a DO GOODER?
Deep Nerds (DNs) just love technology and technology problems, full stop. They love diving deep into complex algorithms. They usually dig arbitrary logic puzzles and can intuit matrix operations in their head. Satisfaction comes from seeing the machine work and learning how they can poke and prod it to change and optimize outcomes. In the extreme they could work for anyone from the Sea Shepherds to the Koch Brothers and be fine. But all the really scale problems happen at businesses like Google, Facebook and Amazon. That’s where their action is.
Do Gooders (DGs) love these things too, but technology alone isn’t enough. These folks need a much more direct connection with the purpose of what they build. They gravitate towards specific domains like health, government, and energy, but can be found anywhere that they connect with the mission — this isn’t just a hippie thing. They crave connection with end users and get pumped up when their software has an immediate impact on somebody’s real life. There are startups for everyone, but DGs are more typically “startup people” because they love the cross-functional requirements that comes with a small team. For all that I love the nerdcore life, this is squarely where I find myself.
Now of course this is an awfully binary way of thinking about something that really isn’t … but it’s a useful construct, so bear with me.
Knowing if you’re a DN or a DG can help you figure out what kind of job you’ll love — that seems obvious enough. But there’s also a subtlety here that is worth some focus. Many of the most rewarding DG jobs are not at software-first companies. They are surely enabled by software, but the base value is rooted in science or service or something else. These can be wonderful places to build a career — ultimately it is where I’ve ended up — but making the leap from pure tech comes with some real change.
In a nutshell, you are not the tip of the spear. At least back in my day, Microsoft was 100% about developers. If your hardware died, somebody showed up to fix it immediately. You had the best tools, basically unlimited budgets, and a heck of a lot of leeway to be an assh*le if that was your thing and you were good. Everybody else at the company was support staff for engineers, and everybody understood that.
This is not the same outside the technology bubble, where software is called “information technology” and is viewed mostly through a lens of laptop support and vendor management. Especially for a person that started their career as the favorite child, this can present a non-trivial punch to the ego. It’s actually one of the primary reasons DGs leave otherwise solid companies — kind of funny because in truth literally everything any company does today absolutely depends on software — it’s just not burned into everyday consciousness the way it is at a software-first company. A few things really need to be true if you want to be successful:
- You are not overly-concerned about external validation. Think hard about this! Everybody wants to believe they self-assess, but we are hard-wired to want approval. You are probably not getting called out in the press or at all-hands celebrations. You have to be personally confident in your contribution — honestly a little bit of arrogance here isn’t a terrible thing, at least as compared to the alternative.
- You are OK pushing hard for decisions you believe in. You probably will spend a lot of time explaining to finance why your budget is so high. For sure you will have to argue with cross-functional leaders who are convinced that they need to buy whatever technology their favorite salesperson just told them about over a paid lunch. This latter is a core sales technique called “selling around IT” and you can’t stop the conversations. You just need to be strong enough to say no.
- As a leader, you can be the primary cheerleader for your team. They need validation too, and it’s not likely to come from people who don’t understand their jobs. You need to be able to explain why their work directly impacts company products and successes. You need to believe this, and express it with stories and details — not generalized rah-rah team pablum.
- You get excited about solving engineering problems even when they don’t involve the shiniest new technologies. Trust me, figuring out how to accurately track blood samples from FedEx through cold storage to a sequencing machine is a real, serious problem that needs real, serious software — you need to give every challenge the brain cycles it deserves.
We need great DGs to solve problems across the world and across domains. It’s incredibly important and insanely fun. But it isn’t easy to leave your comfort zone — and it’s not the right path for everybody. We need all the DNs out there too, working at stupid-large scale and forcing innovations that will become mainstream ten years from now. I am so lucky to have fallen into a career where I could experience both of these. I’m always happy to talk to folks trying to work it all out for themselves too. How can I help?