It’s been a month or so since it wrapped out so I figured it’s about time to write a blog about it.
It all started a few weeks before Christmas with an email from an Amazon.com recruiter inquiring as to my availability to come to an interviewing session in Vancouver, BC (I live in Victoria so it would have been a short ferry ride). Being in the midst of a significant re-architecting push, I wasn’t able to make the trip but decided to have a phone conversation instead.
The initial phone screen interview went fairly well I thought. I learned a few apealing things about the organization, most notably their dedication to technology and emphasis on small cross-functional teams (the so called 2 pizza teams). Coming from a startup environment (I’m currently employed by a start-up and have seen it grow from 2 people to 45+ people) while remaining relatively flat.
The next stage in the process was a phone interview with the lead of the Item DB team. Wasn’t quite sure what to expect but a few google searches led me to brush up a bit on general data structures, etc. Sure enough, this interview (and a subsequent technical phone interview) spent a lot of time on general data structures (list vs. array, etc.). There were also a couple of design questions and a coding question or two at the end. The coding question actually threw me for a loop, not so much in the actual writing of the code but more in the trying to communicate what I had scribbled on a piece of paper over the phone. Needless to say, I thought it went alright but at that point my hopes weren’t that high.
A day or two later, I heard back from the recruiter who wanted to setup another interview with a member of the contribution profit team. Sure, I said, no harm in that. So I talked again for a couple hours with a developer about what I’d been doing, what he’s been doing, and the general direction of this team. He told me that he didn’t think I was interviewing for his team (but I learned later on that I actually was). The general theme of the interview covered a lot of data structures, a relatively straight forward design question and a coding question. Compared to the previous interview, I thought that this one went much better. I had an idea of what to expect, and given that I wasn’t actively looking for another opportunity, nothing to loose.
Again, a couple days later I heard back from the recruiter asking my availability to fly down to seattle for a half day of on-site interviews. After thinking it over, I decided to do it.
Amazon set it all up, I flew down the day before, stayed at the W Seattle (a pretty swank hotel in the downtown district) before flying out the following day. Amazon itself has 4 or 5 campuses in Seattle and I interviewed at their Bank of America building campus. If you don’t know Seattle, the Bank of America is the tallest building in the city (from what I could tell at least) and if you like baseball or football, it also provides a good view of Safeco and Seahawks stadium.
The on-site interviewing process was interesting and fairly intense. It was split into a number of sessions, with each session lasting no longer than 45 minutes. I started out meeting a couple of developers, then met a couple of hiring managers, team leads and senior developers, before ending the day with the third recruiter I’d had contact with.
Each interview was fairly similar and very technical in nature. I stayed in the same room the entire time and as they put it, my goal was to fill up the walls with code and design (the room had a table made out of 2×4′s and the walls were all writable). The day started out with some fairly simple algorithmic questions (pick a random line out of a file, count of # of pairs that add to a number in an array, etc) before getting into some design. The design questions were based on real world systems (movie rentals, restaurant reservation systems, etc.) but were relatable to problems that Amazonians face on a daily basis.
I thought the day went fairly well and I headed back to Victoria comtemplating my future. Amazon, keeping to their word, got back to me the following monday (interviewed on Friday) and offered me a position within their contribution profit/demand forecasting team.
The overall compensation offered was quite good and the challenge of the position also intriguing. Going into the process, I really wanted to work with smart people and solve technically interesting problems. I was confident that Amazon would be able to offer that, more so than my current employer (more because of the processes Amazon already has in place and the enterprise nature of the development they do).
After going back and forth with people from Amazon and my current senior management, I decided that it wasn’t in my best interest to make the move. It’s nice to be feel wanted, but the opportunity to work for a successful startup in a small city like Victoria doesn’t come along very often. I’m going to stick with it, continue to grow with the company and come some point in the future, sign up for the large company experience.
If anyone has any questions about interviewing with Amazon, feel free to get in touch. Everyone at the company came across as extremely competent and driven, they’ve obviously been successful in the past and I think it’s a great opportunity. It’s a professional organization that hasn’t forgotten its roots and is interesting enough fairly frugal. There’s an emphasis on the individual and small team successes which was a good fit with me.
That’s enough of a synopsis for one night.