Специалисты
- Лет программирования вообще: 7+
- Лет программирования на C#: 4+
Стек технологий:
C#, .NET 5, 6, 8+, JavaScript/TypeScript, MS SQL Server, PostgreSQL, Redis, Grafana, ELK, Docker, Kubernetes, Kafka, RabbitMQ
Stack: ASP.NET Core, Entity Framework Core, WebApi, WebSockets, React 20+, Redux (RTK), Vite, Webpack, Jest, Azure (App Services, Functions, AKS), проектирование RESTful API, GraphQL, gRPC, аутентификация (JWT), модульные (xUnit/NUnit) и интеграционные тесты
Образование: Тюменский государственный нефтегазовый университет,
Информационные системы, 2018, Магистр
Информационная безопасность, 2016, Магистр
- Отрасли проектов, на которых работал:
- Наука, Нефтяная отрасль
Приложение для регистрации и обобщения нефтепромысловой информации
Роль: Fullstack-разработчик 20 человек на проекте Система процесса сбора, регистрации и обобщения нефтепромысловой информации по скважинам. Представляло из себя клиент серверное приложение, общение происходило асинхронно по HTTPS. Это был монорепозиторий, модули разбиты на микросервисы. За балансировку нагрузки отвечал Consul, из оркестраторов был k8s. Метрики Grafana, Prometheus. Логи ELK. Работали в Azure, там же были настроены пайплайны для доставки артефактов до сервера. Так же присутствовал собственный движок, который отрисовывал формы для клиента на основе xml схемы. Отвечал за поддержку, внедрения новог функционала, оптимизацию конкретного модуля, так же осуществлял правки и переписывание с extJS на React на фронте, правки по архитектуре (внедрения паттерна mediator, для обработки изменений контекста). Почти вся расчетная логика была перенесена на сторону БД, писал процедуры и так же оптимизировал запросы.
.NET 6, 8, Entity Framework Core, WebApi, JavaScript/TypeScript, React, Redux (RTK), Webpack, PostgreSQL, Redis, аутентификация (JWT), Docker, Azure
апрель 2024 - июль 2025 13 месяцев месяцев
Корпоративная ГИС
Роль: Fullstack-разработчик 8 человек на проекте Доработка корпоративной ГИС, создавалась для просмотра, расчета, прогнозирования информации по скважинам/месторождениям, представляло из себя клиент серверное приложение (бекенд монолит, фронт реакт), общение происходило асинхронно по HTTPS. Сам клиент представлял из себя карту с окном выбора модулей, карта подгружалась из разных источников (OpenStreetMap, Google Maps, 2GIS и тд.), обработка карты происходила на GeoServer и выдавались тайлы для клиента. В мои обязанности входило выстраивание архитектуры, дописывание функционала сначала в монолит, потом декомпозиция на микросервисы по DDD (приложение было модульным), которые общались асинхронно через api в докер контейнере, настройка авторизации (изначально была базовой, через логин/пароль и проверка с хэшем из БД) на JWT токен, со временем докрутили метрики (Grafana) и логи (ELK), для оптимизации перенесли часть расчетной информации в процедуры в Postgre, использовали индексы, GeoJSON, materialized view. В качестве хранилища кэша использовали Redis. Для рассылки информации по скважинам использовался Rabbit. На фронте был клиент, который был написан на JS/TS, в качестве фреймворка использовался React.
.NET Framewrork, NET 5, Entity Framework Core, WebApi, JavaScript/TypeScript, React, Redux (RTK), Webpack, PostgreSQL, Redis, аутентификация (JWT), Docker, GitLab, RabbitMQ
июль 2021 – август 2023 ( 2 года) месяцев
Приложение на WPF для сбора, обработки и визуализации данных
Роль: Backend-разработчик 1 человек на проекте Приложение на WPF предназначенное для сбора, обработки и визуализации данных о заказах компании из различных источников (базы данных, Excel, API, CSV и др.). Приложение позволяло: Автоматически загружать и объединять данные из разных систем. Анализировать и просматривать динамику заказов, информацию по заказам. Строить интерактивные графики, диаграммы и отчеты. Можно было выбрать источник выгрузки, либо собрать всю информацию по всем системам. Подключение к MSSQL и Oracle происходило через Entity Framework, к Excel и CSV через Linq2Excel. Присутствовала очистка и преобразование данных (нормализация дат, фильтрация дубликатов), агрегация (группировка по месяцам/клиентам, расчет сумм/средних значений). Для отрисовки графиков использовалась библиотека DevExpress. Можно было генерировать отчеты в PDF (iTextSharp). Для кэширования использовалась локальная SQLite-база, раз в сутки BackgroundWorker выгружал информацию из систем, где нет API, по типу Excel файлов и CSV. Присутствовала фильтрация по типу заказов за год, по регионам, по источникам данных.
.NET Framewrork, WPF, Entity Framework Core, MS SQL, Oracle, Linq2Excel, iTextSharp
январь 2020 – июль 2021 (1 год 7 месяцев) месяцев