Welcome!
Here you will find a set of problems to solve. These problems represent real-world scenarios you might encounter while working at Sandvine.
- 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 sandvine-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 two 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.
Find the available 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 Sandvine.
<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!