Працював в 1 компанії 2 роки 8 місяців
Торгівля роздрібна / Retail
.NET розробник (C#, ASP.NET Core, PostgreSQL)
Антип, ТОВ
Торгівля роздрібна / Retail
2 роки 8 місяців
10.2023 - до теперішнього часу
Створював Web API для мобільного корпоративного застосунку дистриб'ютора пива та напоїв: каталог товарів, клієнти, замовлення, маршрути доставки, електронні накладні та обмін повідомленнями. Також розробляв back-end для вебсайту компанії з каталогом товарів та замовленнями.
Проектував багаті доменні моделі по DDD. Писав та оптимізував SQL-запити для PostgreSQL. Використовував LINQ у EF Core для стандартних операцій, а Dapper для важких, багатотабличних та специфічних запитів читання. Розділив логіку читання та запису за принципами CQRS з окремими read/write DbContext'ами. Оптимізував фільтри та агрегації каталогу, налаштовував складені індекси, унікальні ключі та обмеження, аналізував плани виконання та знижував навантаження на БД за рахунок коректного індексування. Застосовував Unit of Work для управління транзакціями та узгодженісті даних.
Налагодив асинхронну взаємодію між сервісами через RabbitMQ, використовуючи MassTransit та Wolverine. Використовув патерн Inbox та Outbox. Додав retry policies, що підвищило відмовостійкість системи та виключило втрату важливих бізнес-подій.
Реалізував сервіс для надсилання push-повідомлень за допомогою Firebase Cloud Messaging (FCM). Додав можливість для 1С вивантажувати список повідомлень із різним часом відправки для різних співробітників. Використовував Hangfire для відкладених завдань та ретраїв.
Використовував Redis для кешування. Підтримував актуальний snapshot залишків товарів та кешував результати фільтрації каталогу (групи, бренди, упаковки, виробники) за принципом cache-aside. Це прискорило роботу каталогу та знизило навантаження на БД.
Для роботи з файлами використовував S3-сховище для зручного зберігання та швидкого доступу до документів та медіа. Метадані файлів зберігалися в MongoDB.
Додав логування через Serilog з відправкою до Elasticsearch і переглядом логів у Kibana. Підключив OpenTelemetry для метрик, відправляв їх у Prometheus та візуалізував за допомогою Grafana, що забезпечило стабільний моніторинг стану системи та дозволило швидко реагувати на проблеми.
Писав модульні та інтеграційні тести на xUnit із використанням Moq. Інтеграційні тести запускав із використанням Docker-контейнерів для PostgreSQL та RabbitMQ.
Ключова інформація
- C#
- .NET
- ASP.NET Core
- Entity Framework (EF Core)
- PostgreSQL
- REST API
- DDD
- SOLID
- Clean Architecture
- Git
- GitHub
- Docker
- Redis
- RabbitMQ
- Hangfire
- Dapper
- AutoMapper
- Avalonia
- CQRS
- FluentValidation
- xUnit
- Moq
- Unit Testing
- LINQ
- S3
- Serilog
- Jira
Навчався в 1 закладі
Національний авіаційний університет
Факультет кібербезпеки, комп'ютерної та програмної інженерії / 121 Інженерія програмного забезпечення
2024
Володіє мовами
Англійська
середній
Російська
рідна
Може проходити співбесіду на цій мові
Може проходити співбесіду на цій мові
Українська
рідна
Може проходити співбесіду на цій мові
Може проходити співбесіду на цій мові
Курси, тренінги, сертифікати
Introduction to .NET, EPAM Campus
Додаткова інформація
Про себе
Громадянин України, проживаю у Сербії.
Шукаю віддалену роботу.
.NET розробник (C#, ASP.NET Core, PostgreSQL) із більш ніж дворічним комерційним досвідом. Працював у сферах дистрибуції та рітейлу, створюючи внутрішні та продуктові додатки, REST API та рішення для автоматизації.
Дмитро Володимирович
Дмитро Володимирович
.NET Developer (C#, ASP.NET Core, PostgreSQL)

Київ
Активно шукає роботу
повна зайнятість, неповна зайнятість, проектна робота
Характер роботи: віддалена робота
Остання активність 3 дні тому