The ultimate 8-bullet checklist to ace the Full Stack interview project
Tags: webdev, career, beginners, interview
Published: 2020-05-07 19:41:00


---
description: Clear steps to build a job-winning Full Stack interview project
---

Interviews at top remote work platforms like [Toptal](https://www.toptal.com/#join-only-great-devs), Crossover, or any other applicant vetting marketplaces are [tough to crack](https://dev.to/caroso1222/honest-advice-to-ace-the-hardest-remote-work-interview-at-toptal-3hej). As part of the screening process, some of these sites will normally ask you to develop a project to evaluate your software engineering skills. I have cleared interviews at most of these places as well as reviewed dozens of projects myself. Let me give you some personal advice.

---

These projects will normally take 10-15 work hours to complete, depending on your experience. It's a ton of work but [it pays off](https://dev.to/caroso1222/this-is-how-much-you-can-really-make-in-the-top-remote-working-platforms-100k-32og) once you land the job. Play it intelligently and spend those hours doing what's absolutely necessary to ace the interview.

These are the 8 points I think you should consider when developing a full-stack project for an interview test project.

## 1. Unit Testing

Show your interviewer you're not just about building novel features. You think about maintainability and long-term project health so you're concerned about unit testing. There's no time to be exhaustive, don't take it to 100% coverage. Add some tests to the most important features both in the frontend and the backend. You can consider shooting some integration tests with [Cypress](https://www.cypress.io/) which is easy to set up and will show how you think about integration.

## 2. Restful API

This is a must. You'll probably be asked to implement an API that needs to [CRUD](https://es.wikipedia.org/wiki/CRUD) 2 or 3 entities. Say, for instance, you're implementing a reminders manager. You'll have lists and reminders. Make sure you build your API following proper [Restful](https://hackernoon.com/restful-api-designing-guidelines-the-best-practices-60e1d954e7c9) principles. Having endpoints like `GET /lists/:id/reminders/:id` looks much more readable and maintainable than `POST /lists/:id/change-reminder-name?id=:id`. Please use the right HTTP verbs wherever appropriate. There's nothing worse than seeing GET endpoints that mutate the DB state.

## 3. Scalability / Extensibility

With absolute certainty, your interviewer will ask you to do add a new feature to your project. If you built your front and back in a scalable way then you will have no trouble doing this. What does this mean? In the frontend, it will probably mean you can create new router and pages easily, you can reuse existing models, easily put components behind the auth wall, etc. In the backend, this will probably mean having a proper DB schema to add a new model, have a good role and permission system in place, have a correct util/shared file architecture, etc.

## 4. Intelligent use of external libraries

This is mostly aimed at the frontend as more JavaScript comes at a heavy cost in the client. You're probably playing it wrong if you import the whole moment.js, jQuery, or bootstrap.js into your project. Make sure you use your framework to query the DOM, use something lighter like date-fns for date management, and boast about it in the interview. Show you can create good looking widgets yourself without too much external help.

> <i>Apply to Toptal with my referral code and **we both** get **500USD** once you land your first job: https://www.toptal.com/#join-only-great-devs</i>

## 5. Good looking UI

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/mk4cpcyf5dpygviqakm6.gif)

Don't hide behind that comfort wall of "I'm an engineer so I suck at design, but my code is elegant". Final users can't care less, they expect something that works **and** looks good (don't call me off with exceptions like Reddit or Hackernews). If you call yourself a full-stack dev, your clients will expect you can pull off a decently looking site. You probably don't have design skills but you can play it smart. Get yourself some package like angular material, tailwind, or some other component framework and make sure to follow their guidelines. Don't get creative, it's not the time to discover your inner Picasso, just copy and follow the rules from those libraries.

## 6. Authentication & User Management

Auth is critical in 99% of the applications you'll create. If you're interviewing for backend or full-stack, make sure your auth game is strong. Study how to hash passwords with salts, how oauth2 works, and what they offer in terms of security, how users are safely stored in the DB. If you don't know any of that, don't be intimidated. I learned all that in two days straight and put it into practice in the next few days. Interviewers will probably ask you to add a new role or to guard an endpoint behind an auth wall.

## 7. DB Management

You need to be confident in supporting your decision to go with NoSQL or SQL databases. This intuition surely comes with years of experience but you don't have years to pass the interview. Get yourself familiar with those types of DBs, read tutorials, watch [Youtube videos](https://www.youtube.com/watch?v=Q4VyV4Rvems), check examples online, and implement yours. Make sure you know how to change the schema, alter data, add new models. If you're using NodeJS + Express you can get an ORM like Mongoose to help you with all that.

## 8. Route Guards

This goes hand in hand with authentication. Make sure you know how to properly implement route guards both in the backend and the frontend. A route guard is a mechanism to protect your URLs (client) and endpoints (server) from being accessed without authentication. Frontend frameworks come equipped with these mechanisms already and backend apps can leverage something like JWT to validate users.

---

Now, keep in mind this might be opinionated. It's based on my experience both as a candidate and interviewer. It'll depend on what the interviewer is most inclined to (whether back or front) and their experience with the stack. But, all in all, if you're able to follow these steps you're off to a great interview.

---

# Acing that tech interview

I've used these same concepts to ace interviews at [Toptal](https://www.toptal.com/#join-only-great-devs), CrossOver, Number8 and a few more top remote work platforms. Now I'm writing a [FREE guide](https://carlosroso.com/cracking-the-toptal-interview/) with a lot of **tips and tricks to ace remote tech interviews**. If you're curious, you can [sign up on the waitlist here](https://carlosroso.com/cracking-the-toptal-interview/) and be the first to get it.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/l80v7dpgjapmv0l3aona.png)

---

Let me know on [Twitter](https://twitter.com/caroso1222) if you have gone through any of these interviews. Would you suggest something else to have a world-class backend? What do you pour into your frontend to make it look clean and polished?

---

I normally write about career growth, interviewing, algorithms, and remote work. Follow me and enjoy some of my other articles on [tips for your resume](https://dev.to/caroso1222/please-stop-doing-this-in-your-resume-2mga) or get curious learning [how much you can earn in Toptal or Crossover](https://dev.to/caroso1222/this-is-how-much-you-can-really-make-in-the-top-remote-working-platforms-100k-32og)!