Frontend Interview Challenge

Welcome!

Here you will find a set of problems to solve. These problems represent real-world scenarios you might encounter while working at Sandvine.

Getting Started

Pre-requisites

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

Challenges

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:

challenge.js

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.

data.json

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.

Meeting Availability Challenge

Find the available time slots within a given schedule.

findFreeTimes(start: Date, end: Date, duration: number, events: Array<Event>)

View the challenge

User Availability Challenge

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>>)

View the challenge

Component Challenge

Create a React or Angular component representing a common UI element seen across Sandvine.

<AvailabilityTimePills
  start={startTime}
  end={endTime}
  duration={30}
  events={events}
/>

screen shot 2017-03-21 at 4 34 59 pm

View the challenge

Preparing and submitting the challenge

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!