Skip to main content

General Coding Questions

Behavioral Questions

From Toptal.com

Questions and answers in this section are from Toptal.

How would you describe an API to someone who’s never written code before?

APIs are what apps use to communicate with one another.

An API call involves three steps: First, the client side of the app makes an information request to the server; next, the server processes the request to ensure it’s valid and authorized; finally, the server sends a response back to the client, which communicates the requested information to the user. This process is often occurring behind the scenes when a user attempts to update their email address. By submitting a request form, the user initiates an API call to update their email address in a hosted database. The server then checks the request to make sure that the user has the appropriate permissions to change their address; finally, the user interface displays a success message to let the user know that the request for the email address change was completed.

Can you tell me about a time you solved a coding problem that was far outside your comfort zone? What do you do to get unstuck when you hit a wall with a programming task?

A strong response should include specific problem-solving approaches, such as reading code documentation, searching Google and Stack Overflow, combing through GitHub issues, and reaching out to friends and colleagues who may be able to help. Additionally, it should emphasize how they collaborate with colleagues to find creative solutions to software development projects. If the candidate mentions using ChatGPT or other generative AI tools, ask them how they vet the accuracy of the responses: It’s well established that these tools will sometimes “hallucinate” nonsensical code or introduce subtle bugs. Those who’ve experienced this firsthand should be able to describe their vetting process and name trusted sources they turn to for fact-checking and validation

Can you tell me about a project you’ve worked on that’s comparable to ours? What were the biggest problems you faced?

One of the most straightforward questions you can ask to determine if a candidate is a good fit is, “Have you ever done anything like this before?” Of course, a yes or no response isn’t very useful here, so press the interviewee on specifics to find out the size of their team, what their responsibilities were, and the degree to which they were involved in pivotal project decisions. Invite candidates to describe what technologies they used and why they chose them. Were there any big ideas or aspirations for the project that had to be compromised or abandoned along the way? How did they respond to these setbacks? A top candidate will exhibit familiarity with the kinds of problems they are likely to encounter in the role, and their ability to exercise flexibility and resilience in the face of adversity.

How do you set priorities when juggling multiple tasks on a software project?

Time is often a limiting constraint for a software developer; to be successful, they must be able to prioritize competing tasks and manage expectations for project delivery. A considered approach to prioritization often involves balancing the immediate needs of users with the long-term vision of stakeholders. Drill down on how the candidate strikes this balance: What methods do they use to determine where to direct their attention and invest their time? How do they ensure that they’re delivering high-quality output at a steady cadence? These are key project management skills a qualified developer should be able to articulate. Skilled developers from larger enterprises may discuss their experiences with Agile or Scrum methodologies; agency developers and freelancers will have more to say about keeping clients and managers happy by meeting deadlines and setting realistic project timelines and scopes; startup developers should be able to discuss priorities for launching a minimum viable product (MVP) and responding to the most-urgent bug reports from early adopters.