Technical job seekers,
I know that the job hunt is challenging and that the competition is fierce. You’re likely doing everything you can to bolster yourself as a candidate in the running for alluring tech positions, but going the extra mile will help you stand out from other programmers gunning to join awesome companies.
I spoke with our Co-founder and CEO, Greg Jakacki, to formulate this cheat sheet of skills and commonly-asked questions to help you prepare for your next technical interview.
Skills to focus on
- Working with history and version control systems like Git
- Ability to write readable code (design patterns, clean code, functional programming)
- Automating tests, test-driven development (TDD)
- Keen knowledge of the tools you use like your integrated development environment (IDE), Command Line, fluency in certain programming languages
- Understanding of how to use rudimentary data structures like sequences or dictionaries
- Knowledge of APIs responsible for the most common tasks like operations on files, sockets, and web resources
- Ability to debug
- Understanding of scalability and resources consumption
- Understanding of concurrency and parallelism
- Good communication within your own team and ability to explain technical concepts to non-technical people
Common questions to expect
Explain how X works so that Y understands
For X, substitute a technically advanced topic related to the job (cross-site request forgery, dopamine reuptake by norepinephrine neurons, stoichiometric combustion with exhaust gas recirculation). For Y, substitute an archetypal audience that has little to no clue on the subject (grandparents, general public, Board of Directors).
Sometimes when you work in a space or with similarly-minded people for so long, you forget that most people have no idea what you’re talking about if you don’t simplify and scope out the way you speak about your work. An engineer who can explain technical concepts to non-technical colleagues can be very collaborative, and therefore cross-functional and valuable to an organization.
The interviewer might begin with a general "tell me how X works" question, e.g. "tell me what happens when a capital letter 'A' is displayed in the screen"
The candidate replies "well, the OS looks up the glyph information and renders the letter on the screen."
The interviewer then picks a part of this answer and zooms in on it, e.g. "what does that actually mean it looks up the glyph?"
Candidate: "There are files on the disk that contain descriptions of how glyphs should be rendered, they are usually cached by OS, so the OS needs to find the glyph description for the given font and character."
Interviewer: "How does the OS do it?"
Candidate: "I am not very familiar with this part, but I would imagine that it uses some form of key-value store to make sure the lookup is fast.”Interviewer: "How are key-value stores typically implemented?" etc.
Interviewers ask questions like these to gauge your understanding of the whole stack and to map your knowledge in the particular field.
- Could you tell me what is important about using Version Control System? What are potential difficulties?
- Could you improve the given piece of code?
- Could you explain how tests influence creating software?
I hope these tips help you ace your next technical interview. If you’re looking for additional resources, check out the Codility website for learning exercises or even compete in our regular coding competitions. We have one coming up in a few days!
Click the link below to access even more free resources to prepare for interviews and enhance your coding skills.