Backend software engineer for data automation with Cloud Functions + API

Job ID: 37248101

Budget: €750 – €1,500 EUR

**Skills and Qualifications:**

We are looking for candidates with the following qualifications:

* Proficiency in Node.js and TypeScript for server-side development.
* Prior experience with Firebase Cloud Functions (Google Cloud Functions).
* Strong familiarity with NoSQL databases like Firebase Cloud Firestore.
* Experience in working with APIs for data retrieval and manipulation.

**Project Overview:**

The primary objective of this project is to create a system that automates the following tasks using Firebase Cloud Functions:

* **Data Retrieval**: Your role will involve retrieving data from an external API. This data will include information about football matches (dates, times, clubs, etc.), details about football players, and player performance statistics. The tasks within this project may run at various frequencies. Some tasks may execute at constant intervals (e.g., every 30 minutes), while others may depend on data retrieved from the API, such as football match start and end times.
* **Computation**: You will be required to perform simple computations based on the obtained data. For example, you will need to calculate a "score" for football players using an algorithm that will be provided to you.
* **Data Update**: The computed results will then need to be updated in our Firebase Cloud Firestore database. This will require seamless integration with the database to keep it up-to-date with the latest data.

**Project Milestones**

This project involves the development of an advanced data automation system, which comprises the following steps:

* **Step 1**: Create a "Facade" Interface and Mock API
* Develop a "facade" interface to interact with an external API.
* Create a mock version of the API using the facade interface. This mock API will serve as a foundation for subsequent development steps.

* **Step 2**: Implement the System
* Design and implement the core system functionalities, including task scheduling, computations, data retrieval from the mock API, and updates to the Firebase Cloud Firestore database.
* Ensure that the system can run tasks at different frequencies, such as regular intervals or based on data obtained from the mock API.

* **Step 3**: Connect to the Real API and Perform Tests
* Establish a connection between the system and the real external API.
* Conduct thorough testing and validation of the system's performance and accuracy.
* Verify that computations and data updates are executed seamlessly with data obtained from the actual API.