Leonid Malin
Портфолио
Medical data aggregation service
This is a project that aggregates data for frontend about some drugs spreading across the US from external client's db and generates planned reports. I was a lead developer on this project and heavily communicated with technical manager and team members to clearly understand client's needs and come out with suitable project structure and architecture. Project has 2 databeses: first is client's DB with data, second is for our project purposes There were almost no relations between tables and complex DB structure that we couldn't change, so complex queries were needed Developed report file generation system for different types of reports, used celery for scheduled generation, optmized report generation to have minimum load on celery worker pods Made tests work with 2 databases and generate fake data for mocked client's db
CRM
I participated in development of internal CRM system. We developed it in a team of about 10 people, including backend & frontend developers, devops, managers and software architect. We used REST API to interact with frontend and gRPC for services communication. It was build with FastAPI framework. I was implementing a lot of REST API endpoints, validation logic and services interaction (gRPC handlers implementation for other services). Also I contributed a lot in development of core logic for all services (we used custom framework built on top of FastAPI), including some core REST API features (filtering/sorting, core validation, DI, data interaction layer and more).
Online poker game
This project is online poker game that was made during COVID-19 to allow friends to play poker together. It is relatively large and has some services, including: Custom poker game framework with rules and different game modes that is built in pure python Django rest framework part (API for some pages) Client-server in-game communication that is built with custom messaging system over WebSocket protocol (django_channels), pydantic for messages validation Simple time-tracking microservice with communication via gRPC Statistics collection service that used InfluxDB to store data Telemetry with opentelemetry + tempo + grafana to have live data about games in grafana dashboards Complex testing infrastructure that were designed to implement different game scenarios and run them in every test case