Take Home Projects
Companies will occasionally ask you to do a take-home project as a way to see how you perform in a context more like actual work than coding assessments.
These projects are usually short coding tasks that you can complete by yourself outside of the interview context.
The best ones are time-boxed to an hour or two, but sometimes they might even take days (there are plenty of unhappy developers griping about those ones!)
Take-home projects do offer a few benefits over traditional coding assessments.
- You can complete the task in your own time. Assessments can be stressful because of the strict time limit, but take-home projects let you work at your own pace. Want to stop and eat tacos halfway through? No problem! 🌮
- You can show employers a realistic work sample. Take-home projects give candidates who haven’t memorized algorithms a chance to show off their creative thinking and their ability to code.
- You can stand out from others. Look into a company’s style guide or coding conventions and use them in your take-home project! This will show the company that you’ve done your research and demonstrate your ability to go above and beyond.
Most take-home projects are designed to test you on a particular skill. For example...
- A backend project might be to build an API backend using Express.js.
- A DevOps project might challenge you to deploy a containerized application to AWS.
Here are some tips to knock your take-home projects out of the park.
Keep it simple
You might be tempted to do more than is asked of you. Don’t let feature-creep derail your project. Follow the guidelines that you’re given and don’t add unnecessary work for yourself.
Remember that frontend project example above? You might have a great idea about how to improve the design or UI, but it would be a bad idea to implement those changes in this challenge.
Instead, create the pixel-perfect site that they asked for and just share some comments about the possible UI improvements. This will show that you can do the task at hand but also signal that you’re thinking about the bigger picture and capable of adding value. That’s a win-win! 🤝🏾
These days there are frameworks and open source libraries for tons of functionality. You can lean on these tools for your take-home projects so you don’t have to build everything from scratch.
Besides, most tech companies use (or maybe sometimes even create) these same libraries, so you’ll be demonstrating your proficiency and efficiency.
Make a list of edge cases before you code
Don’t get rejected because of simple edge cases breaking your code.
- What happens when you hit the search button with no input?
- What about when you insert a special character?
- Resizing the browser window?
Don’t let that stuff break your project! List out the common edge cases before you even start coding, and you’ll be sure to cover those as you build.
First prototype, then build it out
You might risk not completing your project at all if you try to make everything perfect from the start. Instead, get the big pieces of functionality working first, then loop back around for all the other details. If you need to build a frontend and a backend, just get the backend working first.
One thing your potential employer will be looking for is that you can write clean, well-documented code since that’s such an important skill to work well on a team.
The README file is a place for you to show that you’re organized and can communicate well.
- What does the app (or similar) do?
- How do you run it?
- What were the big design decisions you made?
- What are some areas for improvement?
And don’t forget to write inline code comments, too, where it’s helpful.