- TLDR: Build a chat app with real APIs
- Time: 3hr - 6hrs
- Allowed tools & frameworks: anything
- Show us what you got!
This is the frontend interview project for DoorDash! We're going to ask you to build something with whatever tools you want, whatever language you want, or whatever.
If you want to keep it vanilla, that's fine—this should take you two hours with jQuery, plain ol' HTML and CSS. If you want to go all out and use other tools, that's fine too—just make sure you have enough documentation for us to be able to build and run the app.
The goal here is not to demonstrate your pure coding ability—we're here to give you a problem that's not totally spec'd out for you, and we want to see far you can go. How good can you make it without much guidance? What are the sort of improvements and choices you'll make as you build this thing, and where do your priorities lie?
Remember, building stuff is supposed to be fun, so be creative! Happy coding!
There's a few things you need to get started on to get this to work.
Make sure you have node
installed, with a version greater than 7.0.0
. I highly recommend nvm
, or just installing the latest version of node
with brew install node
on macOS.
Once you have a good node
installed, run npm install
in this repo to get your dependencies.
By default, you can run npm start
to run your app, serving the files from /public
. You can, however, change this to whatever you want! Just make sure you document the changes somewhere so we can run this.
We have provided a simple api server for you. You can run npm run api-server
to start it. Read the spec for more details on the api.
There's a pretty fleshed out spec in the ./spec
directory. Checkout the design specs here to understand what you're building!
We're going to review your code to see how you work and how you make tradeoffs—no automated tests for this one. We'll schedule a call with you after you submit this to walk through the code to understand your thought process. If you come on-site, we'll take your code here, and we'll build on it to tests other things—how you write tests, how you build out new features and refactor old code, etc.
- maintainability
- testability
- readability
- solid UX without strict guidance
A couple of things to say:
-
Feel free to change the language you're writing this in. We want to see what good code looks like for you add a
gulpfile
, setupwebpack
, or just use the plain JS, CSS, and HTML you're given. It's all up to you! -
Feel free to use any libraries or frameworks you want, with the idea that they're increasing your productivity, not writing the app for you.
-
Feel free to change any of the scaffolding we provided for you.