Exercise to assess your skills on React and Ruby on Rails.
Hey, first of all congrats ๐, because you reading this means your resumรฉ (and most likely your github account) convinced our team that you could be the next full stack developer to join us and help us transform the digital job market in Latam building innovative tools while having fun in the process.
If you are like us, you will enjoy coding this exercise that will ultimately benefit you by practicing even if you are not the candidate finally selected.
Hint: ๐ก Before start coding anything please read this doc a couple of times as you may have doubts. Try to understand everything first, then stop at what are the minimum stuff we are asking you to do as it may influence how you approach the solution. The hacker in your mind will be impatient to start and code everything at once, so we recommend you to work using iterations. For example, version 0.1 of your backend app is just the foundation that does nothing but can be installed in Heroku. Then v0.2 contains the endpoint that returns some mock data, then v0.3 has the capability to store the data and so on.
Ok, no need to shh me ๐คซ, no more talking, let's just do this.
The team created a special API to allow other applications search jobs in Get on Board. The result is pretty similar to what you get by using the search input text next to the logo when visiting getonbrd.com but in a computer friendly format. This is what you must know about this API.
URL
: https://www.getonbrd.com/search/jobsContent-Type
: application/json
It returns a list of jobs in JSON (structure specified below). Click here if you want to give it a try.
q
(string)
{
"jobs": [
{
"id": "rails-and-react-full-stack-developer-get-on-board-remoto",
"title": "Rails and React Full-Stack Developer",
"recommended": false,
"pinned": true,
"is_hot": false,
"salary": "4200 - 5000",
"description": "<p><strong>Our tech stack includes: ...",
"functions": "<p>Our product was born to a technology company, so ...",
"benefits": "<p>Along with the perks is our culture. We are an ...",
"remote": true,
"city": null,
"country": null,
"country_flag_url": null,
"new": false,
"seniority": "Expert",
"logo_url": "https://getonbrd-prod.s3.amazonaws.com/uploads/users/logo/1/ISO_NEGATIVE-padding-getonboard.png",
"url": "/empleos/programacion/rails-and-react-full-stack-developer-get-on-board-remoto",
"modality": "Full time",
"published_at": "nov 12",
"company": {
"name": "Get on Board",
"about": "This is us! We are set to shape and transform the digital job market in Latin America...",
"url": "/companies/get-on-board"
}
}
]
}
Build a simple react or react native application with the capability to add jobs to a list of favorites jobs.
The app should meet a minimum set of features:
- Being able to type the keywords, let's say React and Rails remote
- Get a list of jobs - as the result of hitting the button
Search
- showing: title, salary, whether the job is remote, city, country and the name of the company - Being able to click on any job and see its details containing the rest of the fields: about the company, seniority, description, functions, benefits, etc
- Being able to add (mark) any of the jobs to the list of (as) favorites
- Being able to refresh the list by (hitting the button
Search
) or use a different browser still seeing the jobs previously added (marked) as favorites
Build an app in Ruby on Rails to store and fetch the favorites jobs. This application should be the backend of your react application in a form of an API. Where and how the app persists the data is up to you but please read the next section Required in order to be compliant with everything asked.
There is no much constraints on how you can code your apps, we only ask you to:
- Provide a github repository for each application
- Both repos should contain a README.md file in English detailing things about the app, for example: the purpose of the app, how to use it, rationale behind technical decisions, hot to install it on heroku, how to run it locally by installing dependencies, how to run the test suite, etc
- Write some tests for each application, no need to cover all the possible scenarios
- Provide urls in Heroku to try your app
Please have fun ๐ฅณ, be yourself, be sincere, be creative and show your arsenal of skills. If it turns out you know some CSS then use it, shine โจ, amaze us. Nothing is more mesmerizing for us than seeing how other sharp minds think and code.
Last but not least, read the disclaimer and the FAQ sections and if your answers are not there then chat with us using the Messages tab in Get on Board, we will always get back to you as fast as we can, we promise.
This is an exercise without any commercial purpose and Get on Board will never by any means:
- Share or use your code
- Oblige you to take this exercise
- Compensate you in any form for taking this exercise
โ๏ธ - Do it at your pace, we know you have a lot of stuff on your plate more important than hacking an exercise. However have in mind that there are other candidates competing and the more you delay the response, the higher the chances we find the dev to fulfill the position.
๐ฌ - I mean, sure, however you better have a good reason for it or reviewing your code will lose priority versus the rest of the candidates.
๐ - Uhm, What would be the point doing that? We want to see your code.