Welcome!
Here you will find a set of problems to solve when interviewing with Robin. These problems represent real-world scenarios you can expect to encounter while working at Robin.
We do not expect you to spend more than an hour or two on these challenges.
- NodeJS version 8+ Download here
Once node is installed clone this repository. Please ensure all work is done on a new feature branch:
git checkout -b robin-challenge-solutions
npm install
The challenges are broken into two groups - functional programming challenges and UI component challenges.
Challenges can be found in the challenges/
directory. Each challenge contains three files:
This is where you will implement the function, or component, to complete the challenge. The contents of this file are entirely up to you, the only requirement is that the function signature remains the same and remains exported.
This contains the mock data that will be used for the particular challenge. These are made up events, or multiple groups of events, depending on the challenge.
Each challenge has a test file to verify the output for a series of inputs. Tests can be ran as they would in any standard node package.
Find the availabile time slots within a given schedule.
findFreeTimes(start: Date, end: Date, duration: number, events: Array<Event>)
Find the available time slots that are free across a set of individual schedules.
findFreeTimesAcrossSchedules(start: Date, end: Date, duration: number, schedules: Array<Array<Event>>)
Create a React or Angular component representing a common UI element seen across Robin.
<AvailabilityTimePills
start={startTime}
end={endTime}
duration={30}
events={events}
/>
Please submit your response in the form of a git patch. This can be generated by running the following command. Please check to make sure all your changes are committed before generating the patch file.
git format-patch master --stdout > <yourname>-solutions.patch
We look forward to seeing your solutions!