Я HR в этой компании
No description
{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"В рамках работы занимался разработкой и поддержкой системы, построенной на основе микросервисного подхода, разделением старой (монолитной) части проекта, проектированием новых подсистем, курированием младших специалистов, формированием технической документации. Ключевые области вложения можно разделить следующим образом:"}]},{"type":"paragraph","content":[{"type":"text","text":"Система оповещений о публикациях в новостных лентах (k8s) ~12 kLoC"}]},{"type":"paragraph","content":[{"type":"text","text":"* спроектирована и реализована новая схема доставки уведомлений, состоящая из ряда связанных через rabbit-mq сервисов, отвечающих за потоковую фильтрацию, распознавание необходимых оповещений и осуществление отправки по разным каналам оповещений для клиентов (firebase cloud messaging, signalR, telegram, email)"}]},{"type":"paragraph","content":[{"type":"text","text":"* для нового потока обеспечена observability, отказоучтойчивость и масштабирование в k8s, доставка гарантируется rabbitmq, fail-fast достигнут валидацией контрактов на каждом шаге между сервисами"}]},{"type":"paragraph","content":[{"type":"text","text":"* обеспечена минимальная задержа от получения информации о публикации до момента отправки клиенту оповещения, дедупликация отправляемых оповещений"}]},{"type":"paragraph","content":[{"type":"text","text":"* доработки внутреннего движка, связанного с Lucene.net"}]},{"type":"paragraph","content":[{"type":"text","text":"Система нового объектного поиска публикаций"}]},{"type":"paragraph","content":[{"type":"text","text":"* спроектирована и реализована система объектного поиска публикаций на основе Elasticsearch и API поисковых запросов для объектного поиска"}]},{"type":"paragraph","content":[{"type":"text","text":"* поиск оптимизирован для бОльшей части клиентских запросов для обеспечения задержки менее 200 мс при поиске по более чем 1ТБ записей и дедупликацией записей (партиционирование записей и подсистема поддержки ротации/сжатия поисковых сегментов с Quartz.NET)"}]},{"type":"paragraph","content":[{"type":"text","text":"* eventual consistency через механизм реиндексации, связывающий централизованное хранилище документов и системы-поставщики информации"}]},{"type":"paragraph","content":[{"type":"text","text":"* процессы и контракты работы задокументированы"}]},{"type":"paragraph","content":[{"type":"text","text":"Шлюз для B2B интеграций ~41kLoC"}]},{"type":"paragraph","content":[{"type":"text","text":"* переработан процесс выгрузки событий шлюза для выгрузки клиентов - рефакторинг кода убрал 20% кода и сделал оставшийся более структурированным"}]},{"type":"paragraph","content":[{"type":"text","text":"* создан механизм выгрузки архивов событий для шлюза на основе kafka"}]},{"type":"paragraph","content":[{"type":"text","text":"* миграция на net6 с net4.7.2"}]},{"type":"paragraph","content":[{"type":"text","text":"Монолит-оркестратор клиентских запросов и всего клиентского front-end: ~210kLoC"}]},{"type":"paragraph","content":[{"type":"text","text":"* поддержка существующего функционала (трансформация клиентских поисковых запросов по всем разделам, механизм оповещений по новостным лентам, генерция выгружаемых отчетов с Aspose)"}]},{"type":"paragraph","content":[{"type":"text","text":"* перевод частей системы в отдельные микросервисы"}]},{"type":"paragraph","content":[{"type":"text","text":"* доработки на стороне front-end (angular)"}]},{"type":"paragraph","content":[{"type":"text","text":"* миграция на net6 с net4.7.2"}]},{"type":"paragraph","content":[{"type":"text","text":"Подсистема биллинга и авторизации"}]},{"type":"paragraph","content":[{"type":"text","text":"* проработка схемы новой авторизации с keycloak и OpenID для работы внутренних и внеших пользователей"}]},{"type":"paragraph","content":[{"type":"text","text":"Разработка набора вспомогательных библиотек для улучшения поддерживаемости, observability и maintainability проектов + Библиотека конфигурации и работы с rabbit-link. ~18kLoC + инструменты внутренней автоматизации (чат бот mattermost/slack с функциями генерации дашбордов в grafana, генерации билдов в teamcity, генерации PR в AzureDevOps с helm.values) ~18kLoC"}]}]}