Created by Ian Connolly / Slides available on GitHub
Hi, I'm Ian
I'm 4th Year CS and ex-DUCSS chair
I've interned at the ESB, FieldAware, and Mozilla.
I'm joining Scribd in San Francisco in June 2015.
After my summer with Mozilla, I knew that I wanted to move back to SF.
I've done a lot of interviews, both formal and informal, over the past 3-4 months to try and do that.
Hopefully you find some of my experience useful!
Acquisition -> HR/Recruiter Screen -> Phone Screen(s) -> On-Site -> Offer
How you enter a company's recruitment process.
Job ad, referral, website, direct contact, headhunt etc.
Referrals mean different things everywhere.
Make sure your CV doesn't fall into the blackhole!
Non-technical screen first.
Making sure the human on the phone is the one who applied.
In bigger companies, finding out what the applicant wants to do.
Making sure the company and applicant are a good fit.
30-90 mins with an engineer/hiring manager.
Generally over Skype & an online text editor.
100% technical.
Number depends on how much signal the company needs to decide to bring you on-site
Explain more later.
3-5 ~1 hour interviews.
Almost all 'technical'.
At least one will be a culture fit interview (possibly over lunch).
Explain more later.
Congratulations! ☺
As a rule, negotiate.
Glassdoor, ask friends, family contacts etc.
Self-explanatory.
BE ON TIME. (They'll probably be late)
They probably won't use video due to legal issues, but be prepared in case they do.
Have both Chrome and Firefox, something they'll want to use will inevitably only work in one properly.
Generally either 1 big problem, or 2-3 smaller problems.
Usually make thorough use of a couple of key algorithms & data structures (see later).
Code doesn't have to be perfect (unless there's an interpreter/compiler!), but ask your interviewer.
If you're applying to a specific team, the question will be related to what they do.
They'll focus on past-experience, classes, personal projects.
The more you have, the easier this is.
Explain clearly, don't embellish, but don't be overly modest.
Try and show initiative & enthusiasm.
Try and have some, but don't force it.
If applying for a general graduate position or internship, ask what team they're on and what they do.
People like talking about themselves, give them the opportunity.
Don't waste their time.
You've already beaten the vast majority of candidates.
If you're going abroad, enjoy the trip!
You've got a good CV, can talk to HR, and can pass a phone screen. This won't be your last on-site.
Roughly an hour long each. Each with a different interviewers.
Algorithms & Data Structures heavy focus, probably at least one on system architecture.
Probably on a white board.
We'll go through topics, questions, and tips & tricks later.
You'll probably have lunch with some or all of your interviewers.
This is most definitely an interview, even if they say otherwise or don't realise it.
Relax, try and be yourself.
Ask questions, try and get them to talk about themselves.
Don't insult anyone, make racy jokes etc.
They're trying to see if they want to spend 8-10 hours a day with you.
Stephen Purcell
Generally 1 big one (roughly an hour's work), or smaller ~25 minute problems.
We'll run through need-to-knows, problem topics, examples, and common mistakes
If you're applying to a specific team, there will be domain-specific problems.
Front-end, iOS/Android etc.
Know the language(s) you will interview in.
Stuff to look out for:
I do all of my interviews in Python.
Generally, Java/C/C++ are recommended.
Pick the one you know best. Practice with that (as well as Java).
Don't worry if you bomb it.
Everyone does it at least once.
You will do a lot more interviews than you get offers.
Learn from your mistakes and prepare better.
Stephen Purcell