Your task is to develop a small application. We need you to build your application in your own GitHub repository. Please do not fork our repository to create your project. Once you are done, send us a link to your repository.
Please allow yourself at least 1 hour of uninterrupted time for this task, but feel free to spend as much time on the task as you like and make the solution and the code as perfect as you like.
We should be able to run your program with a single command. The program should print the answers to the questions and then exit. The answers should be in the following form:
<question number>. <answer>
You will be submitting an application to be reviewed by a group of peers, this is a good chance to showcase your technical skills. Our expectation is that you will submit code that you feel best reflects your skills and that you would be happy to put into a production environment.
Your application should take a single command line argument specifying the filename of the address book. It will need to read the AddressBook file and answer the following questions:
- How many males are in the address book?
- Who is the oldest person in the address book?
- How many days older is Bill than Paul?
- How many days older is Gemma than Sarah?
Some insights into what we'll be looking for (and what we will not):
- Feel free to use any dependency management and build tools eg maven or gradle
- Please do not use database, we are more interested in your programming skills than your SQL skills
- Feel free to commit as often as you'd like. The more commits the better! Please commit at least once within the first hour
- It's better to complete 1 task than to start 3
- We will be looking at how you approach the task (e.g. how you break it into sub-tasks) and how you structure your code to answer the questions
- The code you write should be suitable for production
- We expect your code to be well tested and a TDD approach would be received well
- The code should be written with maintainability in mind
Good Luck!