Skip to content

Latest commit

 

History

History
116 lines (77 loc) · 4.28 KB

coding-challenge.md

File metadata and controls

116 lines (77 loc) · 4.28 KB

Coding Challenge Guidelines

You can pick one of the challenges and try to finish it with 3-4 days.

Please organize, design, test, document and deploy your code as if it were going into production, then send us a link to the hosted repository (e.g. Github, Bitbucket...).

Functional spec

Prototype one of the following projects:

  1. Exchange Rate
  2. SF Movies
  3. Email Service API

The UX/UI is totally up to you. If you like, get creative and add additional features a user might find useful!

Exchange Rate

Create a service that gives the latest and historical exchange rate for the currency. Please use three tier network architecture in this challenge. You can also consider using pub / sub, worker mode to process the request to make it more scalable.

Here are some examples of freely available data:

SF Movies

Create a service that shows on a map where movies have been filmed in San Francisco. The user should be able to filter the view using autocompletion search.

The data is available on DataSF: Film Locations.

Email Service API

  1. Create an email npm package, which can be open source and reuseable in any other services.

    The package should provide an abstraction between multiple email service providers.

    If one of the services goes down, it can quickly failover to a another provider without affecting your customers.

  2. Create a RESTful API that accepts the necessary information and sends emails via the created npm package, if you like, you can build an UI to use that RESTful API.

Example Email Providers:

All listed services are free to try and are pretty painless to sign up for, so please register your own test accounts on each.

Technical spec

The architecture will be split between a back-end and a web front-end, for instance providing a JSON in/out RESTful API. Feel free to use any other technologies provided that the general client/service architecture is respected.

Choose one of the following technical tracks that best suits your skillset:

  1. Full-stack: include both front-end and back-end.
  2. Back-end track: include a minimal front-end (e.g. a static view or API docs). Write, document and test your API as if it will be used by other services.
  3. Front-end track: include a minimal back-end, or use the data service directly. Focus on making the interface as polished as possible.

Back-end

We believe there is no one-size-fits-all technology. Good engineering is about using the right tool for the right job, and constantly learning about them. Therefore, feel free to mention in your README how much experience you have with the technical stack you choose, we will take note of that when reviewing your challenge.

Here are some technologies we are more familiar with. Unless request by us, you can chooose any language to work on the challenge.

  • Node.js
  • PHP
  • Java
  • Ruby

You are also free to use any web framework. If you choose to use a framework that results in boilerplate code in the repository, please detail in your README which code was written by you (as opposed to generated code).

Front-end

The front-end should ideally be a single page app with a single index.html linking to external JS/CSS/etc. You may take this opportunity to demonstrate your CSS3 or HTML5 knowledge.

BTW, we like react!

Host it!

When you’re done, host it somewhere (e.g. on Amazon EC2, Heroku, Google AppEngine, etc.).

How will we review?

Guidelines can be found here