About
I'm a Senior .NET Full Stack Engineer with diverse experience and a deep affinity for all things tech.
I'm driven by a love for programming, a fascination with hardware, and a keen interest in open-source software and Linux in particular.
In my leisure time, I enjoy self-hosting open-source projects, tinkering with hardware setups, and keeping up with the latest tech trends.
Experience
NDA
Public Sector
An integration platform acting as a bridge between a new member portal and a legacy Oracle database maintained by a third-party vendor.
Tech stack:
- .NET 9, Minimal API, Mediator, Entity Framework Core
- Oracle Database
- xUnit, Testcontainers, Verify, Bogus, MockHttp
- Docker, Azure Container Registry, Azure App Service
- Azure Key Vault, Azure Application Insights
- Microsoft Entra ID, Azure DevOps, Azure Pipelines, Terraform, Terragrunt
The main challenge was non-technical — acting as the connecting link between two separate companies: one building the new member portal, the other maintaining the legacy system. The teams operated in very different contexts, which required constant three-way meetings and a lot of effort to understand what data the portal needed and where to find it in the old system.
Responsibilities:
- Simplified infrastructure by removing redundant services (e.g. Azure API Management)
- Replaced paid MediatR with Mediator, removed paid FluentAssertions
- Long requirement-gathering sessions with both teams and API implementation
- Established snapshot testing foundation using Testcontainers, Verify, and Bogus; used AI to achieve full test coverage
- Maintained project documentation
- Delivered the project on time as a solo developer
NDA
Supply Chain
A management information system connecting suppliers and distributors in the automotive aftermarket. Both parties regularly upload large turnover reports, which the system uses to calculate and forecast bonuses.
Tech stack:
- .NET 9, Dapper, Mediator, TickerQ
- Angular 20, NgRx, Tailwind
- Azure SQL Database, Azure Blob Storage
- Azure Container Apps, Azure Front Door, Azure Key Vault, Azure Application Insights
- Terraform, GitHub, GitHub Actions
The client came with an existing codebase in poor condition — no CI/CD, security vulnerabilities, unlicensed and outdated dependencies, performance issues, and no documentation. The goal was to refactor the codebase, resolve security issues, set up infrastructure and CI/CD, replace problematic dependencies, fix existing bugs, and implement new features — all within tight deadlines. I led the project and was responsible for scope assessment. It was challenging, but we delivered on time and the client was satisfied.
Responsibilities:
- Scope assessment and project lead; team consisted of myself, a DevOps engineer, and a junior developer
- Requirements gathering, proposing solutions, and UI/UX decisions
- Technical and architectural decision-making
- Replaced paid EPPlus with SpreadCheetah and Sylvan.Data.Excel — reduced file processing time from tens of seconds to milliseconds
- Replaced paid MediatR with Mediator
- Replaced unmaintained RepoDB with Dapper, fixing many potential SQL injections in the process
- Upgraded .NET to version 9 and Angular to the latest version
- Refactored the entire codebase
- Optimized database queries and moved a large amount of logic from stored procedures to application code
- Reduced web application bundle size — replaced large PNG assets with WebP/AVIF, cleaned up dependencies
- Set up the GitHub repository and CI/CD pipelines
- Made infrastructure decisions in Azure
- Integrated Application Insights and configured alerts
- Conducted demos for the client
Healthcare
Eys is accelerating the digital transformation in eye healthcare. This e-health platform uniquely connects healthcare professionals, streamlining collaboration with telemedicine, digital referrals, and high-quality clinical eye examinations.
Tech stack:
- .NET 8, .NET Framework 4.7.2 & 4.8, Service Fabric microservices, MassTransit, OpenIddict
- Cosmos DB, MS SQL, Entity Framework
- Angular 18, AngularJS, TypeScript
- Azure, Azure Service Bus, Azure Key Vault, Azure Blob Storage, Azure App Services, Azure Application Insights
- Docker, RabbitMQ, FFmpeg & FFprobe, Quartz.NET
- GitHub, GitHub Actions
Responsibilities:
- Implementing features entirely — from the backend to the frontend, often related to video/image processing
- Code review
- Bug investigation & fixing
- Profiling, optimization, and refactoring
- Migrated the codebase from Azure DevOps to GitHub, including CI/CD
- Migrated the majority of services from .NET Framework 4.7.2 to .NET 8
- Promoted and integrated message queues in critical places
- Promoted and integrated Cosmos DB partial updates
- Set up infrastructure for clusters in Azure multiple times
- Participated in all design and architecture discussions
- Made decisions regarding a smooth transition away from Service Fabric
- Replaced unsupported, vulnerable, and non-cross-platform dependencies with modern alternatives
- Responsible for the staging environment — deployments, migrations, analyzing logs
- No dedicated designers, QA, or detailed specifications — responsible for UI/UX decisions, self-testing, gathering requirements, and proposing solutions
- In the absence of a technical lead, also responsible for production deployments and responding to alerts
- Integrated AI for automatic detection of pathologies in eye examination images
- Integrated various ophthalmic cameras for automatic image capture into the platform
NDA
IoT
Cloud infrastructure and mobile application for a WiFi & Bluetooth smart thermostat for electric underfloor heating.
Tech stack:
- .NET 6, microservice architecture, MassTransit, gRPC
- PostgreSQL, Elasticsearch, Redis
- Xamarin Android & iOS
- Azure, Kubernetes, Docker, RabbitMQ
- Azure DevOps, Azure Pipelines
Responsibilities:
- Full implementation of features mostly in the Android application
- Code review
- Bug investigation & fixing
- Optimization and refactoring
- Collaborated with cross-functional teams to define, design, and ship new features in time
- Actively participated in Scrum ceremonies
- Updated and maintained CI/CD infrastructure, including the iOS build environment
NDA
Healthcare
Practice management software for therapists, psychologists, social workers, and counselors, with telehealth and managed billing. Top 1 solution in this domain.
Tech stack:
- .NET Framework 4.8, .NET Core 3.1 & 5, Event Sourcing, CQRS
- MongoDB, Redis
- React, Backbone.js
- AWS, MongoDB Atlas
Responsibilities:
- Implementing features (frontend & backend)
- Code review
- Bug investigation & fixing
- Optimization and refactoring
NDA
Fintech
A product offering direct access to all payment rails, account types, and treasury management through a single API set.
Tech stack:
- .NET Core 3.1, Service Fabric microservices
- MS SQL, ADO.NET, Redis
- Angular, React 16
- Azure
Responsibilities:
- Led a small team to develop a completely new module from scratch
- Code review
Servgrow
Field Service
An all-in-one field service management software for home and commercial service businesses — scheduling, dispatching, customer management, invoicing, and payments.
Tech stack:
- .NET Core 3.1
- MongoDB, Redis
- Docker, Kubernetes
- AWS, MongoDB Atlas
- React 16
- GitHub, GitHub Actions
Responsibilities:
- Developed complete new modules from scratch based on designs, often with minimal or high-level requirements
- Proactively gathered and clarified requirements to ensure quality delivery
- Code review
- Bug investigation & fixing
- Optimization and refactoring
Healthcare
This is the earlier version of the Eys product, under its original name and tech stack.
Tech stack:
- .NET Framework 4.7.2 & 4.8, Service Fabric microservices
- Cosmos DB, MS SQL, Entity Framework
- AngularJS
- Azure, Azure Blob Storage, Azure App Services
- FFmpeg & FFprobe
- Azure DevOps, Azure Pipelines
Responsibilities:
- Implementing features entirely — from the backend to the frontend, often related to video/image processing
- No dedicated designers or QA — responsible for UI/UX decisions and self-testing
- Code review
- Bug investigation & fixing
Award: Best result among Juniors at a sports programming competition
VoiceBox
Marketing
A platform for creating email templates using a visual in-browser designer, importing dynamic contact lists, and sending bulk emails.
Tech stack:
- ASP.NET MVC 5, MSMQ, Windows Services
- MS SQL, Entity Framework
- Razor, Backbone.js, jQuery, Bootstrap
- AWS SES, AWS SQS
- Bitbucket
Responsibilities:
- Implementing features (frontend & backend)
- Heavy work with SQL and stored procedures
- Extending a visual in-browser HTML email builder built on GrapesJS
- Ensuring consistent email rendering across popular email clients (including Outlook...)
Non-commercial experience
- Linux
- Linux has been my primary OS for years, both on the desktop and on personal infrastructure — a home server running Fedora Server and a remote Debian ARM server, each hosting dozens of services.
- Grafana, VictoriaMetrics, Loki, GlitchTip
- I maintain a self-hosted observability stack on both servers — VictoriaMetrics for metrics, Loki for logs, Grafana for visualization, and GlitchTip as an open-source Sentry alternative for error tracking.
- Caddy, Nginx, Apache
- I started with Apache as a reverse proxy, then moved to Nginx for its popularity, and eventually settled on Caddy — it's significantly simpler and handles TLS certificate issuance automatically.
- Fail2ban, CrowdSec
- I started with Fail2ban for detecting and blocking suspicious activities, also integrating the AbuseIPDB blocklist. Eventually switched to CrowdSec — a significantly smarter solution with collaborative threat intelligence.
- Podman
- I use Podman instead of Docker for local development and on my home server, where I manage containers via systemd quadlets.
- Node.js, Bun
- Node.js has long been my go-to for scripts, bots, and automation. I tried migrating to Bun but ran into compatibility issues. Either way, Node.js remains a constant presence as part of full-stack development.
- Windows Forms, WPF
- I built various Windows Forms utilities for small business automation throughout 2014–2018. The highlight was a WPF launcher for custom Dota 2 voice packs — it reached tens of thousands of users and taught me a lot of hard lessons about building real software.
- Python
- I used Python extensively in 2018–2019 for Raspberry Pi scripts, but ran into timing precision issues when working with radio signals and moved on to other languages. Still encounter it regularly at work.
- Go
- I experimented with Go and wrote a few utilities, but switched to .NET Native AOT for native compilation. Still occasionally work with it — for example, my Mozhi fork is written in Go.
- Swift
- I built a small web application using Hummingbird, which is currently running on both of my servers. The development experience without Xcode leaves something to be desired, but the language is interesting and the resource consumption is remarkably low.
Volunteer
To be honest, I don't have enough time to contribute a lot to open source projects. But I am trying to compensate for this with donations. Here are my contributions:
- Have published a set of bash scripts for importing blocklists (e.g., AbuseIPDB) into CrowdSec
- Have contributed multiple times to Jellyfin media server
- Have forked Mozhi translator and adopted its UI for Kobo e-readers (these e‑readers don't support modern CSS)
- Have contributed to Termix file manager
- Have published a utility that will be useful for some Plex users
Education
-
Belarusian State University of Informatics and Radioelectronics
Bachelors in Information Technologies
Minsk, Sep 2012 – Jan 2015, incomplete
-
IT Academia STEP
Software Engineering
Minsk, Dec 2016 – Mar 2018, incomplete