[I had to wait a few days to post this and the next entry until receiving an official offer from a company. Sometimes best not to show all the cards in your hand. Ah.. the life of a blogger.]
Apologies to my readers for the lack of recent updates. It's currently 5:55am at the Fairfield Inn of beautiful Bellevue, Washington, just minutes away from the Microsoft campus where I spent all day yesterday interviewing.
The last few days have been incredibly intense, with back to back interviews with some of the most competitive companies. I have so much to write that I don't know where to begin. So, I've decided to start at the beginning of my journey as a soon-to-be college graduate looking for a job. Here goes!
University Recruiting - Do or Don't?
University Recruiting is the practice by which various companies make visits to many universities (in my case The University of Michigan) in order to recruit for internships and full-time positions. At U of M, candidates review online lists of positions at companies coming to recruit for which they meet certain eligibility requirements (major, min. gpa, class standing, etc). Candidates submit resumes online to these companies whose recruiters then select out those candidates they wish to interview. It's a very impersonal process, mediated by the University as a 3rd party. Sometimes, candidates aren't even contacted by the companies before their first interview. This is a horrible practice. Most companies begin courting the applicant at the moment he/she has been chosen for an interview. Those that don't, need to take a clue from the rest!
So this past fall, I was very weary of University recruiting. For starters, I'd been through the process while searching for an internship with many of the same companies during the previous semester, and it went horribly. I was selected by about half a dozen companies for internship interviews, and wasn't made a single offer. Even worse, none of the companies that selected me peaked my interest. Who wants to spend the summer in middle of nowhere Ohio as an IT intern for General Electric Aircraft Engines? Well, some people do. I didn't, and shouldn't have submitted my resume in the first place. (Sidenote: I ended up spending the summer bartending and doing some technology consulting on the side. It was a blast.)
Two lessons learned:
1) Unless you're in immediate, dire need of the money, especially for full-time positions, don't submit your resume to companies that definitely don't interest you. Even if it means ending up without getting a job through the university recruiting channels. There are other ways.
2) The search for a full-time job is very different than the search for a summer internship with the same company. The process is longer and more intense, but companies are more flexible and hire more candidates.
This semester, I figured I had nothing to lose, and decided to submit my resume again to various companies -- this time for full-time positions. However, being a busy, stressed-out Computer Science student with 18 credits on my plate, I decided to limit my submissions to companies that truly interested me. They were: Cisco, HP, IBM, Amazon.com, Lockheed Martin, Accenture, Microsoft, Google, and Deloitte.
At this point, my interest had been peaked by several of the above companies. A friend of mine who interned at Microsoft the previous summer was convinced it was the perfect place for me. I wasn't so sure, but gave him the benefit of the doubt and began to read up on the various positions at the company. Program Manager was a fit. I also went to a Microsoft presentation at the University by a guy named Marcus Ash in a mobile devices division. It was awesome. He brought unreleased smartphone toys. My interest was peaked. And this was just the beginning...
Google also gave a few presentations and sent out a few engineers. Their presentations were equally awesome, and I was equally as wood at the time -- if not more (I mean.. who can beat a recruiting event where the company brings their best engineers to talk about the inner workings of the Google search engine!)
Deloitte I met at a recruiting fair at the University. I'm actually generally pretty weary of these events, and generally try to steer clear. Companies generally use them as yet another way to collect as many resumes as possible for later data mining, and rarely as a way to connect with individual candidates. The guys at Deloitte really did peak my interest with a specific security services consultant position they were trying to fill. Microsoft also took notes on my resume about my specific coursework and interests. Accenture was incredibly boring, put my resume on a stack, and gave me a piece of paper telling me to submit another one on their web site. The latter response is typical of most companies at the recruiting fair, in my experience.
Getting My Foot in the Door
So the fun began.. and interview requests started to roll in from many of the companies -- Cisco, Amazon.com, Lockheed Martin, and Deloitte.
At this point, I took a step back, and began to really evaluate the companies I'd submitted my resume to. I knew that several companies I was interested in, namely Microsoft and Google, had started to interview on campus, and that I hadn't received anything from them. HP, IBM, and Accenture I didn't care so much about.. (though I'm sure they're both great companies to work for!)
So I took action. First, my friend Ayush offered to put a good word in for me with the Microsoft regional recruiter. I can't stress how important a reference like this is. If you don't hear from a company you're interested in, seek out someone who knows both you and the company well early in the game. Companies have thousands of college candidates applying for jobs. If an employee or friend of the company can lend creed to your abilities, let them do so! It's not gonna get you the job, but it will often at least get you an interview! It got me one!
Unfortunately, I didn't know anyone who had worked at Google. So, I tried another method. I got to know the engineers they sent out to the University. This wasn't exactly a daunting task. They were all cool people. I spent quite awhile with Lilly, a UI engineer, who came to speak to us on what it's like to work at Google. We totally clicked, and she in-turn introduced me to Jessica, a friend of hers in PM, the area in which I was interested! Lilly later submitted my resume internally with some positive feedback about me. Unfortunately, I never heard back from Google. I have a feeling that Google, like most companies, isn't generally in the practice of hiring PMs straight out of college. They came to U of M to recruit developers this year, and I haven't met any U of M graduates who went to work for Google as a PM, but who knows.. maybe I just didn't have what they were looking for on my resume. Either way, Lilly, Jessica, and the Google team were all awesome. I hope we continue to be friends!
One more quick note here.. going to a company presentation will not get you an interview. Maybe connecting with the presenter will lead to something.. connecting with the recruiter usually will not. It's become obvious to me that companies use these presentations to draw out talented individuals and collect their resumes for the selection process (Microsoft and Google have you put your contact info on forms they use in drawings to give out cool prizes! Count me in!). Some companies (like Google) pass on resumes directly to Engineers who select which candidates they would like interviewed. Throughout this process, there were some companies whose presentations I attended that I never heard from again, and there were some companies whose presentations I didn't attend that went to great lengths to recruit me. It was sad watching companies I wasn't interested in try to recruit me while friends that were extremely interested couldn't even get an interview. I've been in their shoes, they've been in mine. Different companies are looking for different things. The process works well despite this irony.
Cisco, Amazon.com, Lockheed Martin, Microsoft, Deloitte
And so the list was narrowed to 5 great companies. Each peaked my interest for different reasons, and I'll blog on my experiences with each, in the order in which they occurred...
Deloitte was the first company I interviewed with. The position was a security services consultant within their Enterprise Risk Services division. Security is one of my favorite areas of technology, and consulting is one of my favorite professional roles. I was psyched. With all these interviews coming up, I decided I needed a new suit. The one I had was about 5 years old.. my dad bought it for me for my sister's Bat Mitzvah. Deloitte is business-professional, and the bulky black dinner-party suit just wasn't gonna cut it. Besides, everyone needs a good suit, right? So I went to Nordstrom on Mom & Dad, and dropped a little over a thousand bucks on a suit, some shirts, a pair of shoes, etc. They've been investing in my future through college tuition for 4 years now, so what's an extra thousand bucks, right? (Okay.. I'm a very lucky guy with very supportive parents). But alas, I digress. Deloitte held its interviews at the Marriott Courtyard off-campus. I thought this was rather strange, since there are plenty of places to interview on campus, but went along with it anyway.. When I got to the Courtyard, I was directed to a room full of consultants in suits. They'd been brought in from various Deloitte offices, and I was told to schmooze with them until it was time for my interview. No problem. They were all very nice people. A few minutes later, a few slick lookin' consultants came down and invited me back up to their rooms for interviews. It was strange interviewing in hotel rooms.. but I guess it makes sense, since that's where you're gonna spend 80% of your time living as a consultant. Anyhow.. I had 2 interviews, both were behavioral interviews. Answered lots of questions about my professional experience, what would I do in so-and-so situation, when have I overcome a challenge working with a team, etc. The guys were both very bright. And just about every time I met a Deloitte representative he/she was able to quickly sell me on the company. I walked away wanting the job, and they walked away wanting me. Good times.
Microsoft was next, several weeks later. The single interview lasted about 45 minutes. As I had expected, the interview consisted of one coding and one design question. The coding question was to write a function to determine if two strings are anagrams. The key here was quickly coming up with an O(n) algorithm and not getting sucked into the potentially more-intuitive O(n^2) answer. No problem. The design question was something along the lines of, "As a Program Manager, How would you build a new alarm clock product for Microsoft?". Sounds easy, right? When a Microsoft interviewer asks a design question, he's looking for very specific elements in the answer. Having read much about such questions and what Microsoft is looking for in Program Managers, answering it was a breeze.
It's worth adding some information about the Microsoft 1st round interview process at this point. Before I got to this point, I actually had a great phone conversation with a family friend who works at the company about both the position I was interested in and the interview process in general. He described the first round of campus interviews at Microsoft as something along the lines of "separating the fat from the meat". I'd have to imagine that Microsoft gives thousands of 1st round campus interviews every semester. It's a lot easier for them to identify in 1 interview a candidate that absolutely does not have some qualities they're looking for than to identify which candidates are better than others -- especially since they have the capacity to hire as many qualified candidates as they can find. So to pass the first round of interviews at Microsoft, you need to demonstrate whatever it is they're looking for in 1 45 minute interview. Do not go into a Microsoft interview without first reading How Would You Move Mount Fuji?, a great book all about the Microsoft interview process and puzzle, design, and trick questions in general. If you just don't have what it takes, this book won't help you beyond the 1st interview. But if you do have what it takes, this book will help you express it and understand the motives behind asking each question. If you're applying for a PM position, I'd strongly suggest also reading The Mythical Man-Month, a book all about the process of software engineering. It will save your ass -- potentially in the interview process, and certainly in the real-world. Also remember that the odds are stacked against you as an interviewee. It's a *lot* worse for the company to mistakenly hire someone who isn't qualified than to pass on someone that is. So don't get caught up in the latter situation. Read up, talk to Microsoft employees, find out exactly what they're looking for -- especially in that first round of interviews. P.S. I wore my suit again. Microsoft suggests wearing whatever makes you comfortable. I figured I could handle 45 minutes in a suit. Everyone else tends to wear ‘em to University interviews, and I figure it shows I’m willing to go the extra mile. It probably didn’t matter.
Amazon.com was my third interview. Amazon.com’s process is drastically different than Microsoft’s or Deloitte’s. Amazon.com is in the process of doing a nationwide tour to handpick the best of the best in object oriented programming. I didn’t really want to be a developer (though coding is a hobby), but I figured I’d go anyway, attempt to knock their socks off, then ask about positions in other areas like program management. After all, it is one of the most innovative software companies out there… The interview was killer. There were a bunch of in-depth questions about C++ and object oriented programming. “When can’t you inline a function?”, “How could you prevent a class object from being copied?”, etc. The coding question was a bit more difficult as well. “Reverse the order of the words in a string.” I definitely took an ego bruising, and walked out of the interview quite humbled. My ego recovered when they later asked for another round.
Cisco was my fourth interview. I have a bunch of friends that work for Cisco in San Jose. It’s a great company, and networking, their core technology, is another interest of mine. I’ve read a few Cisco Press books for fun, and have a Cisco certification. Before the interview, I attended a Cisco presentation at the University. This was a DISASTER! We were told that the regional recruiter decided to attend an event at the Business School instead, and had asked 2 engineers from the local Ann Arbor Cisco office to do the presentation instead. The engineers sat in front of the room with their heads lowered reading a 20-page script all about why Cisco is a great company. The script accompanied a Powerpoint presentation that looked like it was put together by the company’s Marketing division for a target audience of investors and partners. At one point, the script read something like “Every Cisco employee caries a badge with him at all times on which is printed all of the core values of our company”. The engineer looked up, rolled his eyes, and commented something like “Must’ve left mine at home”. After the presentation, I was still left with a little bit of interest in the company – specifically areas related to client consulting, sales engineering, etc. I sent off an email to the regional recruiter to ask about positions within these areas. She wrote back that they were only hiring software developers. So, I proceeded to interview for the position. The interview was completely behavioral in nature – no technical questions. It went very well. The interviewer was a program manager, and we really seemed to hit it off. He said at that point that they were actually looking to hire for 3 departments – software engineering, quality assurance, and TAC (the support group). TAC seemed like the best fit, and I expressed interest. A few days after the interview, I received an email from the regional recruiter saying that they had found candidates better qualified for the available positions. This led me to believe that either 1) they weren’t hiring for TAC or 2) the areas I was truly interested in just didn’t overlap enough with TAC or any other areas for which they were hiring. Ah well, gave it a shot! It just wasn’t meant to be.
Lockheed Martin was the last company I completed first round interviews with. The position was again one in development. Lockheed does a lot of work with information organization, databases, and data mining – all very interesting areas to me. The interview was again completely behavioral. The interviewer was middle management. He’d been with the company for several decades. Lockheed seems very corporatey. I get the feeling they move at a snail’s pace, and their processes lag behind industry standards by about 5-10 years. The interviewer actually told me about a recent contact they’d lost to a smaller competitor. I got the feeling that Lockheed was the Goliath of military/gov’t contractors, and moves/adjusts accordingly (i.e. slowly). That said, I also got the impression that there are many diverse groups within the company. I imagine each of them operates differently, and many must be innovative. If there was one thing that upset me about the Lockheed interview process it was that in talking to Lockheed, I was not interviewing for an open position (or a set of open positions). I was told that my information would be put in their recruiting database, and if any regional recruiters were interested, I’d be contacted. Well, that was rather unfortunate. Shouldn’t the interview process of an excellent candidate (in general, not talking about myself specifically here) end with a job offer? They had my resume before asking for an interview. They could’ve gaged their regional recruiters’ interests then! Anyhow, I walked out somewhat upset. If every company adopted this practice, it’d mean for a ton of pointless interviews for candidates when there may not even be a job available. That said, I was lucky and got contacted by a regional recruiter in DC several days later. We scheduled another round of interviews at their regional recruiting center in DC.
Final thoughts about 1st round interviews:
They’re a great chance for the company and the candidate to learn more about each other after each has decided that the other meets the requirements on paper. They’re the start of a new relationship between company and recruit. Most of the companies with which my first interviews went well began to bend over backwards to woo me over and accommodate my needs. This process continues until you’re disqualified (at which point you’re kicked to the curb like yesterday’s news) or given an offer to join the team.
As I continue to blog while looking out onto the foggy concourse at the airport in Seattle, my thoughts on the first round companies are as follows:
Cisco – Great company, no chemistry. We were looking for different things in each other.. it just wasn’t meant to be.
Amazon.com – Great company, didn’t put what I wanted on the table. 2nd round interviews were even more challenging than 1st round – challenging, but fun. One design/coding question asked me to design a class to operate a restaurant reservation system. Another coding question asked to code a function to remove each occurrence of each character in one string from another string (if s1=”sr” and s2=”stars”, result=”ta”). It was somewhat challenging, but certainly possible, to come up with an O(n) algorithm that was space efficient (all replacement done in-place). The final coding question was to write an algorithm to determine the speeds of cars traversing speedcheck cables lying across a road. This was actually a very challenging problem, and took me quite a bit longer to solve (it was more complex as posed than v=x/t where x is the distance between axles – need to account for cars on both sides of the road!). I later posed the problem to a General Manager at Microsoft with whom I interviewed. He he he. He actually told me that Bill Gates’s first product was the software that goes into the boxes that sit next to the speedcheck cables! I’m not sure if it’s true – factcheck anyone? In any event, I’m not sure whether or not I’ll make it to 3rd round interviews for the programming position, but not exceptionally interested in it at this point either. Amazon.com is looking for a very specific kind of programmer looking for a very specific kind of job. I’m not sure that’s me.
Lockheed Martin – Probably not the best place for me, but at this point, I’m certainly biased having just experienced Microsoft. If I hadn’t ventured out to Seattle, I would’ve given them the benefit of the doubt and made my way out to DC. Canceling the trip will be unfortunate. I feel bad.
Deloitte – I actually completed 1st and 2nd round interviews with Deloitte. The 2nd (and final) round of interviews was great. Got the chance to meet with many people including a partner and founder of the Security Services practice. Deloitte is a consultant’s heaven, and I consulting is something I enjoy and appreciate. Deloitte made me an offer, and it’s one I’m still considering. The downsides are that the work is not the most innovative. Consultants apply existing technology to solve challenges that businesses face. They don’t create new technology that doesn’t yet exist. Additionally, the position is with the Detroit office, and most of my family is far far away in California. Most of my college friends in Michigan will eventually move away. Finally, the offer wasn’t that great. I assume they chose a low number expecting me to negotiate it up (this is a consulting position, after all). But their low number was well below the average salary of the graduating computer science major. Even average would’ve been a hard sell. So, I’m sitting on the offer for now and giving other options the opportunity to play themselves out.
And then there’s Microsoft… ah Microsoft.. another story in and of itself.