The Guidebook code challenge is an opportunity to demonstrate proficiency in the problem solving skills we expect you to use at Guidebook.
We don't believe there is a one-size-fits-all technology solution. Solid development is about using the right tools for the job, and constantly learning about them. Use your README to discuss the experience you have with the technical stack you selected and we'll make note of that when reviewing your solution.
Select one of the team specific challenges and create a new git repository for that project. Organize your code within that repo -- when you get to a stopping point, commit and push your code and email a link to your repo to Mallory.
We respect your time and don't want you spending more 3 hours on your challenge (the challenges are scoped for ~1hr timeframe). We just want to get a sense of your thought process and development patterns. If there are features you don't have time to implement, feel free to use pseudo code to describe the intended behavior.
Include the following items in your README
:
- Description of the problem and solution.
- Reasoning behind your technical choices. Trade-offs you might have made, anything you left out, or what you might do differently if you were to spend additional time on the project.
- Link to to the hosted application where applicable.
Use whatever development workflow works best for you. If your solution is small enough and a single commit is justified, that's fine; we just ask that you keep your commit history as coherent as possible.
Your application will be reviewed by at least three of our engineers. The aspects of your code we will judge include:
- Clarity: Does the README clearly explain the problem and solution?
- Correctness: Does the application do what was asked? If there is anything missing, does the README explain why it is missing?
- Code Quality: Is the code simple, easy to understand, and maintainable?
- Testing: If required - how thorough are the automated tests? Will they be difficult to change if the requirements of the application were to change?
- UX: Is the interface understandable and pleasing to use?
- Technical Choices: Do choices of libraries, databases, architecture seem appropriate for the challenge?