Software Engineer Interview Preparation

A list of items that I consider indispensable for a good preparation for a job interview aiming at a Software Engineer position. Most of the technical questions will fall within the presented subjects.

Checklist

1. Prepare your resume. Follow best practices from Career Cup. Design it towards the job posting, use the same keywords (e.g. “Web Application”, “React”, “DevOps”, “REST”, “CRUD”, an so on), as most non-technical recruiters aren't familiar with the underlying technologies and will just judge how your resume matches the job posting. Emphasize what your role and deliveries were, instead of trying to fully explain the project itself. Finally, ask peers to look at your resume to see if it sounds clear to other people.

2. For the technical interview, make sure you're fluent programming with at least one of the big languages, C++, Java, JavaScript, Python or C#, and the following concepts from algorithms and data structures:

3. Read the book Cracking the Coding Interview by Gayle McDowell. You do not need to solve all problems, but make sure to read the full book up to the problem section so you understand the whole process and purpose of interviewing from both the interviewee and the interviewer point of views.

4. Practice mock interviews with peers. Use Pramp to find a practice partner and take turns interviewing. When interviewing, remember the goal is not always to reach the “correct” answer quickly, but to expose your thought process and rationale clearly to the interviewer. The usual script for a technical interview go like this:

Useful Resources