General Guidance on the Tech Interview Process

Your preparation for getting a job starts from day #1 in your C.S. classes, since ultimately to get and keep a good job you have to learn, know, and apply computer science, and our FAQ includes a number of questions that are relevant to preparing for your career. However, the gatekeeper of tech jobs is the tech interview process. This page provides some basic guidance and resources for that process.

Preparation Before Interviewing

  • Do a LOT of practice on HackerRank and/or LeetCode - step #1 of the interview process for strong companies is usually a code challenge, and those challenges usually come from one of these sites. (LeetCode Premium is well worth the money.)
  • Have a clear personal story about your interest and experience in CS to communicate to an interviewer
  • Resume:
    • your resume paints a picture of who you are and what you know – you have to design it to stand out and provide a clear and consistent message.
    • Your resume should include a link to your GitHub profile, and any/all impressive coding projects you have done, whether in school or on your own, should be publicly accessible there. Be sure to have a separate github repository for separate projects, and don’t forget to give each project a clear description that shows up on your profile page, and a well-written README.md file that talks about the project
    • it's a huge plus to have at least one big programming project posted to your GitHub that you have done that was NOT required by school
  • Networking:
    • you should create a LinkedIn profile ASAP, and start networking.
    • connect with people in the industry, they can help you with jobs
    • connect with alumni, get them to review your resume and give you practice interviews. Do many practice interviews – it takes a lot of practice to get good at it

Applying

  • Places to Search for jobs: LinkedIn, StackOverflow, and the web sites of companies you’d like to work at
  • Apply to MANY (>100) jobs, even those that are not in your top 30 choices
    • you have no idea where you will get an offer from
    • every interview is very important practice even if it is with a company you would not accept an offer from
  • DO NOT stop applying to more jobs until you have been offered, and have accepted, a job

Marketing Yourself During the Interview Process

  • Before any interview with a live person (as opposed to merely a code challenge), you must research the company you are applying to and:
    • …know all about the company and the services / products it sells
    • …be able to relate your personal story to that company
    • …have a very good reason why you want to work at that company
    • …speak and connect with at least one person in the company beforehand, both to be able to mention them on an interview and also to get to understand the culture
  • Prepare answers for standard behavioral interview questions. For example, be ready to talk about situations in which you:
    • …were challenged
    • …problem solved
    • …failed, and what you learned from it
    • …took on a leadership role; how did you do so, and what did it entail
  • Come in ready to discuss big projects you did in YC CS, since they are impressive and unique
  • Be ready to talk through every/any aspect of your resume, projects, etc. with both technical and non-technical people
  • Give complete and thoughtful answers to any interview questions, but don’t drone on and on.
  • Humor is risky – it can help you, but if taken the wrong way it can completely sink you as well.
  • Always be 100% honest, but think before volunteering unnecessary information

Interview Preparation Resources

Tech interviews are notorious for focusing on how quickly one can solve somewhat contrived data structures & algorithms problems on the spot. Some resources to prepare for this are:

Web sites

1) https://leetcode.com/

2) https://www.hackerrank.com/

Books

1) https://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364

2) https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/

3) https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202 (the problems in this book are not at all contrived, but it is known to be a great resource for practical applications of algorithms and thus a good preparation for interviews)

Internship Opportunities for First and Second Year Students

Microsoft: Explore Microsoft

Google: Google STEP