A collection of potential technical interview challenges to determine whether an interviewee can code.
The purpose is to see if junior-level interview candidates can develop software. From my experience, whiteboard brain teasers and challenges aren't indicative of this. Take-home projects have their own share of problems (lack of time, no control, etc.)
- Short challenges - 10-30 minutes.
- End result is code or a discussion of the candidate's knowledge of a development process.
- Challenges are done in an environment with the tools they will have on their job (computer, google, etc.)
-
Active Directory Search Base Creator
The challenge is to create a class that takes an email address and creates a naive search base for an AD login.
This has the side effect of testing whether the candidate can do some minor research on their own. Extra points if they create tests and handle edge cases. -
The Number Game
The challenge is to refactor this code and make it cleaner and better. -
Build Script Understanding
The challenge is to read and explain what each step of the build script is doing and why it is being performed. This tests candidate's ability to research and provides a glimpse of their level of understanding of the parts of a web application/web development process.
- A teammate is consistently producing poor quality code that ends up having to be rewritten. What do you do? Why?
- You're working on a mission-critical legacy software project with a staggering amount of technical debt and see a great new technology to add. What do you do?
- A new member joins your team. They are incredibly skilled and productive, but are unanimously disliked by other members of the team due to their arrogant, domineering personality. What do you do as a peer? What would you do if you were a manager?
- A teammate is always making technology and development choices that are outdated, inefficient, or otherwise problematic. You know of better ways and technologies. What do you do to ensure the project succeeds?
- You're starting a brand new, greenfield project and are given complete control of technologies and processes. You have the choice of using these new technologies, or continuing to use the old ways. What do you do? Explain your reasoning.
- There is an important deadline tomorrow for a massive contract. Your feature can be finished today if you take development shortcuts. Your feature will be delayed if you do it in a quality manner. What do you do? Why?
- A brand new intern at the company randomly reviews your code one day and creates a three page document detailing everything they believe is wrong with your code. What do you do?