Hello! We are very happy that you decided to work on our programming homework. It will be fun, we promise! :) The idea of the exercise is not to write the perfect production-ready solution, but rather to get a better feeling of your problem solving skills and your coding style. This will make the following interviews easier for you since you have already shown your technical skills in a realistic problem.
-
Please implement a web service which calculates and provides results for the following algorithms via a REST API:
- The n:th Fibonacci number F(n) with the value of n provided by the user.
- The Ackermann function A(m,n) with values of m and n provided by the user.
- The factorial n! of a non-negative integer n provided by the user.
- The n:th Prime number F(n) with the value of n provided by the user.
-
Also include a README with:
- Instructions for setting up and running your code locally.
- A brief description for how, if needed, you would setup this service in some cloud environment (preferably AWS).
- Use any framework and other third-party libraries you want that fits the task and your experience. Be prepared to motivate your choices in a followup session.
- The backend of the service can be written in any language of your choice.
- Implement the above mathematical functions along with basic and relevant tests. (Important)
- Validate input data (Important).
- Also implement monitoring of your choice that measures and logs the runtime of the different math functions, with some way of accessing/displaying a summary of it.
- Strive to keep the code clean and well organized.
- Brownie Pts if you implement a CI/CD pipeline or a service in the internet where your code can be tested live.
Please don't:
- Implement a web user interface.
- Use PHP to implement the same.
- Use standard library implementations of functions you're asked to implement.
Create a fork of this branch and implement the solution with a clear readme and Makefiles.
For any questions, please ask me on the communication channels! Good luck!