Специалисты

Описание

Стек технологий:
Langs: Golang, Python3
Databases: PostgreSQL, Redis, MongoDB | SQLAlchemy, Alembic, Sqlx
DevOps: Docker, Docker Compose, CI/CD Pipelines (GitHub), Deployment, Использование Linux на уровне опытного пользователя
Stack: net/http, Fiber, Echo, Swagger, Postman, RabbitMQ, Grafana, Opentelemetry, gRPC

Опыт
Проект

Сервис девайсов

Описание

роль на проекте: Backend разработчик Разработка компонентного сервиса, включающего в себя несколько других сервисов для работы с физическими устройствами завода. Полное управление (вкл/откл, настройки, сервисов, клиенты (соединения, доп параметры), уровни логирования…) сервисом реализовал посредством yaml конфигурации. Реализовал во всем сервисе пул подключений и keepalive для rabbitmq, redis, snap7, modbus. Пул подключений был реализован с помощью map в go и был полезен для экономии ресурсов. что бы не плодить лишние подключения на случаи когда несколько подсервисов должны подключаться к одному и тому же устройству, storage, message broker. способ сопоставления определенных настроек соединений с сервисами. Сервисы выполняли следующие функции: - сброс продукции (сервис сброса). Так же у сервиса была возможность ручного сброса, через gRPC. Данные кэшировались в redis для оптимизации запросов. Остановка линий (сервис остановки) - сервис выполнял функцию остановки производственной линии на заводе, через gRPC. Через modbus протокол отправлялся сигнал на линию об остановке или запуске конвеера. Так же через gRPC отправлял запрос внешний сервис для включения колонны (лампочка на заводе загоралась зеленого/красного цвета). Сервис смены состояния пинцета - сервис получал от бэкенда сервиса агрегации определенные параметры содержащие данные о состоянии пинцета на заводе через rabbitmq, и в зависимости от этих параметров выполнялась отправка в одну из нескольких требуемых очередей обратно в rabbitmq, + отправка http запроса во внешние сервисы.

Технологии

Golang, PostgreSQL, RabbitMQ, ModBus, Snap7, Redis (storage, pub/sub), gRPC

Длительность

февраль 2024г. – январь 2025г. месяцев

Проект

Сервис технической поддержки

Описание

роль на проекте: Backend разработчик 1человек на проекте Разработка и поддержка CRUD API на фреймворке Echo для отдела технической поддержки для анализа и решения проблем на производственных линиях. Разработка функций анализа некорректной продукции и их причин. Обработка данных истории из MongoDB и комбинированный анализ данных с данными самого Backend сервиса аггрегации. Разработка анализатора логов и истории агрегации. Оптимизация индексов и запросов в MongoDB. Работа с Docker, Docker Compose, CI/CD github.

Технологии

Golang, RabbitMQ, MongoDB, PostgreSQL, Redis, Grafana, gRPC

Длительность

январь 2024г. – январь 2025г. месяцев

Проект

Сервис смен для завода

Описание

роль на проекте: Backend разработчик 1 человек на проекте Разработка и поддержка CRUD API на Fiber для учета смен завода. Получение и обработка данных с линий завода информации о сменах, партиях и продукции для конечного сравнения показателей агрегации. Разработка функций уведомления по SSE о неполадках и обновлениях важных данных. Для сервиса сделал библиотеку для логгирования, на основе slog-syslog т.к. она плохо сериализует стандарт rfc5424. в последующем эту библиотеку мы использовали во всех сервисах. Реализовал функцию, которая в фоновой го-рутине отслеживала данные смен и отправляла http запрос в бэкенд сервиса аггрегации линии уведомления с информацией о обновлениях данных о сменах по определенным условиям. Эти данные так же кешировались в redis, и отправлялись в SSE через каналы. Работа с Docker, Docker Compose, CI/CD github

Технологии

Golang, PostgreSQL

Длительность

июнь 2024г. – июль 2024г. месяцев

Проект

Сервис агрегации продукции завода

Описание

роль на проекте: Backend разработчик 4 человека на проекте Поддержка функций: обработка и агрегация паллет, мультипаков, пачек и API. Разработка и модернизация ключевых вспомогательных сервисов для бэкенда на Go. Работа с Docker, Docker Compose, CI/CD github. Переписал с Python на Go сервис управления контроллером OWEN. Сервис является методом управления регистрами контроля (чтение/запись) через rabbit mq. Сервис агрегации отправляет в очередь сообщения, которые принимает данный сервис и преобразует в действие с контроллером OWEN через TCP подключение. Разработал тестовое snap7 приложение на go с web api. Приложение является http интерфейсом с функциями записи/чтения целых чисел и чисел с плавающей точкой в snap7 сервер. Так же в api реализованы эндпоинты для авто инкрементации значений по указанным адресам в памяти (указываются в параметрах http запроса) и остановки инкрементации. Разработал сервис обработки событий и последующей записи истории агрегации в mongodb на go. Главной функцией сервиса является прослушивание очередей в rabbitmq, преобразование полученных сообщений в корректные типы данных и последующая их запись в mongodb. Так же предусмотрел поддержку обработки дубликатов. Разработал сервис получения и записи ошибок на производственных линиях. При реализации использовал redis для кэширования и posgresql для хранения информации о ошибках. Сервис используется сервисом агрегации, он отправляет возникшие проблемы устройств и агрегации продукции в сервис ошибок.

Технологии

React, Golang, Python, RabbitMQ, MongoDB, PostgreSQL, Redis, gRPC

Длительность

декабрь 2022г. – январь 2025г. месяцев