Around the time I was graduating from Utah State University I went on a massive job hunt. The aim of this massive job hunt was more to garner interviewing chops, as well as to experience as many different companies and their interview process as I could. During that time I got offers from a bunch of great companies and got to visit many different corporate campuses all over the United States.
The obvious front runner for every computer science major is Google. To many of us Google represents the pinnacle of computer science. They pay really well, they have a great company culture, they're illustrious, they've got great brand recognition for non-technical people, and the interview is well known as one of the most difficult. They also have the 20% rule (that doesn't actually exist), which peaked my interest above all else.
My thought was, I'll prepare for an interview with Google, and if I don't manage to land an interview or get an offer, hopefully those skills will be transferable to other interviews at other companies. As luck would have it, I did manage to interview at Google, and, as luck would have it, I also managed to not receive an offer. However, I did receive offers from every other company that I interviewed with.
One of the most intriguing processes I went through was at Amazon. In fact, I didn't even have an on-site interview. The interview process for college graduates at Amazon at the time involved an online pre-screen (nearly every other company also has this, including Google). After this, you're given a proctored online behavioral assessment, immediately followed by a coding assessment, which is also proctored. At the time, I thought this proctored assessment was taking the place of a phone screen and would ultimately lead to an on-site interview. I took it, and did relatively well. I knew I did well because before the interview process I searched for what the assessment generally involved and found there were a certain number of coding questions. I finished these and had time to spare, so I clicked complete, thinking "great, I'll get called for an on-site", instead yet another coding problem came up, this one more difficult that the previous ones. I couldn't quite get all of the tests to pass and eventually ran out of time. After a few weeks I got an email from an Amazon recruiter saying something along the lines of "we'd like to move forward" and nothing else. Again, I was thinking "great, I'll get an on-site at Amazon". A few more weeks pass, and I'm directly sent an offer letter via email.
Contrast this to how IBM handled the offer process. I did a similar online coding assessment, which I had to do in a language I wasn't terribly familiar with (the choices were Python and Java). I then had a phone screen which went extremely well. Rather than moving forward with an on-site or directly to an offer I was sent an invitation to some bizarre hiring event in Atlanta. Mind you, I was still a student at USU and the event was scheduled near to midterms or finals (I don't remember which). I was also trying to prepare for interviews at this time, so I was spending all of my time on weekends and after work/school working through algorithm questions. It felt like a waste of resources, especially considering after searching for what the hiring event entailed I found out that everyone would receive an offer from IBM regardless of how they performed at the event. For these reasons I tried to get out of going, but was told that if I didn't attend I wouldn't be given an offer.
The event was very odd to me. At one point during the event we were sent into a conference room and given some kind of propaganda type film (I will say, it was very well made) about how IBM has been around since the beginning of computing. I also received a text from "Watson" during my flight back, informing me that I'd be receiving my formal offer soon.
It all seemed a bit unnecessary and wasteful. One thing that really intrigued me about Amazon was there was no frills and no bullshit. I met their hiring bar, and they sent me an offer, the end.
Why I Turned Down an Interview with Google
Fast forward 8 months. I've been with Amazon as an SDE since graduating. During this time I've been contacted by all manner of recruiters, CEOs, start ups, block chain enthusiasts, and competing companies trying to marshal skilled developers behind their cause. Recently a Google recruiter has reached out to me about interviewing again at Google. I've elected to pass on the opportunity. Here's why.
The Hiring Bar
The hiring bar at these companies is a bit absurd if you ask me. I've often heard the argument for this absurdity is "it's the best indicator we have" or "how else will they assess candidates?" I don't have the solution to this problem, but I do know I'm not going to validate it as an engineer. I did previously in order to make up my mind for myself using actual experience and I know which side of the fence I sit.
There are a massive amount of things that go into being a good engineer, let alone being a good employee. I would say coding maybe makes up 40% of this, and I would say algorithmic skill accounts for maybe 5% of this 40%. I would also say that assessing for this 5% is largely random luck. Yet for some reason, this 5% of the 40% is what's most carefully assessed during the interview process.
My time is better spent on things like building businesses, teaching others, and investigating technology that I find interesting rather than preparing for irrelevant algorithm puzzles. Don't get me wrong, I'm glad I did it a year ago, but I don't want to do that now.
As I stated in the opening paragraph, the phrase "they have a good culture" is often heard in the tech industry when talking about Google. However, I feel that's a marketing ploy that's worked out quite nicely for Google (see the non-existent 20% rule that lured me in). With recent controversy like the James Damore lawsuit, or the $2.7 billion EU fine, to even just a few weeks ago this article written by a (now) ex-Google engineer.
What intrigued me the most about Amazon was there was no illusion. This is business and you are an employee that will be leveraged in creating new businesses for Amazon. For many this may be a bad thing, but for me, that's just fine. Google is no different.
Since my days as a musician I've never made decisions strictly for money. I took the job at Amazon because I wanted to see how a large scale tech company functions internally. I wanted to learn how to write large scale software using industry best practices. I wanted to grow as a leader, a coder and an engineer. If I'm going to leave my position at Amazon it's going to be for a position I feel passionate about, not more money. I'm not convinced that Google is going to give me that. Sure they'll say "pick any team you're interested in" (and that's assuming I'm some tech rock star, which I'm not) or whatever other lip service is given to new hires. But, one of the things I learned interviewing at so many different places is, you rarely get to pick anything and recruiters will tell you a lot of stuff in the initial phone call to get you excited about the company and the position.
My Current Position
I really like my current manager. This is her first role as a manager. This is my first role at a large tech company. I feel like her and I are learning the ropes together. Up to now she's doing a great job, and she herself has a very good manager who I can tell is mentoring her very well. Together they've created a culture of high quality work without sacrificing the work life balance of the engineers.
I also like my teammates. To put it bluntly, there aren't any assholes. Everyone is ready and willing to step in and help when a helping hand is necessary. For the most part no one is overly critical of one another and the senior engineers on the team are always happy to share wisdom.
I'm sure this same scenario could easily play out at Google as well, but, why put myself through months of mind numbing algorithm puzzles, and set my side projects on hold, for a chance to roll the dice on a new team at a new company for slightly more money?