Full stack Interview Questions for Developers

Use our engineer-created questions to interview and hire the most qualified full stack developers for your organization.

The ever-elusive full stack developer has a unique understanding of both frontend and backend technologies that makes them a valuable member to just about any application team.

According to the CoderPad 2023 Developer survey, full stack developers are the second-most in-demand job role technical recruiters are looking to fill.

The subsequent sections provide a set of practical coding assignments and interview questions crafted to evaluate a candidate’s skill in full stack development during technical interviews.

Additionally, a collection of suggested best practices is included to ensure a reliable evaluation of applicants’ full stack proficiency via your interview queries.

Full stack example question

Create a to-do application

This question will examine candidates’ ability to work on the frontend and backend of an application, as well as their ability to think about client side caching and data management, and how to handle optimistic mutations in an application that interacts with an API. It is broken into two parts – you can have the more senior candidates complete both; for more junior candidates you can use the second part as a bonus or stretch goal.

Part 1 instructions:

The functionality to add todos and mark them as completed or uncompleted already exists. Your task is to implement the ability to update the “description” field of a given todo in the database.

Part 2 instructions:

Next, implement optimistic updates for updating the “completed” and “description” fields for a given todo. 

When a user creates a todo, toggles a todo completeness, or updates a todo description, those updates should be made immediately in the frontend of the application, before the updates are saved in the database. 

If the API responds with a success status, then the frontend updates are allowed to persist. If the API responds with an error status, the frontend update must be reverted.

Example:

1. Todo with id 2 is marked as completed. The frontend immediately shows that todo as complete, despite the change having not been persisted in the database.

2. The API responds with a 500 because todo 2 could not be saved.

3. The frontend must now revert the change to todo 2 and show it as incomplete.

Question 2: Improve this full-stack MineSweeper game

This fun interview question allows you to analyze a candidate’s ability to troubleshoot and enhance a UI and to work with databases that manage a user’s progress.

It’s broken into three parts, each a little more complex than the previous one – so it’s a great one to use if you’re looking for full-stack developers of multiple skill levels. You can have junior developers focus primarily on the first part and have the other two be “stretch goals.” 

Alternatively, you can have your senior developer candidates work on all three parts to see how they work with a more in-depth development task.

Part 1 instructions:

Welcome to my game, created with NodeJS and React.

To test it, go to the “Program Output” tab, click “Start a new game”, then click on a tile to reveal it. Try to avoid mines!

All the games and their current states are saved in the database. So you can start multiple games and play them in any order you like.

However, the game engine lacks a cool feature. When you click on a tile which is marked with a “0”, you have to manually click all the tiles around. The original MineSweeper game would automatically reveal these tiles, as they are not dangerous. This automatic reveal could also trigger more automatic reveals, if some tiles are also marked as “0”, and so on.

Two Minesweeper boards. On the left is a full board that says "click once". In the middle is an arrow that has a label that says "automatically reveal the "0" tiles". On the right is a minesweeper board that has some tiles revealed.

Would you implement this feature for me, please?

Part 2 instructions:

This application is (quite) secure. The mines’ positions are known only by the server. When the player clicks on a tile, a request is sent to the server, which answers only what is necessary:

  • A boolean telling if the tile has a mine,
  • The number of mines around the tile.

The problem is that the server may have to send more data, because multiple tiles may be revealed on a single click.

Here are the first tasks you have to do:

  • On the client side, find the code that is executed when the player clicks on a tile. It is split in two places: the React component defining the user interface, and the client API.
  • On the server side, find the code that reveals a tile and sends the response to the client. It is in the server API.
  • Determine the current structure of the data exchanged between the client and the server.
  • Decide on a new structure. It could be, for example, a boolean telling if there is a mine and a list of revealed tiles. This list could contain objects with coordinates (x, y) and the number of mines around it.
  • Adapt all the code parts previously identified, so that they handle this new data structure.
  • Modify the server-side code to automatically reveal the tiles which have 0 mines around. You may have to do a little recursivity, or store the tiles to process in a list, because the revealed tiles may propagate.

Part 3 instructions:

Oh… One last thing. There are some “security flaws” in the code. You can cheat and get some clues on the bomb positions, without revealing the tiles. Even if we consider a real situation where you would be only on the client side. Can you find these flaws?

Assessing the candidate’s response

You’ll have your own criteria of what to look for in a full-stack developer, but here are some things we recommend looking out for when you’re using this question to assess your candidates:

  • Is the candidate using comments to show their understanding of the code or to document how their code works?
  • Is the candidate testing their code? Are they writing test cases for them? Or perhaps they’re taking an iterative coding approach – writing sections of code and then testing its functionality as they go?
  • Are they able to follow a systematic debugging approach?
  • Is the candidate accurately understanding how the front-end and back-end services communicate with one another?
  • Are they following best design practices with their front-end implementation?

More full stack interview resources

For more guides on improving your knowledge of full stack hiring, we have outlined helpful blog posts below:

1,000 Companies use CoderPad to Screen and Interview Developers

Best interview practices for full stack roles

The full stack interview process can significantly differ based on aspects such as the specific engineering position and the candidate’s degree of expertise. To enhance the effectiveness of your full stack interview questions, it’s suggested to follow these best practices while engaging with your interviewees:

  • Devise technical queries that relate to actual scenarios within your company – this approach is not only more engaging for the interviewee but also better demonstrates the compatibility of their skills with your team.
  • Foster an environment of collaboration by motivating the candidate to pose questions throughout the task.
  • As full stack applicants are expected to work with front-end elements, they should have a solid grasp of basic UI/UX design principles.

Furthermore, it’s crucial to adhere to conventional interview protocols during full stack interviews – adjust the complexity of interview questions relative to the candidate’s development skill level, provide timely feedback regarding their status in the recruitment process, and allocate sufficient time for candidates to inquire about the evaluation or the experience of working with you and your team.