To better assess a candidates development skills, we would like to provide the following challenge. You have as much time as you'd like (though we ask that you not spend more than a few hours).
Feel free to email us at [email protected] if you have any questions about the challenge.
- First, fork this project on github. You will need to create an account if you don't already have one.
- Next, complete the project as described below within your fork.
- Finally, push all of your changes to your fork on github and submit a pull request. You should also email us to let know you have submitted a solution. Make sure to include your github username in your email (so we can match people with pull requests).
Imagine that your just joined a cool BigData startup wich stores a lot of customer data. You are lucky as they are just starting a new project to analyze all this aswome shiny data. They want to be proactive not reactive with their blue-sky thinking on this mission critical project, and believed this to be a win-win situation, harvesting low-hanging fruit with client focused deliverables. You have volonteered do that by writing an application.
Here's what your CLI-based application must do:
- Your app must accept (via a command-line) a space delimited arbitrary sequence of numbers.
- Your app must parse the given sequence, analyze it, calculating at least next statistics: sum, avg, median, max, count.
- After that, your application should print results to the standard output, serialized in the human-readable JSON format
Your application should be easy to set up and should run on either Linux or Mac OS X. It should not require any for-pay software. It should be well-tested solution and easy-to-extend too, by quickly adding a new customer requirments i.e min function, std-dev, etc.
Evaluation of your submission will be based on the following criteria. Additionally, reviewers will attempt to assess your familiarity with libraries (so use them as much as possible). In Java project reviewers will attempt to assess your experience with object-oriented programming based on how you've structured your submission. Any help with reasoning about a run-time perfomace of your application (i.e perf.txt document, describing ti) would be a plus for a candidate.
- Did your application fulfill the basic requirements?
- Did you document the method for setting up and running your application?
- Did you follow the instructions for submission?
- What is a test coverage for your application
- How easy is to add more statistics alogorithm to it
- What is the performance of your application