

Ask HN: How to prepare for an interview at a startup - mmackh

I've been contacted a few startups, who noticed the Open Source work I had done this year. They had requested to speak to me via phone to do an interview. What is the best way to prepare for such an interview?
Is there a resource that I could refer to?<p>The problem is that I have not had a formal CS education. I started coding ~1 year ago, and algorithms are not my strong suite. What kinds of questions do you like to ask and interviewee, what questions have you been asked?<p>Thanks!
======
nayefc
Here's what I've learned from talking to many startups:

1- First step would be a casual phone call to learn about each other. Make
sure you also learn about them and ask them tough questions about their
business. Both of you are interviewing each other: it's not just that they're
interviewing you. You don't want to suck up to a startup which you don't
believe in and end up signing an offer there.

2- If all goes well, most will schedule a Skype coding interview. You just
have to be prepared for those and that comes from experience (which you should
have from your open source experience). Don't pull an all-nighter learning
algorithms as they will almost certainly ask you a question that you couldn't
cover the night before. Hints: learn a dynamic interpreted and use it (Python,
Ruby etc...). I made the mistake of doing those in C in the beginning and got
stuck on the details / writing more code that they wanted in an hour long
interview. Some were impressed by my C skills, but that's not exactly what
they're testing here. Instead, most are looking at the bigger picture at this
point. i.e: they're seeing if you can you write a quick draft solution, and
optimize it later instead of seeing if you can properly allocate a struct in C
and place different struct types in one list. (Writing such an array takes
quite sometime --> they might be interested in how you'd design it instead of
actually doing it at this point).

3- Then comes the onsite interview. This is where you get to meet the team,
see the office, the location and experience a day at that startup. This is
very important. Your initial gut feeling is more important than you think. If
you don't feel comfortable, then do not sign an offer. You'll be at that
office at least 40 hours a week with the same people. You MUST be very
comfortable working with them.

Startups will often interview you for at least a few hours on different areas.
Design, coding, algorithms etc... Just do your best and the single thing that
they care about here is that you can actually write code that works and make
good decisions. It does not have to be perfect, but it has to work. They're
looking for someone who can build something roughly in a few hours, and then
explain the shortcomings (so that it can later be optimized). Someone who can
get things done, and perhaps become a leader later on. Since you've
contributed to open source, you should have absolutely no problem here.

Good luck!

------
relaunched
I'll let you in on a dirty little secret. While you find amazing brains at
startups, most of those guys spend 80%+ of their time writing non-sexy code.
As such, most startups are looking for people that can crank out well
organized, simple code, with outstanding test coverage and thorough
documentation.

The number of man-hours that are dedicated to the fancy stuff you read about
on HN is a very small percentage of the work that's being done. And, unless
you are brought in for your very specific expertise (which doesn't sound like
it's the case), you won't be getting to do the fancy stuff anyway; though,
you'll probably get an opportunity to learn from those who are.

Get a lot of sleep, make sure you keep in mind that they are looking for
someone who can work within a distributed code base and practice explaining
your thinking related to why you decided to do one thing over another. If you
do that, you'll be fine.

------
alphast0rm
If you have enough time I would highly recommend reading "Cracking the Coding
Interview" by Gayle Laakmann McDowell [1]. She does a very good job covering
all aspects of the interview process and the problems and solutions will most
definitely help you improve your algorithm and data structure skills.

[1] [http://www.amazon.com/Cracking-Coding-Interview-
Programming-...](http://www.amazon.com/Cracking-Coding-Interview-Programming-
Questions/dp/098478280X)

------
shail
I think you already have something to offer to them. That's why they contacted
you, so my suggestion would be to focus on what you have achieved until now
(open source projects). What you did, Why you did, what mistakes you made,
what you learned from them etc.

