Thanks for applying to App'n'roll. We're looking for developers on all levels of their careers: from juniors to seniors and "older". We'd like to ask you to complete this exercise to get a sneak peak of your coding abilities in our technical stack and to get a good starting point for the technical interview with our developers.
If you join us, you'll be writing React applications using TypeScript. We're utilizing Gatsby and Next.js to build our apps and we're following the JAM stack hype. Our components are styled by Styled Components and displayed in Storybook. When it comes to testing, it's Jest, of course. If a project needs a back-end, we do it in Nest.
You're going to implement a simple web app displaying App'n'roll's public repositories (maye you'll find something interesting there?). The app will use GitHub Api (either v3 or v4) to get data. It will allow to search and filter repositories and to mark them as favourites. Each repository will display some basic information about the project: name, description, stars and issues count, link, languages etc.
The app should connect to GitHub's API and fetch App'n'rolls public repositories. You can use version 3 or version 4 to get what you need. You might not be able to access all required data with version 3, so it's ok to adjust the app to this limitations.
Application should allow users to find repositories by name and filter repositories by language. User should be able to clear the previously selected valued to get back to "all" view.
User should be able to mark the repository as favourite/liked. This information should persist between sessions. It should be stored locally in the user's browser.
You should implement the design provided in the design guide.
Font is Quicksand. Other assets are included in the guide or you can download
them by visiting the design
folder in this repo.
You can use a native select control (just style the box), but if you feel courageous to implement a custom solution, feel free to do so.
You must use React to complete the task. This is a base of our stack so we need to know how proficient you are with this tool. You can use any other tool to crete the app, but here's the "nice to have" list:
- Styled Components,
- TypeScript,
- Jest,
- Gatsby or Next.js (feel free to use our Gatsby starter).
Make sure your code is clean, nicely organised and—above all—works. You should provide a setup manual for running the project locally.
The outcome of your work should be provided as a GitHub repository. Make sure the history is clean and shows of your git skill. You can additionally host the app (eg. on the GitHub Pages) and provide the link in the project's description.
It's a task for about 4 hours of work.
It's fine. We appreciate the time you spent on the project. The more code you write the better picture we get about your skill but it's not the be-all end-all of the recruitment process. Provide us with as much features as you'll feel comfortable with and think it will properly represent your programming abilities.
You might be able to. Send us a link to the project you have on your mind.
Great! Check out the open positions on the careers page.