coding-assignment-test

Introduction

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.

Mathematical Web Service

  1. 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.
  2. 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.

Requirements

  • 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.

Non-requirements

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.

Deliverables:

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!