Oh, the Places You’ll Go!
Some days in your tech career will be amazing… but a lot will not. And that’s alright.
On the day I graduated from college, one of my best friends gave me a copy of Oh, the Places You’ll Go! by Dr. Seuss. Not having grown up as a kid in the United States, I had actually managed to live 21 years without knowing who Dr. Seuss was. So, at first I was confused. Why was my friend giving me a cartoon with silly words and whimsical drawings? There was a lot going on that day, so I smiled politely and put the book back among the other graduation presents. It wasn’t until a couple of days later that I took the time to actually read it from cover to cover. This book is a masterpiece, and it’s the single best present to give anybody graduating from anything.
The book does a wonderful job capturing the I can do anything feeling. I still remember the butterflies I felt that morning, day-dreaming I was going to do something amazing in this world. I was graduating in 1997 with a degree in Computer Science and an offer from Microsoft. It was one of the best times in history to be graduating with a CS degree (fueled by the dotcom frenzy). And Microsoft in the nineties was the undisputed, ruthless top dog. Microsoft Research was a hotbed of intellectuals with unlimited budget and freedom to tackle hard computer science problems like natural language processing. The sky was the limit. Dr. Seuss had told me!
What nobody told me on my graduation day is: this fancy job waiting for you… yes some days you’ll do amazing things, but other days you’ll have to do suck it up and do mundane crap that will bore you to death. Even the engineers that put the man on the Moon had days where they too, did mindless things that just needed to get done so that the exciting stuff could happen. I figured I wanted to take a stab at setting expectations if you’re near graduation. Or, if you’ve been in the industry for just a few years, and you’re feeling disillusioned, that it’s not what you expected, hang in there: it’s normal, we all feel it, it gets better.
I live in Seattle. October and November are absolutely horrid, gray, wet months. I’ve been here 25 years and still never get used to it. You get a little break in December, because everything is prettier around Christmas, and there’s even an occasional sprinkle of snow that turns everything magical. January, February and March are once again miserable, dark and drizzly. By the end of March, I ask myself: Why the hell do I live here??? Then, the sun comes out, and there’s nothing more stunning than the Pacific Northwest in the summer. Glorious 75-degree days every day, the ocean sparkling blue, dotted with sailboats, the forests green and lush, the mountains all around you, the air fresh. We go hiking, we go sailing, we go swimming, we sip our latte on the beach looking across the water at the Olympics. I’m an avid world traveler and have backpacked through 65 countries in my life, but there is no place I would rather be on the entire planet than Seattle on a beautiful sunny day. And so I’m reminded: this is why I put up with the gray, crappy days, so that I can have days like these.
A career in the software industry can feel like that… There are days where you wonder, Why am I here? Why am I doing this?
We start our careers with unrealistic expectations that every day will be amazing. The folklore of computer science is littered with exciting, amazing stories with probably some truth and some embellishment. Bill Gates and Paul Allen flying to Albuquerque and writing the bootloader for the Altair on the plane. That 1980 meeting where a tiny little baby Microsoft conned a behemoth IBM into licensing DOS, a thing Bill Gates didn’t even own. That 1979 meeting where Steve Jobs stole the ideas of mouse, windows, icons from Xerox PARC, and then used them to build the first Macintosh. Jeff Bezos leaving a stable six-figure job to drive across the country and bet it all by selling books on the internet out of a garage in Seattle. A young Larry Page and Sergey Brin still at Stanford trying to sell their startup Google to Yahoo for one million dollars (and being turned down) in 1998 (Google is worth between one and two trillion dollars today). Oracle getting busted for having private investigators rummaging through the Microsoft dumpsters in Redmond, looking for dirt. And on, and on, and on.
I’ve been in the heart of the industry for 25 years (11 at Microsoft, then 11 at Amazon, I’m in year 3 at Google now). I’ve had my share of exciting moments in my career in 3 companies that shaped the entire world.
Watched first-hand Microsoft dominating in the nineties (story). We could do no wrong. We went to the top schools in the nation and got the top students, no matter the cost. Heck we got the professors too. Stock splitting every other year, Ferraris and Lamborghinis littering the parking lot, lavish parties. We were so arrogant. In a matter of two years I went from living below the poverty line to being worth over a million dollars of Microsoft stock and driving a brand new Porsche in my twenties (story). I stayed up all night to put on a demo for Bill Gates (story). I shipped many versions of Microsoft Office that were used by hundreds of millions of people all over the world. Those green and red squiggles you see when you have a spelling or grammar mistake? My babies. Identifying that a word is misspelled is trivial, but figuring out what words to suggest is actually an interesting computer science problem (hint: lots of heuristics you can apply to efficiently calculate edit distance between the misspelled word and potential suggestions). The grammar checker was a lot more interesting though, because there was a full fledged natural language parsing engine powering it, which, in 1997, was bleeding edge. Microsoft Research was full of computational linguists with PhDs from fancy universities. We took their research and productized it.
This provided my first lesson in reality though. Natural language processing is a resource hog, but with their unlimited budget, the folks from Microsoft Research could run their prototypes on effectively super computers. There were no latency requirements, so they could kick off their tests and go to sleep, and wake up the next morning and they would be finished. Then though, they would hand the algorithms to us, and we had to re-write them as production-worthy code that needed to run real-time on a Pentium-90 with just a few megabytes of memory, and not cannibalize resources too much from the rest of Microsoft Word (since we ran in the same process space). This was the same as being handed the blueprints for a Rolls Royce and having to build a Kia. It wasn’t as glamorous as I had imagined it when I joined the team, fresh out of college.
Also, progress was slow and frustrating. This is before Siri, before Alexa, before the Google Assistant. This is the infancy of natural language processing. We had all gravitated towards the Natural Languages Group because we were romanced by the prospect of computers interacting with humans in a natural, intelligent way. With its money and raw talent, Microsoft was probably the single best place in the world to make that happen in the nineties. We were young, idealistic, passionate, ambitious, and eager to make all of that happen, and our entire team worked 80-hour weeks for years, with a smile.
Having had exposure to Microsoft Research in the nineties is still to this day one of the highlights of my career. But at the same time it taught me that it takes a lot of time, and hard work, and sometimes very boring tasks, to turn a moonshot into a reality. Some days you’re tackling some cool computer science problem, but other days you’re just trying to reproduce, understand and fix a bug-from-hell, or reinstalling your operating system wanting to scratch your eyeballs out.
When you study Computer Science in college, your assignments are always an interesting problem that is neatly self contained so that it can be solved in N hours or days. Then you interview at FAANG and you get these cool problems involving dynamic programming, trees, graphs, or whatever else silly unrealistic thing your interviewer has chosen to determine if you’re FAANG material. But they too are neatly contained in something that can be done in 45 minutes. Very candidly: most days aren’t like that, even in a place like Microsoft, Amazon or Google. But some days are. And they are glorious and fill you with pride.
I left Microsoft in 2009 and spent the next 11 years at Amazon. While during my last few years at Microsoft I had seen an almighty giant software behemoth slide into oblivion and irrelevance during the Ballmer years, Amazon provided the opposite experience. When I joined, we were 3k engineers working mostly on the retail site, with a few tiny teams starting up AWS (story). I got to see first-hand the meteoric rise of Amazon, from a simple e-commerce site to a global software leader. The 3k engineers became 6k, then 20k, then 40k, then 60k. I embraced the break-neck pace and intensity around me, and my career grew exponentially. I was responsible for a multimillion dollar outage on amazon.com, then redeemed myself by preventing dozens of similarly-sized outages (story). I won an Amazon-wide award from Jeff Bezos and got to meet him on several occasions (story). I solved interesting computer science problems: I architected a thing to be able to run at hundreds of millions of transactions per second, distributed across thousands of machines, and boy was it exhilarating kicking off the command that controlled those thousands of machines and watching them dutifully doing what they were supposed to do (story). Amazon gave me a chance to learn about distributed systems at a scale that is unimaginable for most. Being the Principal Engineer leading Load and Performance Testing for the entire company exposed me to teams doing all kinds of interesting things… from Alexa, to Kindle, to AWS, to eCommerce.
And I traveled the world with Amazon. Sometimes it was to visit a remote office, sometimes it was for a recruiting event, sometimes for a conference. I think I clocked about a million miles on United on the Amazon dime. I got to experience things that as an immigrant kid from a third world country (story) I never dreamed I could do. And so I found myself swimming with penguins in Cape Town, doing an African safari in Johannesburg, camping in the desert in Jordan, exploring the bazaars of Dubai and Amman, riding camels and elephants in India, staying in a medieval castle in Ireland, climbing Mayan ruins in Mexico, dancing tango in Buenos Aires, having tapas in Madrid, eating an entire schweinshaxe in Berlin, getting lost in the narrow alleys of Beijing, face to face with the Xi’an warriors, in awe of the traffic and lights of Shinjuku in Tokyo, just to enumerate a few. Amazon gave me all this.
What you don’t see in the glamorous stories I just told you is all the other days. Days where I just had to do menial work that needed to get done. I did plenty of work I didn’t want to do, because somebody had to, because it was important for the business. Days I had to go fight for my ideals in front of a skeptical or sometimes downright hostile audience (here’s the worst one!). Days I had to fire people I cared deeply about. The day I almost got fired myself (story). The day I actually lost my job at Microsoft (story). Having bosses I despised (but hey I had plenty of good ones too!). Being passed over for promotion when I thought with every fiber of my being I deserved it. The disappointment of writing prototypes for ideas that didn’t pan out. Having to throw away code I had poured my heart and soul into was heart-breaking. The projects I worked on that got canceled (I spent my last two years at Microsoft working on a thing that didn’t even ship). Sitting on ideas that could save the company millions but couldn’t get funded. The embarrassment of having to tell my customers that the feature they desperately needed my product to have today was going to be implemented in 18 months because we had a painful backlog, while also having to drop everything I was working on to deal with a mandatory upgrade or migration that provided no value. Being told I wasn’t good enough. Having my leadership decide I needed to do work I didn’t believe was the right course of action (yet disagreeing and committing). Those days where the stock market took a wild swing and a good chunk of my net worth evaporated (which has happened with Microsoft, Amazon and Google at various points). Having to stay awake thru useless meetings where I was neither learning nor contributing to. I could keep going, but you get the point.
You will have those days too in your career. And that’s ok. Just remember for every overcast day there’ll be beautiful days too. May the sunny days outnumber your rainy days!