, последнее обновление:
Содержание

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), все работало максимально асинхронно.

Реализовал вместе с командой несколько проектов:

  1. Парсер, который брал список доменов, и составлял отчет, например, по установленным системам для push-уведомлений (GCM/FCM/OneSignal и прочие). Время работы парсера измерялось несколькими часами на почти 6 миллионов доменов.
  2. Систему парсинга товаров с разных сайтов (Yandex.Market, Mail.ru Torg, AliExpress) и выдачу в едином виде другим сервисам компании.
  3. Систему миграции между G Suite с максимально полным переносом почты, календаря, контактов, файлов.
  4. Помог реализовать полностью динамический парсер на 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 и железом.