Обязанности и достижения:
В связи с неактуальностью и неприбыльностью текущего ПО, совместно с вышестоящим руководством было принято решение начать разработку нового ПО с нуля, используя современные технологию, и перестроив программу с монолита на микро-сервисную архитектуру, взяв инструмент разработки - язык Golang. Тем самым текущие задачи:
- Участие в проектировании полноценного проекта и разбивка компонентов на микро-сервисы, обдумывание их взаимодействий.
- Контроль за ведением документации для разработчиков.
- Введение единого стиля оформления кода и ведения дальнейшей разработки в рамках абстракции, совместно с интерфейсами.
- Обучение и переподготовка коллег.
- Разработка полноценной обёртки на брокер сообщений RabbitMQ, с универсальным для разных брокеров интерфейсом, best-practice логикой RPC, и кластеризацией для отказоустойчивости. Также необходимым требованием было покрытие кода метриками в связке Prometheus+Grafana, с чем я с лёгкостью справился, так как компания финансировала мне полное обучение по курсам. (Имеются сертификаты)
- Разработка чёткого и многофункционального логгера, включающего трассировку работы программы.
- Участвовал в разработке Device Manager модуля, который обеспечивает подключение к камерам и предоставлении возможности их настраивания, разработка велась на основе библиотеки dahuaSDK, писалась обёртка с языка C в Go с помощью технологий SWIG и CGO.
- Осуществление минимальной сборки с помощью Docker совместно с Devops-разработчиком.