- Notifications
You must be signed in to change notification settings - Fork10
workivate/backend-assessment
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This assessment is designed to be simple and its primary aim is to assess how you approach and solve softwaredevelopment problems holistically.It contains onlythree tasks which involve transforming user and company data.
Please be aware this isn't a test, and you will not be solely accepted or rejected based on your answers,but your answers may give us some idea about your code culture and technical capabilities.
All candidates asked to complete the assessment will be invited to a technical interview where the assessmentwill be discussed along with their general technical knowledge and experience.
You will be advised by your recruitment contact which software language to complete this assessment in,but it will be either PHP, Python or Node JS.
Please clone this repository, complete thetasks defined below and push the finished code to a privateGitHub repository. Once this is done inform your relevant recruitment contact and we will advise on which GitHub usersneed access to review the assessment.
Please be aware the assessment should be completed 24 hours before your scheduled technical interview. If you haveany issues with this please inform your relevant recruitment contact.
We expect this assessment to take2-4 hours to complete dependent on experience. Please do not spend morethan 4 hours on this assessment. We'd prefer you submit an assessment which is well done but half complete,rather than an assessment which is complete but poorly done.
You can complete this assessment in any way you see fit, but we expect you will have to complete the work in threebasic steps:
- Domain Warmup (30-60 mins) consider the problem and gather information.
- Environment Setup (30-60 mins) create and configure your environment.
- Task Completion (60-120 mins) solve the individual tasks and push the code.
Each of the tasks are relatively simple in that they represent common problems which have well documented solutions.So our main focus will not be assessing the specifics of how you solve each task.
To complete this assessment well you should consider carefully what steps you'd need to take to make this repo and codeproduction and team ready. What features would the code and repo require so it can be safely pushed to productionand another developer can easily edit and extend it.
The three tasks are based around user and company JSON data stored in the./assets/user.json
and./assets/company.json
files. Please review each collection of data before working on the tasks.
Be aware we do not care how you output the results of the data transformations, that is entirely up to you.
Transform the user collection so each record contains a newfull_name
field as shown in the example below.
{"forename":"Jane","surname":"Smith","full_name":"Jane Smith","date_of_birth":"2001/10/12","location":"London","company_id":3}
Transform the user collection so it only contains records where the user is 30 years in age or older.
Transform the user collection so each record contains a newcompany
field which contains the company objectand replaces thecompany_id
field as shown in the example below.
This should be based on the relationship defined by thecompany_id
field contained in the user collectionand theid
field contained in the company collection.
{"forename":"Jane","surname":"Smith","date_of_birth":"2001/10/12","location":"London","company":{"id":3,"name":"Solomon Sisters Bank","headquarters":"London","industry":"Finance"}}