.NET Developer

Минск, Беларусь
Миддл • Сеньор
Информационные технологии • Разработка • Backend • Fullstack • C# • SQL • TypeScript • ASP.NET MVC • ASP.NET WEBAPI • ASP.NET Core • SignalR • Angular • React • ClickHouse • MongoDB • MSSQL • Oracle • PostgreSQL • Redis • AWS • Amazon S3 • Azure
Удаленная работа
Опыт работы более 5 лет
О себе

На данный момент .NET разработчик.

Мои компетенции и опыт

Учавствовал в проектировании и разработке крупной B2B SaaS LMS-платформы в составе команды: 15+ микросервисов, 60+ фоновых сервисов, система обслуживает тысячи школ в multi-tenant режиме.

 

*Нагруженные микросервисы на C#. Kafka, gRPC*

- Использовал Kafka для асинхронного взаимодействия (настройка продюсера/консюмера).

- Реализовал паттерна Transactional Outbox + идемпотентная обработка событий для exactly-once гарантии доставки.

- Выбрал схему партиционирования по бизнес-ключу, обеспечил гарантию порядка событий в рамках одной сущности при горизонтальном масштабировании консьюмеров.

- Перевёл внутреннее взаимодействие с REST/JSON на gRPC, тогда латентность межсервисных вызовов снизилась на 30–40%, объём трафика - примерно вдвое.

- Ускорил обработку батчей за счёт параллелизации с ограничением конкурентности ( нужен доступ к резюме hAsync, SemaphoreSlim), время обработки батча в 5000 элементов сократилось с 40s до 6s.

- Заменил блокирующие lock на Interlocked/ReaderWriterLockSlim в конкурентных счётчиках, убрал контеншен на горячей структуре.

 

*Оптимизировал работу PostgreSQL*

- Через pg_repack настроил очистку bloat без даунтайма, это ускорило запросы на 30-40% и вернул 50-60% дискового пространства.

- Добавил include/partial index для часто запрашиваемых данных, запрос ускорился в 3-4 раза .

- Спроектировал партиционирование событийных таблиц по времени (range partitioning), ускорил диапазонные отчёты за счёт partition pruning и заменил тяжёлый DELETE архивных данных мгновенным DROP партиции.

- Настроил чтение запросов с реплик (read/write splitting), по итогу снял 40% нагрузки с мастера.

 

*ClickHouse и аналитика*

- Помогал разгрузить OLTP-базу, перенеся отчётную нагрузку в ClickHouse, поэтому p99 основного API стабилизировался под нагрузкой.

 

*Кеширование Redis, MemoryCache*

- Внедрил cache-aside кэширование read-heavy справочников в Redis с защитой от cache stampede, тогда нагрузка на БД снизилась на 70%.

- Реализовал стратегию инвалидации кэша через доменные события вместо TTL «наугад», тем самым устранил показ устаревших данных.

- Использовал Redis для распределённых блокировок в фоновых задачах с явным учётом ограничений подхода (TTL, fencing token), исключил параллельный запуск джоб в нескольких репликах.

 

*Softskills*

- Менторил middle и junior разработчиков: код-ревью, помощь в коде, план развития.

 

*AI*

- Использовал AI-инструменты в разработке (Claude Code)

 

Stack: .NET 9, C#, нужен доступ к резюме Core, React, EF Core 9, Kafka, Microservices, gRPC, PostgreSQL, ClickHouse, Redis, Elasticsearch, AWS, SignalR.



Интересные кандидаты