CRM, user dashboard and Seenday photo services marketplace: 900+ sellers, 10,000+ orders per month.
Responsibilities
- Designing and building backend services: authentication, orders, payments, payouts, photo processing.
- Breaking the monolith into services and syncing data between them.
- Integrations with payment systems, OAuth providers and an online cash register.
- Building tools in Python and Go: image processing, Telegram bots, a desktop app for photo exports.
- Infrastructure (Linux, Docker, Nginx, Redis, Centrifugo, GitLab CI/CD) and team leadership: hiring, onboarding, code review.
Key results
- Extracted the Seenday ID auth service from the monolith in ~1 week, fully rewrote the auth code and database schema.
- Added OAuth sign-in via 5 providers (T-Bank, MTS, Yandex, Google, VK) plus email sign-in.
- Built the full order lifecycle backend: pricing, payment, callbacks, statuses, partial and full refunds.
- Integrated 4 payment systems (T-Bank, Belassist, Unicorn, WebKassa), issued fiscal receipts via WebKassa.
- Ran money operations for orders and payouts inside transactions to keep data consistent.
- Automated payouts to 900+ sellers: the system calculates amounts and creates draft payments in the bank — half a day to a day saved per cycle.
- Set up data sync between services with Kafka and Debezium (CDC).
- Built image processing services (thousands to tens of thousands of photos a day) and watermarks that avoid the face area.
- Maintained a Go (Fyne) desktop app for photo exports: by export code it fetches a JSON schema via API and sorts photos into result folders and subfolders.
- Completely redesigned the Go app interface.
- Wrote Python scripts for image processing and Telegram bots.
- Deployed self-hosted GitLab and CI/CD with auto-deploy to dev — ~1 hour a day saved.
- Hired and onboarded 5 PHP developers: they started closing tasks on their own in ~3 days.
PHP 7.4/8.4
Python
Go
Fyne
PostgreSQL
MySQL
MariaDB
Redis
Kafka
Debezium
Docker
GitLab CI/CD
Nginx
Centrifugo
OpenAPI
Postman
Linux