Skip to content

ovekyc/data-engineering-challenge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Challenge for Software Engineer

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 moon@nflabs.com if you have any questions about the challenge.

Submission Instructions

  1. First, fork this project on github. You will need to create an account if you don't already have one.
  2. Next, complete the project as described below within your fork.
  3. 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).

Project Description

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:

  1. Your app must accept (via a command-line) a space delimited arbitrary sequence of numbers.
  2. Your app must parse the given sequence, analyze it, calculating at least next statistics: sum, avg, median, max, count.
  3. 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

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.

  1. Did your application fulfill the basic requirements?
  2. Did you document the method for setting up and running your application?
  3. Did you follow the instructions for submission?
  4. What is a test coverage for your application
  5. How easy is to add more statistics alogorithm to it
  6. What is the performance of your application

About

Challenge for those applying to the Software Engineer, Big Data position

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.9%
  • Shell 0.1%