ЕМ
Евгений М.
Мужчина, 46 лет
Россия, Москва, UTC+3
Ставка
3 896,1 Р/час
НДС не облагается
Специалист доступен с 3 июля 2025 г.
Добавьте подходящих специалистов в список и оформите заявку для предварительного бронирования времени специалистов. После оформления заявки ваш персональный менеджер организует прохождение всех необходимых проверок с вами и каждым кандидатом из заявки. Специалист привлекается к проекту только после окончательного подтверждения его выхода с вашей стороны.
Подробнее
О специалисте
Специализация
Python разработчик
Грейд
Навыки
Отрасли
Знание языков
Английский — B2
Проекты
(16 лет 5 месяцев)
Робокасса и другие проекты
Роль
Python разработчик
Обязанности
Проект: RGT Team (сеть различных сервисов на телеграм ботах и веб ресурсах)
Фабула:
Монорепозиторий без настроенной системы публикаций изменений и доставки контента. Без культуры менеджмента секретов. Без версионности и хранения зависимостей. Без обновления зависимостей и трекинга угроз безопасности зависимостей. Без документации по запуску проекта и настройки окружений.
Выбор стека технологий:
Разделение монорепы на сервисы привело к необходимости отслеживания состояний и конроля работы узлов. "Протащить" кубер у меня вряд ли бы получилось со строны бизнеса и эта технология привела к достаточно большим накладным расходам по времени обучения команды и настройки поддержки and daily operations.
В связи с этим был выбран стек решений Hashicorp. Запуск, мониторинг, а так же service discovery был настроен с помощью Nomad + Consul. Именно мной было выделено из кода "ядро" и определены сервисы.
Это писал на питоне я и параллельно настраивал инфраструктуру. Вся обвязка для запуска и взаимодействия с пайплайнами и написание самих пайплайнов была сделана мной. Всё написано на bash script и небольшие вставки на Perl.
Динамическое создание job инструкций для Nomad с получением налету необходимых для работы секретов и конфигураций.
Создан debian пакет (а так же команда по сборке deb пакетов из указанного сервиса), который имеет в себе все команды, необходимые для работы и используется как обычная утилита командной строки Linux. Пакет называется rgt_tools и работает по принципу rgt build или rgt deploy
И за этим следует набор позиционных и именованных аргументов.
Хранилище артефактов было вынесено от кодовой базы сначала в ProGet, а затем в Nexus.
Все сервисы и ядро системы собирались при помощи rgt_tools в питонячие пакеты и могли быть использованы при сборке образов Docker или при работе в операционной системе с установкой via pip.
Для этого и существует Nexus, где хранятся питон пакеты, которые подтягиваются в образ докера, которые в последствии скачиваются при запуске джобы номада.
Сборки осуществляются, исходя из префиксов и суффиксов пакетов или образов.
Была создана копия продакшн окружения, которая имела префикс dev, прод имел префикс stable.
В репозитории Gitlab (да, сервисы переехали в Gitlab) разделение происходило, очевидно по веткам и префиксы хранения кодовой базы, артефактов, пайплайнов и прочего точно совпадали, что гарантирует точную доставку обновлений и деплой. Прод всегда едет в прод, дев в дев и так далее.
Программист не думает об этой части, ему достаточно правильно указать флагами, чего он хочет добиться при сборке. Новые команды в rgt_tools могут добавляться программистом в ровно 2 строки на bash, благодаря устройству этой тулы.
От Gitlab CI отказался из за его нестабильности в пользу TeamCity. Полностью настроил CI\CD.
Переписал вызов конфигов (был ужас, скачивание жсон файла везде, до 10 мест в пакете) и сам конфиг. Разделил понятие секрктов и конфигураций. Все секреты хранятся в Hashicorp Vault, с разделением доступа по ресурсам при помощи ендпоинтов Vault и acl листов, что позволяет выдавать секреты только нужные сервису. Конфигурации были перенесены в Consul KV и получались тоже при запуске. Наличие Consul позволило исключить Redis, как KV хранилище и было заменено на Consul.
Так же мной написаны клиенты и хранилище Aiogram на базе консул.
В рамках управления командой (4 человека) были установлены задачи, проверка выполнения, code review, трекинг состояния задач, составление списка вопросов для проведения собеседований, проведение собеседований, взаимодействие с бизнесом в рамках достижения баланса между нуждами развития бизнеса и закрытия технического долга
Стек специалиста на проекте
GitLab, planning, JSON API, Apache HTTP Server, SQLAlchemy, Lua, Bash, Git, DevOps, MongoDB, Linux, Redis, Pytest, Nginx, GitHub, aiohttp, FastAPI, gitOPS, Kafka, Docker Compose, Asyncio, SQL, Docker, Python, Flask, Team management, Vue.js, Django, MySQL, RabbitMQ, JavaScript, Нереляционные БД (NoSQL), REST API, Unit testing, Jira, PostgreSQL, Framework, CI/CD, Django Rest Framework, Kubernetes
Отрасль проекта
E-commerce & Retail
Период работы
Июнь 2011 - По настоящее время
(14 лет 2 месяца)
Внедрении SCADA системы КОТМИ на объектах Ставропольской энергосистемы
Роль
Системный администратор
Обязанности
Внесение правок и обновлений в существующую кодовую базу.
Написание новых частей функционала.
Участие в тестировании программных продуктов и систем.
Внедрение программных продуктов и решений на мощностях конечного
потребителя (диспетчерских пунктах, электростанциях, подстанциях, пунктах управления и т.д.)
Принимал участие в разработке и внедрении SCADA системы КОТМИ на объектах Ставропольской энергосистемы (Россети Северный Кавказ). В работах по приведению систем телемеханики и телеметрии к стандарту IEC 60870-5 и использование протокола TCP/IP.
Установка и настройка серверной части, подключение систем в режиме "подслушки", ввод в эксплуатацию.
Разработка и настройка клиентских частей (создание энергетических схем, тестирование визуального отображения данных, тонкие настройки диспетчерской системы MODUS
под конкретную задачу, коммуникации с конечным заказчиком и сторонними подрядчиками заказчика (монтаж диспетчерской системы в видео-кубы. Подрядчик Siemens))
Стек специалиста на проекте
TCP/IP, SCADA
Отрасль проекта
E-commerce & Retail
Период работы
Октябрь 2008 - Декабрь 2010
(2 года 3 месяца)
Формат работы
Тип занятости
Фулл-тайм
Формат работы
Удаленно
Командировки
Не готов
Релокация
Не готов
Готов работать на зарубежных проектах
Нет
Образование
Высшее
Учебное заведение
Ярославский государственный технический университет
Специальность
Автоматизация технологических процессов и производств
Завершение учебы
2002 г.