Опытный бакенд разработчик. Имею большой опыт работы с различным легаси кодом и быстрым вниканием в него для внесения изменений или выноса функциональности (.Net, Java). Соотвествено могу быстро оздавать скелетоны для сервисов на указанных языка с нуля. Есть опробованные идеи по улучшению архитектуры системы микросервисов и взаимодействия с фронтендом.
Могу работать в качестве тим лида, переключаться между задачами и решать вопросы с другими командами.
Задача: Перевод легаси монолита на Java c UI на Silverlight на микросервисную архитектуру в Docker, UI web.
с 03.2021 старт разработки, с 08.2021 тимлид команды бакенда и фактический архитектор проекта.
Достижения (командные): Мигрировали продакшены двух клиентов на новую архитектуру.
Развернули уаты ещё двух клиентов на новой архитектуре.
Архитектурные решения:
Взаимодейcтвие с UI websocket + protobuf. Всё общение через Nginx веб сокет обрабатывается выделенным gateway, задача которого посылать реквесты сервисам через очередь NATS и полученные от них ответы посылать в соотвествующий веб сокет.
Сервисы на .net core и java. Всё общение между сервисами через NATS (Nats Streaming в некоторых случаях) , протокол в виде протобуфа.
В качестве баз использовался Postgres и RethinkDB.
Для хранения состояния RethinkDB и Redis.
Решения выбранные согласно стандарту компании:
Мониторинг : интерфейс grafana, метрики prometheus, логирование локи, железо cadvisor.
Деплой: весь бакенд разворачивается в докере.
Организация тестирования и деплоя: конфигурация, yml файлы хранятся в гите в отдельных ветках под соотвествующий стенд/клиент. Все образы содержат информацию (ветка, версия, гит ревизия (первые 7)). Все параметры вынесены из yml в env (для облегчения процесса мержа).
Организация кодовой базы: Микросервисы и протоколы общения между ними в выделенных репах и сабрепах. Разработаня скелетон для быстрого создания с нуля микросервиса на .net core и java под использованную архитектуру.
07.2020-02.2021
Сеньор разработчик бакенда
Задача: Разработка нового сервиса для проверки лимитов и баланса.
Для обмена выбрал натс и протобуф. Решение перфоманс проблем, выявленных тестированием Jmeter для рест вызовов внешних систем клиента из лимит сервиса, оптимизация рест вызовов, поиск на чьей стороне проблема с помощью wireshark.
В последующем использовал полученные наработки для новой архитектуры.
Тимлид одной из команд, отвечающий за разработку портала управления и сервисов для ЦППК.
База данных: MSSQL для портала, MondoDB для сервисов.
Шина: Rabbit MQ.
Мониторинг: Zabbix.
Поддержка взаимодействия клиентского приложения на Silverlight c сервером на Java. Транспортный уровень. Бизнес-логика. Очень толстый клиент OOB взаимодействие по кастомному тсп ип протоколу. Продумал и реализовал апдейт клиентского приложения посредством разделения на загрузчик конфигурация и основную часть (поддержка как со стороны клиента так и со стороны веб приложения)
Факультет ИВЭ. Димломная работа Создание распределённой среды исполнения агентов на Java (jdk 1.02)