Skip to content

Latest commit

 

History

History
82 lines (53 loc) · 4.31 KB

File metadata and controls

82 lines (53 loc) · 4.31 KB

Dynamox Back-end Developer Challenge

< back to README

Dynamox Back-end|Data Science development team presents you with the following challenge:

Using Node.js develop a server side solution that demonstrates your expertise in back-end development.


Keep in mind the challenge aims to reproduce an environment where you could demonstrate your skills.

In order to help guiding your development process we will provide some requirements. It is not mandatory to fulfill all requirements to submit your implementation. The more requirements you implement, the more resources we will have to assess your skills and knowledge.

Use your best judgement to prioritize tasks to meet the time you have available. Feel free to make any assumptions you consider necessary to complete the task.

Challenge 1: Signal Processing API🌐

Overview

In this challenge, you will create a modern and performant api that showcases your expertise in backend development, database modeling and networking.

Functional Requirements and User Stories

The server side application is the backbone of many modern applications, low latency, high diponibility, safety and security are crucial, your implementation must follow best practices in those areas. Your back-end application is a time-series processor, it holds time-series data in a persistant storage, it can receive raw data series, and retrieve metrics about the time series, and delete the same data.

1 - User Stories

  1. As a user, I want to be able to store a raw data series.
  2. As a user, I want to be able to retrieve metrics about the time series.
  3. As a user, I want to be able to delete a time series i've sent to the server.
  4. As a user, I want to be able to retrieve the number of time series i've stored in the server.
  5. As a user, I want to be able to retrieve the a full time series, i've stored.

2 - Technical Requirements

  1. Use Node.js
  2. Use a REST-API framework (ex.: Express)
  3. The latency between client and the server side must be below 350ms in all requests
  4. Use a database to store the time series data (MongoDB preferred)
  5. Ensure correct business logic and behavior with automated unit tests (ex.: Jest);

3 - Bonus

  1. Deploy your application to a cloud provider and provide the api url.
  2. Publish stored time series data to a Kafka topic. The Kafka environment must be configured via Docker and orchestrated through a Makefile. All commands necessary to start the Kafka infrastructure and run the project must be documented in the project's README.md.
  3. Add load balancer to the application.
  4. Add load tests to the application.

Evaluation Criteria

Each one of the items above will be evaluated as "Not Implemented", "Implemented with Issues", "Implemented", or "Implemented with Excellence". In order to assess different profiles and experiences, we expect candidates applying to more senior levels demonstrate a deeper understanding of the requirements and implement more of them in the same deadline.

In general we will be looking for the following:

  1. Anyone should be able to follow the instructions and run the application.
  2. Back-end code successfully integrated with a persistant storage.
  3. Stories were implemented according to the functional requirements.
  4. Problem-solving skills and ability to handle ambiguity.
  5. Code quality, readability, and maintainability.
  6. Code is well-organized and documented.

Ready to Begin the Challenges?

  • Fork this repository to your own Github account.
  • Create a new branch using your first name and last name. For example: caroline-oliveira.
  • After completing the challenge, create a pull request to this repository (https://github.com/dynamox-s-a/developer-challenges) pointing to the main branch.
  • We will receive a notification about your pull request, review your solution and get in touch with you.

Good luck! We look forward to reviewing your submission. 🚀

Frequently Asked Questions

  • Is it necessary to fork the project? Yes, this allows us to see how much time you spent on the challenge.

  • Can I use IA to complete the challenge? Yes, however have in mind you will need to explain your decision and code

  • If I have more questions, who can I contact? Please reply to the email who sent you this test.