Saw on in my feed stream today a post by an ex-Plaxo, Adam Lasnik. He’s now at Google and posted up a few tips about interviewing there, prompted by another Googler (I think his name is Mike Knell according to his Flickr account?) who posted up some thoughts as well.

I used to get e-mail by a ton of people looking for Google interviewing tips; I still get a few requests now and then. I probably should’ve just posted my answers a long time ago and linked people to it, but oh well. Their recommendations are all good ones, maybe I can just link over there in the future.

Hope this doesn’t get them fired 😉

Here’s what I can remember from my interview process. I went through two interview loops: one for a software engineer position and one for the product managment position I eventually accepted.

For the software engineering position, they asked me mostly technical and coding questions. The coding questions were of equal difficulty with any other top-tier tech company (Microsoft, Amazon, Yahoo, etc.). They were mostly dealing with manipulating data in data structures; the one I remember was: given a binary tree structure, write an algorithm that returns all the items at a given depth from the root in order from left to right.

I was also asked some really random questions: what’s the seek time on your computer’s hard drive? what’s the access time on a stick of DRAM? Not sure why they asked these questions… maybe to test my geekiness? Fortunately, I’ve built my own computers for years, so it was no problem, but I know plenty of awesome software engineers that don’t know info like that.

For the product management position, I interviewed with about four 1st year APMs, one experienced full PM, and a technical manager (David Jeske, formerly of eGroups/Yahoo! groups). The 1st year APMs were fresh out of college, pretty much all from Stanford or MIT, and were very smart, although not very well versed in how to actually ship software in the real world. They were mostly technical or semi-technical (CS or CS related degrees like HCI or symbolic systems) and they all asked me the same questions: “Name a product you like. Why do you like it? What would you improve about it?” Interesting the first time, not so much for the subsequent 3 interviews 😉

The experienced PM had worked at other companies before Google and asked me more about shipping software, driving teams, and designing products. A solid interview.

My interview with David was pretty fun. He had me create a simple DB table, write a SQL statement and then we talked about optimizing it a little bit (add indicies and etc.). Not sure if they told him that I went through another interview loop already with pretty heavy coding questions or maybe he took it easy on me since I was interviewing for Product Management.

Overall, the interview process took a few months. I did 2-3 phone screens for each interview loop and did a day of interviews (5-6) for each. In my opinion, the interviews were pretty easy, but I guess interviewing to get into Google wasn’t the hard part for me, more like, staying there 😀

I saw over on Dennis’ blog that he linked to an entry Steven Sinofsky wrote on his “Microsoft TechTalk” blog about the PM role at Microsoft. I was reading through it and most of it sounded pretty much inline with my experience until I got to this little bit:

As an aside a lot has been said lately about “agile development”. A key benefit of program management is that we are far more agile because we have program management. That can be counter-intuitive (even for many developers at Microsoft who might be waiting for their PM to iron out the spec). But the idea that you can just start writing code without having a clear view of the details and specification is a recipe for a poorly architected features. A great PM knows when the details are thought through enough to begin and a great developer knows when they can start coding even without the details for sure.

I kind of agree and kind of disagree with this. I agree because obviously, you can’t start coding without any idea of what you’re building. I disagree because it appears that Steven doesn’t know exactly what agile development is… there are many different methodologies for “agile development” and as far as I know, none of them involve coding without any specing whatsoever…

Then later in his post, he writes:

Many companies will “sell” you on being able to do many of these different things from one job. This is just not a reality that exists and I always feel a bit bad for folks who believe this. There are two times I hear this a bunch. First is at startups you hear “come join us from college and you can own all of this”. Of course at a startup the real experience is that you are the college hire, which means you will do the grunt work while the founders and the venture people do all the strategic work–so you might find yourself setting up the build machines rather than interacting with customers. Second, I hear this a lot when companies are selling against Microsoft and point out that “at our company we do not specialize and everyone does everything”. This is another “well in reality…” situation, since of course even when I have seen companies that claim to do the specifications or customer research and up front planning they do that work from Product Management, and those people are just as specialized, they just report to the marketing team. And we know what that means, which is when push comes to shove the marketing team will need to use every hand to get out there and generate the business and sell–so even if there is a single group that does the work, those roles are specialized, and rarely dedicated specifically to the role.

Wow… I’m going to have to totally disagree here. I see Steven has qualified the statement as being based “[his] experiences and of course your specific situation might be different” but it still seems to me like it’s not exactly in touch with reality.

For example, at Plaxo it doesn’t matter if you’re a fresh college grad or you’re a 20 year industry veteran. The plain truth is: we can’t afford to hire super specialized employees. Each person at Plaxo needs to be a valuable contributor and extremely flexible – there’s just too much to do and not enough people to do it. In addition to that, we also can’t afford to hire people who aren’t going to contribute to our critical projects. We only have 35 people; that means everyone has to do substantial work on the products we’re shipping to millions of customers. We can’t put a college hire on “grunt work”, we need him/her to design features, implement them, and get them shipped to our customers.

Now I’m not saying that the college hire won’t need to do any “grunt work”. What I’m saying is, everyone does “grunt work” when it’s necessary to get the job done.

The same thing repeats itself over and over at the other startups I visit and talk to. Steven, I’d encourage you to come down to the bay area and visit some startups sometime; I think you’ll see a drastically different picture than the one you’ve illustrated.

The funny thing is, I’ve seen Steven’s “college hire” description more at Microsoft than any startup I’ve visited. In my experience (and of course your specific situation might be different 😉 ), I’ve seen many college hires at Microsoft put into positions where they are taking care of build scripts, fixing bugs in code they didn’t write, and setting up test machines – basically doing the “grunt work”.

I know I’ve picked two very specific excerpts from Steven’s post to tear into, but the rest of it is actually really good. He does a great job detailing the Microsoft PM/Dev/Test model. From my own personal experience, I think Microsoft’s PM program is great and I know I learned a ton from working there. Getting a job at Microsoft is definitely far from the worst way to launch a career 🙂

However, for all you potential college hires out there, you gotta ask yourself: what are you working towards? If you’re looking for a long and steady 20 year career where you can slowly move up the corporate ladder and make a comfortable living, then you’ve got Redmond, WA written all over you. But if you’re looking for a career where you can make some big bets and with some luck come out orders of magnitude ahead, then my opinion is that Microsoft isn’t such a great place to invest your time right out of college… if you want to know what working at Microsoft is really like, check out Mini-MSFT’s blog and the comments people leave there. I guarantee you that’s the real deal.

UPDATE: I’ve talked to a few people about my last statement in the post referring to Mini-MSFT and I can see how people might take exception to it because it makes it sound like I’m saying the stuff in Mini-MSFT is exactly what happens at Microsoft. I should’ve also said that in addition to stuff like Mini-MSFT, I’d encourage people to read other blogs (like Dare’s, Dennis’s, and Adam’s) to get a comprehensive view of what working at Microsoft is really like.

The discussion of what you’d consider impact is murky as well. There’s probably an element of buyer’s bias where we each think that we’re delivering a lot of impact in our own different ways. Comparing the amount of impact is probably a fruitless endeavor, at the end of the day we’d just be comparing apples to oranges. The one thing we do seem to agree on is that there’s no clear definition of “impact” 🙂

At the end of the day, if you’re considering working at Microsoft, I would suggest you read up on a few different blogs about working at Microsoft (including both Steven’s blog and Mini-MSFT). As Dare and Adam said, the truth probably lies somewhere in the middle and even within Microsoft, the situation varies.

A fun night in Cambridge

November 8, 2005

We had a good turnout last night here in Cambridge and it turned out to be quite a fun evening.

Turns out the hotel didn’t have a projector so I had no powerpoint to hide behind… Oh well, at least my slide deck served me well as a good set of notes to speak from. I’ve posted it up and it’s available for download.

We had a good sized group of probably 20 people show up for food, my talk, and a lively discussion afterwards. I hope the attendees had as much fun as I did. Here’s what the place looked like before and after, we definitely did a number on the room :-O

Cambridge.11.8.2005 020 Cambridge.11.8.2005 028

Cambridge.11.8.2005 007The Kendall Hotel was actually quite nice; it’s a small boutique hotel right on the MIT campus and the service was excellent. They’ve decorated the hotel with a unique flavor and each room is unique – different furniture, decorations, and color schemes. My room had a cool window with a semi-view of some buildings.

Right now I’m at the MIT career center and I’m connected to the campus wireless network. It’s really fast. Ahh… the joys of college 😀

Just a reminder for students at Harvard and MIT and anyone in the Boston area looking for a job (or just anyone who’s bored), Stuart and I will be in town running a talk and dinner tonight 7PM at The Kendall Hotel (350 Main Street Cambridge, MA 02142). See you guys there!

Plus, check out this cool t-shirt we’re giving to attendees! Dang! We’ve got food… t-shirts… Lucky!!! You ever take if off any sweet jumps? See you there 😀

Plaxo T-Shirt

General interviewing tips

October 31, 2005

As promised from my previous post and to get started on the new interviewing category, here are some general tips I’ve collected over the years while interviewing or conducting interviews at a broad cut of companies for a variety of positions.

  • Do your research – know the company, position, interviewers, industry. Research on the internet to see if anyone else has any info about the target company’s interview process.
    • Company: Recognize where the company fits into the competitive landscape. Figure out where the company is going and how you fit into the big picture. Read the latest news about the company and be prepared with your perspective on it.
    • Position: Read the job description. Read it again. Pick out the actual “meaty” skills required. Most of the time, a job description will be pretty long with a lot of fluff requirements (candidate must be a good communicator – duh; candidate must be familiar with MS Office – erm, my teenage sister is proficient). Know which ones are actually important and play to those (i.e. specific technical skills like client/server programming, familiarity with OS kernels, or web scripting).
    • Interviewers: If you can get a list of interviewers you’ll be meeting with, Google all of them. Peruse the company’s executive team profiles. Realize that oftentimes, only the first half of your interview schedule will be told to you. The heavy hitters are saved for the end of the day if you make it that far – usually these will be more senior people, ones you might be able to look up if you’re lucky.
    • Industry: If an interview candidate comes into an interview and says they are totally plugged into Web 2.0 but hasn’t heard of Flickr, del.icio.us, blogging, or anything beyond Google/Yahoo/MSN’s offerings, that’s an immediate red flag.
  • Tell the interviewer what he/she wants to hear. Interviewing is an interactive sport. Listen to what the interviewer says throughout the interview to clue you in on what they are looking for.
    • If possible, use the “ice breaker” chit chat to get clues on what the interviewer is looking for. Try to ask the interviewer at the very beginning why they like working at the company. Have the interviewer tell you a short version of their career story.
    • During the interview, continuously listen to what the interviewer says in the dialogue and integrate that into your subsequent answers.
    • Pay attention to body language when you give your answers. While you’re talking, interviewers will often signal what they think is correct or wrong.
  • Assess yourself beforehand. Know your strengths and don’t be afraid to play them up. Know your weaknesses and have a game plan for illustrating them in a positive/natural light. Don’t be afraid to mention your weaknesses if they come up; oftentimes, they are obvious. Everyone has them so hiding them will only raise suspicion. Talking about them in a candid and positive manner shows the interviewer that you are aware of your weaknesses and you’re working on them.
  • Guide the interview to what you want to talk about. This goes with the previous point; if you have a strength that you want to highlight, answer your interviewer’s question(s) by leading into a story that plays to that strength. You can lead into any story you want from almost any interview question. The trick here is to control the interview without the interviewer noticing.
  • Remember that you are qualified for the job (if you aren’t, then why are you wasting everyone’s time?). Since you know you are good for the job, the interview is actually about you figuring out if you want to work for the company.
  • Mirror the interviewer. Pick up on the atmosphere the interviewer is trying to setup and follow suit. If the interviewer is laid back, be laid back. If the interviewer is grilling you, don’t be afraid to get aggressive. Also, studies have shown that if you mirror a person’s gestures, sitting position, etc., they will unconsciously connect to you better.
  • Practice, practice, practice! Putting the above tips into practice is not trivial. Sign up for as many interviews as you can or have your friends/colleagues run mock interviews with you. As you get more experience, continuously refine your technique.

For each of these tips, be aware that an experienced interviewer might notice it and, depending on the person and the tactic used, may react to it positively or negatively. When I interview people, I consciously look for hints that a candidate is trying to game me with the above tactics. I’ll try to filter it out to figure out if the candidate has the raw skills I’m looking for and factor the use of the tactics into my hire/no-hire analysis.

Of course, in addition to the list above, the standard tips apply too. Be yourself, be passionate, be on time, and dress appropriately (this may mean suit, this may mean t-shirt and jeans; ask the person setting up the interview what’s appropriate). I have to assume that everyone already knows those 

Feel free to leave a comment if you have other tips I missed or any feedback about these. Of course, I’m also available by e-mail.

The last tip is to anticipate common interview questions and be prepared. There are common programming questions used in the software industry and some standard HR questions used everywhere; you should know your answers like the back of your hand. I’ll be going over how I construct my answers to these in the next few posts… stay tuned!

schoollogosAt the beginning of November (11/7 – 11/10), Stuart (our HR guy) and I will be taking a trip to the Boston area to visit Harvard, MIT, and Brown. We’ll be doing a fun dinner event and then running interviews on campus.

Here’s the schedule:

  • 11/7 afternoon – Arrive in Boston
  • 11/7 at 7PM – Run a dinner and fun talk about interviewing and the new generation of internet startups. (The Kendall Hotel, 350 Main Street, Cambridge, MA)
  • 11/8 – Interview candidates from MIT and Harvard
  • 11/8 at 7PM – Drive to Brown and run another dinner and talk (The Tree House, Brown University, Career Center)
  • 11/9 – Interview candidates from Brown
  • 11/10 morning – Fly back to San Jose
  • 11/9 morning – Fly back to San Jose

I’m going to be talking about two things: How to beat the interview and thoughts about working at internet startups nowadays. The first part, how to beat the interview, is an interviewer’s worst nightmare. I’ve been both an interviewee and an interviewer for many different companies; I’ll share with you formulas to answer all the normal interview questions you’ll face over and over… you know the ones: “Tell me about a team situation where there was conflict and it was resolved.” “What is your proudest accomplishment?” “What is your greatest weakness?” and the ever popular “If I asked your colleagues about you, what would they tell me?”

I can also share my Microsoft, Google, Yahoo, and Amazon interview experiences with you if there’s time 🙂

The second part is quite interesting too and it’s inspired by many of the e-mails I receive from people. Oftentimes, they’ll ask me about evaluating different job opportunities or people want to get my opinion on working for Google vs. Microsoft. I’ll be covering how I analyze different career opportunities and I’ll also do a quick run down of what I know about the workings of the internet startup world – stuff I wish I knew when I was graduating from college.

Anyways, after these talks, I’ll probably post my slide deck and notes online. If you’re a student at Harvard, MIT, or Brown, come out and join us (shoot me an e-mail so we can make sure to have enough food and drink). If you’re looking for a job bring your resume and if nothing else, we’ll have plenty of free food 😀

UPDATE: These events are actually open to all who want to come. Just let me know ahead of time so we can be sure to have enough food 🙂

UPDATE 2: We’ve gotten 0 interest from people at Brown so we’re cancelling that part of our trip 😦 If you’re a student at Brown and you’re interested still, drop me a line.