CV
ФИО: Никитин Станислав Владимирович.
Дата рождения: 20.01.1992
Место: г. Москва, РФ
Проживаю: г. Екатеринбург
Занимаюсь всяким ИТ и около: с 2008 года.
Коммерческий опыт: с 2012 года.
Июль 2021 - по настоящее время: ООО “МС2 Софтвер”
Должность: Backend & DevOps Team Lead
Работал над различными проектами в обоих лидских ипостасях - и как менеджер, и как “играющий лид”.
В подчинении было до 15 человек, которые были заняты работой над 7 проектами в максимуме. Методология управления разнится от проекта к проекту - где-то это Waterfall, где-то - самый настоящий Agile. Все проекты сдавал в срок. Также управлял командой DevOps’ов, развивал внутренние сервисы компании, следил за обновлениями используемого софта.
Некоторые проекты, над которыми работал:
- МегаФон.ТВ.
- ГПБ Мобайл.
- Мобильный личный кабинет абонента Ucell.
- Uzum CPA.
На всех проектах выполнял проектирование архитектуры приложений, взаимодействия с витринами, выбор средств разработки и документирования (включая обучение подчиненных и коллег из смежных подразделений), а также планирование, провижнинг и поддержку инфраструктуры (на некоторых проектах - вплоть до аппаратной части).
Некоторые достижения:
- Пока МегаФон.ТВ был жив, я успешно выбил у бизнеса время на переход на микросервисы и k8s. К сожалению, из-за резкого разворота в планах бизнеса эта деятельность не была завершена, и все закончилось переходом на CentOS 7 и приведением Ansible в порядок.
- В начале 2022 года успешно спланировал и совершил миграцию с используемых зарубежных сервисов компании (Slack и Google Apps) на российские аналоги или решения с открытым исходным кодом (пока что это Mattermost и Яндекс соответственно), а также расширил количество внутренних сервисов (появился Redmine для управления проектами и Outline для базы знаний). Вся инфраструктура управляется через Ansible, доступы управляются в FreeIPA.
- Внедрил уникальную архитектуру приложений, которая позволила снизить количество мерж конфликтов до минимума. Например, на одном из проектов на этапе MVP было всего 2 мерж конфликта, которые были связаны с системой работы с переводами.
- Внедрил и обучил коллег мультиязычности в приложениях с использованием Weblate как исходника переводов.
Май 2020 - июль 2021: ООО “МС2 Софтвер”
Должность: Ведущий разработчик
Работал над МегаФон.ТВ. Основной язык: Go, дополнительно Shell, Python.
Поддержка 6-летнего легаси, наращивание функционала оного и рефакторинг. Перед тем, как стать тимлидом, инициировал переезд в Gitlab, развернутый в контуре МегаФон специально для нас, переделал CI/CD. Начал продвигать контейнеризацию и кубернетизацию.
С июля 2020 года был выделен в отдельный юнит, направленный на работу с персонализацией под пользователя, где играл в “играющего лида” - с нуля выстроил архитектуру микросервисов, выработал стандарты структурирования кода и кодирования, реализовал отказоустойчивый домен микросервисов, участвовал в технических и административных созвонах по юниту, защищая свои идеи или критикуя идеи других ¯\_(ツ)_/¯
.
Помогал выстраивать процессы разработки и занимался оптимизацией оных.
Июль 2019 - май 2020: ООО МТС ИТ
Должность: Ведущий разработчик
Работал над WASD.TV. Основной язык: Go, дополнительно Shell.
Проектирование и разработка самодостаточных, самоконфигурируемых, высоконагруженных и нестандартных сервисов, например, рассчитанный на высокий RPS кеш пользовательской информации, сервис загрузки файлов с возможностью использовать несколько хранилищ и быть геораспределенным, и т.д. Все сервисы были с возможностью кластеризации (либо полный stateless, либо с синхронизацией кеша). Все сервисы содержали в себе миграции БД (если таковая использовалась) и не зависели от сторонней утилиты.
Спроектировал и вместе с коллегой написал внутренний фреймворк для микросервисов на Go, который содержал все необходимое (БД, логгер, шина сообщений и т.д.) и при этом использовал минимум рефлексии, был максимально приближен к SOLID (кроме логгера, который мы решили форсировать для единообразия). Фреймворк на 100% покрыт тестами, присутствовали тесты на регрессии. Основная идея фреймворка - инициализация должна проходить в 1-2 вызова, после чего все “просто работает”.
Помогал выстраивать пайплайн разработки на Go. С моей помощью был утвержден первый стандарт кодирования для приложений на Go.
Используемые технологии: Go, Shell для вспомогательных скриптов, PostgreSQL, RabbitMQ, S3 (совместимые хранилища, minio локально для разработки, железяка в продакшене, не Amazon).
Август 2018 - июль 2019: Admitad Gmbh
Должность: Инженер-программист
Основной язык: Go. Дополнительно - python, shell.
Разработка ПО разнообразного плана - от коммерческого до инфраструктурного. Выстраивал пайплайн разработки у группы, проводил код ревью. Занимался обучением junior-разработчиков.
Исполнял обязанности тимлида.
Создал библиотеку для легкого создания микросервисов, в которой были подсистемы для работы с логированием (включая Sentry), БД (MariaDB, MongoDB), шины обмена сообщениями (NATS), все работало максимально асинхронно.
Реализовал вместе с командой несколько проектов:
- Парсер, который брал список доменов, и составлял отчет, например, по установленным системам для push-уведомлений (GCM/FCM/OneSignal и прочие). Время работы парсера измерялось несколькими часами на почти 6 миллионов доменов.
- Систему парсинга товаров с разных сайтов (Yandex.Market, Mail.ru Torg, AliExpress) и выдачу в едином виде другим сервисам компании.
- Систему миграции между G Suite с максимально полным переносом почты, календаря, контактов, файлов.
- Помог реализовать полностью динамический парсер на Go без рефлексии.
Ну и, конечно, разнообразные бэкенды, как новые, так и помощь в доработке старых.
Являлся полноценным DevOps’ом, поддерживал полностью боевую и девелоперскую инфраструктуру команды - сервера, виртуализация (Proxmox), сеть, VPN и прочее. Оказывал содействие товарищам из других групп по провизионингу и деплою.
Апрель 2018 - август 2018: ООО “Сима-Ленд”
Должность: Инженер-программист
С нуля отладил весь пайплайн разработки на Go.
Администрировал некоторые сервисы для разработчиков (CI, тестовая зона).
Реализовал несколько ключевых подсистем для нового проекта, которые успешно начали использовать в других проектах компании, написанных на Go (например, подсистема аутентификации и авторизации, единая библиотека для общения между микросервисами).
Являлся “заместителем тимлида”, проводил митинги с командой, ревьювил код.
Март 2016 - апрель 2018: ООО “Проект-Р”
Должность: Ведущий ИТ специалист
Поддержка текущей инфраструктуры, ввод в строй новых систем, написание документации и обучение персонала.
Поддерживал полностью телефонию (Asterisk + интеграция в решения компании). Настроил с нуля и поддерживал мониторинг серверов и сервисов (OMD), писал скрипты для мониторинга сервисов.
Разработка коммерческого ПО на Golang, Python (не django, в основном разные парсеры и автоматизаторы), shell-скрипты, веб-интерфейс (jQuery), Full stack разработка. Поддержка текущего решения на PHP. Использование materializecss и bulma. Написание документации к коду, кодревью, CI/CD.
Шефствовал над отделом разработки.
Общение с контрагентами, заключение и ведение договоров с партнерами по ИТ части.
Март 2014 - сентябрь 2015: ООО “Инфо-Контент”
Должность: Системный администратор Unix
Поддержка в идеальном состоянии внутренних и внешних сервисов компании.
Администрирование почтовых релеев, nginx-балансеров, NTP серверов, FTP серверов с разной авторизацией (доменная, PAM, mysql).
Администрирование нескольких прокси-серверов с доменной авторизацией в restrictive режиме (с доступом по белым спискам).
Администрирование нескольких серверов коммерческой и внутренней телефонии. Написание утилиты для автоматическго создания учетных записей для телефонных аппаратов а также их конфигурирования, администрирование самих аппаратов (Cisco 6921, Cisco 79XX, DLINK DPH400-S(E)).
Развертывание и поддержка VPN на базе Softether и OpenVPN, с доменной авторизацией и без.
Развертывание и поддержка DNS-серверов на основе bind9.
Развертывание и поддержка распределенной системы мониторинга на основе OMD (Nagios + Check_mk).
Развертывание и поддержка Alfresco (доменная авторизация, webdav-доступ к файлам).
Администрирование баз данных (MySQL/MariaDB, PostgreSQL), включая написание сложных запросов (использовались в мониторинге).
Написание как простых скриптов, так и сложных (например, для формирования черновой выгрузки из базы звонков или мониторинга Asterisk через AMI для Nagios).
Удаленная диагностика рабочих станций операторов.
Общение с партнерами и заказчиками.
Март 2013 - апрель 2014: Mail.Ru Group
Должность: Дежурный системный администратор Unix
- Мониторинг работы систем.
- Самостоятельное исправление мелких ошибок и оповещение ответственных за сервер при серьезных авариях.
- Работа с “железом” - замена и диагностика аппаратного обеспечения серверов.
- Помощь в развертывании новых серверов, а также самостоятельное развертывание серверов.
Декабрь 2012 - январь 2013: ООО “Грандком”
Должность: Помощник системного администратора
Хелпдеск, администрирование серверов на базе RHEL, Debian, анализ защищенности этих систем.
Писал небольшие скрипты для автоматизации работы на Python (анализ логов), правил уже готовые скрипты на shell и Perl.
Изучал и настраивал системы для обмена VoIP трафиком (MVTS, SIP-HIT).
2008 - 2012 гг.
Самообразование и подработка.
В 2008 году я поднял свой первый сервер на Ubuntu 8.04, который состоял из LAMP и на нее натягивал разнообразные CMS для изучения.
Подрабатывал эникеем, выполнял разовые задачи по фрилансу, связанные с Linux и железом.