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.
Skills
Backend
.NET
ASP.NET
Node.js
ORM
Entity Framework Core
Dapper
Prisma
Frontend
Angular
React
Astro
TypeScript
HTML / CSS / JS
Tailwind CSS
Razor
Databases
MS SQL Server
PostgreSQL
Cosmos DB
MongoDB
Oracle
Cloud / DevOps
Azure
Docker
Podman
GitHub Actions
Azure Pipelines
GitLab CI/CD
Bare Metal / VPS
Messaging
Azure Service Bus
RabbitMQ
MassTransit
Observability
Application Insights
Grafana
VictoriaMetrics
Loki
GlitchTip
Testing
xUnit
TUnit
Testcontainers
Verify
FluentAssertions
Bogus
Desktop / Mobile
Xamarin Android
WPF
Windows Forms
AI Tools
Claude Code
Cursor
ChatGPT
Gemini
GitHub Copilot
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
version 20
- 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
- SignalR
- 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