Startup is looking for an experienced backend developer with strong skills in .NET and Docker Compose.
Requirements:
- Experience with ASP.NET 5+, Docker Compose, any relational database - key criterion!
- Experience with clean architecture (with MediatR), SignalR, Keycloak, Redis, microservices is a plus.
About the project:
Trading Pool AI - a trading platform based on artificial intelligence, which opens the market for free investment for cryptocurrency asset owners. The Trading Pool AI platform implements an investment model in the form of a pool that combines users' resources into a single balance, where PNL (positive or negative income) goes into a common fund and is distributed among users according to proportions at each moment in time.
Currently, the product is in the final stages before obtaining MVP. The neural network has successfully passed testing, and to achieve our second goal - launching the platform to the public, we need an experienced backend developer in .NET to develop and support the project.
At the moment, we have a backend that requires adjustments to the business logic according to the prepared technical specifications.
Further goals - optimization and preparation for high load (registrations and simultaneous users on the site) both at the code level and at the infrastructure level (docker swarm on AWS). Initially, we want to achieve an acceptable load on the site of up to 1000 simultaneous users and over 5000 registrations, so that our backend and infrastructure do not crash. We have docker compose for local setup on Docker Swarm.
Next - implementation of additional functionality of the platform. Everything step by step.
We would be happy to collaborate with studios as well. Please describe what you could accomplish from the list provided, what experience you have in implementing similar projects. We also ask you to state your rate. We are ready to collaborate both for specific tasks and on a permanent basis in a part-time or full-time format.
For your understanding, I will provide an example of one of the tasks that need to be completed:
In the user's personal account, there is a round "pie" chart that shows the distribution of income on the platform. Each color in the chart corresponds to the color of the card (which flips when clicked/tapped). This chart is dynamic. It changes depending on the balance in the user's "Wallet" (specifically from the "PnL Share" or, in other words, "User's Yield Share"), the size of balances in the "Wallets" of referral users (specifically the share in the "Affiliate Program"), the size of the "Pool Fee," and the overall "Pool Balance."
The first card indicates the user's personal share in the overall pool balance or, in other words, the "PnL Share." It corresponds to the turquoise part of the chart. On its front side, there is the title - "Wallet" with an icon of a shield with a checkmark inside, as well as the amount of funds on the user's balance. All of the user's funds are displayed on it and cannot be elsewhere. It contains all invested funds, and the income from transactions is credited to it (in the case of negative income from a transaction, its balance will decrease).
Next, on the front side of the "Wallet" card, there is an indicator: the user's share in the pool balance, which is also the "PnL Share." This indicator is calculated using the formula: balance on the user's "Wallet" divided by the overall "Pool Balance," multiplied by 100 minus the % commission.
Let's provide an example:
Balance on the user's "Wallet" = 1,000$
Pool balance = 10,000$
Commission = 27.5%
Total: 1,000$ / 10,000$ * 100 - 27.5% = 7.25%
Thus, if a transaction occurs with an income of 100$, the user will receive 7.25% of the income from this transaction. Specifically: 100*(7.25/100) = 7.25$. Similarly, in the case of a negative transaction with a loss of 100$, the user will lose 7.25$ from their balance.
And after each transaction, their "PnL Share" will be recalculated based on the income/loss received. This happens because after each transaction, the user's balance changes, and the algorithm must automatically recalculate their "PnL Share" in the overall "Pool Balance." It is important to note that the user's "PnL Share" also changes after each deposit/withdrawal by other users, as the overall "Pool Balance" changes, so with each change in user balances, the algorithm recalculates both the "Pool Balance" and the resulting parameter "PnL Share" for each specific user.
An important note that applies to both the "Wallet" card and the "Affiliate Balance" card. The numbers in %, indicating the "PnL Share" and the share in the "Affiliate Program" may contain many digits after the decimal point; initially, we will introduce a rule that these share indicators may contain 5 digits after the decimal point. That is, the minimum "PnL Share" and share in the "Affiliate Program" is 0.00001%. The remaining digits are ignored and do not participate in the calculation of income from transactions.
In total, the Backend needs to perform these and all other calculations and provide endpoints to the ready Frontend for charts, graphs, cards, transaction histories.
And so on...