Thank you for applying for a position at Giant Steps Capital. We would like to propose a technical challenge to give you the opportunity to demonstrate your experience and skills with software development.
During the previous recruiting process, candidates were asked to solve a specific problem detailed here: (https://github.com/giant-steps/internship-2022q2). Unfortunately, a candidate named 'Bot' did not perform well on the test. Can you help rectify the issues?
- Identify and fix the bug that is preventing the code from producing the correct answer.
- Enhance the code to make it more robust and easier to maintain. Consider how you can structure the code to facilitate the addition of new features.
- Implement unit tests to ensure the correctness of the code. Perhaps if 'Bot' had written some unit tests, the bug might have been prevented from occurring in the first place.
On the previous process there were the following question to be answered:
- What was the most profitable period of 500 calendar days since 2010-01-01 until 2021-03-01? That is, if you had to invest
657.43
of capital for 500 days, what would have been the most profitable period from the beginning of 2000 until the beginning of March/2021? Your answer should be the start and end dates of the period you found.
The expected answer for the previous challenge question is: 2015-06-16, with an amount earned of 787.952750655493 from 2015-06-16 to 2016-10-28
Deliver your solution written in Python (version 3.10) to a private GitHub repository, giving access only to our evaluator when requested. The repository should contain the following items:
- A code solution that can deliver an output as specified.
- A README file, in English, with:
- Detailed execution instructions of the solution in a clear and concise fashion;
- The answer to the question.
Are there any particular frameworks, databases systems or tools I should use for this challenge?
- No, use whatever you feel most comfortable with and that will best demonstrate your software engineering and coding skills. The only technical requirement for this challenge is that you must use Python on the development process. Should the output of my program be in a specific format or use a particular data structure?
- No, as long we are able to validate the output of your solution, you can define how you will deliver it.