Обо мне

Ключевые навыки

  • Проектирование архитектуры систем на трех технологических стеках: Java, RubyOnRails, Erlang/Elixir.

  • Опыт нагрузочного тестирования. Использовал: Tsung, JMeter, ab, wrk, Grinder.

  • Опыт поиска и устранения неисправностей в боевом окружении на Linux-платформе.

  • Большой опыт работы с Linux: при разработке использую Gentoo Linux, в боевом окружении: CentOs.

  • Опыт оценки трудозатрат по большим проектам.

  • Понимание и реализация принципов Lean Thinking.

  • Понимание и опыт организации процесса на основе Kanban и теории ограничений.

  • Опыт управления командой до 10-12 человек.

  • Хорошо знаком со следующими языками: Ruby, Elixir, Java.

  • Имею достаточное представление о языках: Erlang, JavaScript(ES6), Python, Go.

  • Опыт работы с Ansible для настройки серверов и виртуальных машин.

  • Опыт работы с Docker и Docker-compose для разработки и непрерывной интеграции.

  • Опыт обучения коллег новым языкам и технологиям.

  • Работал со следующими NoSQL DB: Redis, MongoDB, ElasticSearch, ETS.

  • Работал со следующими SQL DB: PostgreSQL, MySQL, Oracle.


Обо мне

В людях и командах прежде всего ценю открытость новому. При построении команды, стараюсь обеспечить психологическую безопасность и доверие внутри коллектива. Сам постоянно слежу за новыми языками, технологиями и направлениями развития в области разработки ПО. Постоянно занимаюсь самообразованием по нескольким направлениям, в основном через чтение книг.

Так как уже более 12 лет использую Linux в качестве основной платформы для работы, то к решениям на базе продуктов Microsoft отношусь достаточно прохладно и стараюсь всячески избегать работы с ними.

Достаточно самоорганизован и дисциплинирован. Практически не нуждаюсь в дополнительной мотивации к работе, так как умею мотивировать себя самостоятельно.

Предпочитаю только гибкий график работы: 1-2 дня в неделю в офисе, остальное время удаленно. Это позволяет:

  • лучше концентрироваться на сложных и творческих задачах;

  • соответвенно количество отвлечений на порядок меньше;

  • так как приходится тратить 2,5 ч на дорогу на работу и обратно — то лучше это время посвятить развитию продуктов.

  • заниматься физкультурой и поддерживать тонус как в теле так и в голове.

Ищу коллективы, в которых руководство относится к разработчикам как к основным сотрудникам и старается понять их потребности. Неприятны люди, которые не терпят никаких перемен и ни учатся новому.

Не пью, не курю и никому не советую этого делать, скорее наоборот. Веду здоровый образ жизни: занимаюсь бегом и лыжами. Люблю футбол, баскетбол.


Языки:

  • Английский -  intermediate
  • Испанский - A2.1
Профессиональные навыки
Опыт работы
Декабрь 2017 — по настоящее время (1 год и 1 месяц)
Руководитель группы разработки (Team Lead)
Москва
Обязанности и достижения

• руководство командой из 12 человек по Lean-Kanban;

• успешный выпуск двух мажорных версий продукта на новейших технологиях представленных в разделе ниже

• внедрение пилотов продукта;

• участие в планировании, аналитике и оценке трудозатрат по работам связанным с основным продуктам.

• демонстрация продукта заказчикам.

Июнь 2015 — Ноябрь 2017 (2 года и 6 месяцев)
Заместитель директора R&D по технологическому развитию (+ Team & Tech Lead, DevOps)
Москва
Обязанности и достижения

• Осуществлена смена технологического стека на Erlang/OTP (Elixir + Phoenix Framework) и VueJS 2.x

• Осуществлено обучение всего отдела QA автоматизации тестирования на основе Ruby (Capybara, Siteprism, ChromeDriver).

• Изучен и внедрен для тестирования и разработки Docker и docker-compose.

• Участие в более чем 30 пресейлах с реализацией прототипов и оценкой трудозатрат.

• Обучение и консультация коллег по переходу на Kanban.

• Произведен анализ и сокращение лишних затрат согласно Lean Thinking.

Проекты:

~ Проект по сборку и анализу статистики для заказного IPTV-решения

• В данном проекте было решено использовать ElasticStack (ElacticSearch, Logstash, Kibana).

• Кластерный вариант решения на Docker, был продемонстрирован руководству заказчика.

• Проведено нагрузочное тестирование с помощью Tsung. Далее решение было развернуто в боевом окружении заказчика на отдельных виртуальных машинах.

~ Проект по омниканальности контакт-центров

• Инициация, разработка первоначальной архитектуры, подбор команды для реализации внутреннего проекта по созданию единого канала коммуникации между бизнесом и клиентами.

• Предполагалась разработка высоконагруженной системы, способной обрабатывать одновременно несколько каналов неголосовых коммуникаций между участниками.

• Для данного проекта была c нуля сформирована команда из Ruby-разработчиков (5 человек), которая была успешно переведена на язык Elixir и функциональную парадигму.

• В данном проекте не использовались аналитики, а с самого начала была внедрена методика Specification By Example и написание сценариев на Gherkin. Это позволило сократить переработки задач в случае двусмысленности требований, а также весь пул работ был четко разбит на отдельные задачи с привязанными сценариями к ним.

• Кроме того, на проекте был использован GraphQL для организации API. А также интенсивно используются WebSockets для организации realtime взаимодействия между клиентами и операторами.

Март 2013 — Май 2015 (2 года и 3 месяца)
Архитектор ПО
Москва
Обязанности и достижения

• Осуществлена смена технологического стека на RubyOnRails. Сформирована с нуля команда разработчиков на Ruby.

• Разработка системы web-конференций (Ruby 2, Rails 4, MongoDB 3, Redis). > 10 интеграций с внешними системами.

• Разработка портала для облачных услуг (Ruby 2, Rails 4, MongoDB 3, Redis, AngularJS 1.3, Grape).

• Доработка bug tracker Redmine для нужд компании (3 плагина + создание сборки из ~40 плагинов)

• Руководство командой из 8 человек.

• Внедрение процесса разработки на основе Kanban и Lean

• DevOps работы по автоматизации развертывания и обеспечения качественного мониторинга работающей системы.

Февраль 2009 — Февраль 2013 (4 года и 1 месяц)
Ведущий инженер-программист
Москва
Обязанности и достижения

~ Разработка и реализация архитектуры новой версии платформы IPTV

с переписыванием почти всего функционала. (>100k строк кода на Java). Это был основной продукт компании.

Стек на серверной стороне: Java (Spring, Restlets, Hibernate, Memcached)

~ Проектирование и разработка подсистемы кэширования в IPTV-платформе

Так как система представляла из себя высоконагруженную платформу (> 2000 req/s на сервер), то необходимо было реализовать с нуля подсистему кеширования, которая бы обеспечила устойчивость платформы под нагрузкой. Реализовал с нуля 4-х уровневую систему кэширования на основе memcached, nginx и java-библиотеки spymemcached. Внедрялась в код она с помощью AОП (AspectJ). Мною было произведено > 10 нагрузочных тестов, в результате которых система выдерживала нагрузку > 5000 req/s на сервер при загрузке CPU около 40%. Основной сложностью было обеспечить инвалидацию кеша в различных обстоятельствах.

~ Переход на c SOAP на REST API

Уже в 2010м году IPTV-решение перешло на REST API с помощью java-библиотеки Restlets, позволяющей создать облако ресурсов и полностью поддержать RFC 2616 HTTP 1.1.

Кроме того, уже тогда мы начали использовать рендеринг на сервере, так как браузеры на приставках были очень медленными.

~ Реализация модуля получения скриншотов с потоков вещания

Для обеспечения отображения мозаики со скриншотами текущих передач, был реализован модуль на Java, который запускал плеер VLC и с его помощью получал скриншоты. Далее с помощью ImageMagick делал несколько их копий в разном разрешении и помещал их всех в отдельный кластер memcached.

~ Реализация отправки сообщений от администратора на приставки и SmartTV

Еще до появления WebSockets, был реализован модуль отправки realtime сообщений на портал IPTV с помощью long-pooling. Реализовано все это было с помощью nginx и его модуля push_stream. Также была реализована поддержка распространения сообщений по кластеру.

Апрель 2007 — Январь 2009 (1 год и 10 месяцев)
Инженер программист
Москва
Обязанности и достижения

Сопровождение текущей на тот момент версии платформа IPTV
Стек на Java (EJB2, Struts, JSF, Hibernate(Oracle, PostgreSQL, MS SQL Server)

Август 2002 — Апрель 2007 (4 года и 9 месяцев)
ВС РФ
Помощник начальника отдела автоматизации
Щелково
Обязанности и достижения

Разработка web-приложения для МО РФ на Java. (Hibernate, EJB 2, JSF)
Она использовалась для отображения информации получаемой с большинства воинских частей по всей РФ

Высшее образование
Август 1997 — Июнь 2002
ЧВИИРЭ
Вычислительные машины, комплексы, системы м сети
Череповец
Специализация и достижения

Специализация: вычислительные машины, комплексы, системы и сети.

  • средний бал: 4.9
  • красный диплом

Среднее специальное образование
Сентябрь 1994 — Июнь 1997
уч. 11, Профессиональное
ПМТ
Няндома
Специализация и достижения

Помощник машиниста тепловоза