Где я работаю: моя карьера

Я успешно совмещаю роли собственника, консультанта и наёмного топ-менеджера. Я создавал сервисы для заказчиков и разработчиков веб-проектов, в недавнем прошлом – был техдиректором UMI.CMS, отвечал за партнёрскую сеть игр и приложений в проекте Фотострана.ру и там же занимался внедрением автоматизированного тестирования, а ранее – занимал топовые должности в крупных питерских веб-студиях.

В своей повседневной работе я регулярно консультирую заказчиков интернет-проектов о том, как правильно выбрать исполнителя, правильно поставить задачу и правильно вести развитие проекта в дальнейшем. Я консультирую менеджеров и ведущих разработчиков девелоперских компаний о том, как построить устойчивые процессы, эффективно использовать программное обеспечение, находить общий язык с разработчиками и соблюдать постоянный баланс между технологическими и бизнес-задачами.

Начало карьеры

1998 – веб-студия “CWDIM”. Я начал свою карьеру в IT в 1998 году в веб-студии “CWDIM” в должности менеджера продаж. Я совершал до 120 “холодных” звонков в день и регулярно выезжал на встречи. Я продавал сайты людям во времена, когда слово “интернет” не звучало даже в иностранных новостях.

1999-2004 – фриланс, собственные проекты и обучение в ВУЗе.

2004 – веб-студия “A2”: менеджер проектов.

2005 – “Инфобокс”: руководитель отдела разработки.

2006 – Издательский дом “СПН”: руководитель отдела разработки.

2007 – компания “Артикс”: руководитель подразделения по разработке сайтов.

Проекты за этот период:

Сайты BFM, Knigafund, БФА, ЦУМ, Собака.Ру – разработаны под моим руководством. Группа проектов PCI DSS, DsecRG, DsecTrain с системой дистанционного обучения E-learning – моя разработка с нуля. Журналы Russian Digital, Russian Mobile, RollingStone, 5-ое Колесо, Автопарк – сайты на разработанной мной CMS для Издательского дома “СПН”.

А так же интернет-проекты, разработкой которых я руководил:

Ренессанс Кредит, Паркет Холл, Кино-ФМ, Банк Электроника, ГЦЭ, Совплим, Забава-бар, Комильфо, Эко-балт, Старт-плюс, FlyCards, Первое Музыкальное Издательство, ITM Group, Фарт, Зевс, Кронос, Bloodhaund, МС Жан и DJ Нил, Роджер, Артэго, Болгарка.ру, Прогресс-М, ArtStep, MC-Bauchemie, Два капитана, Трак-Парнас, MSS (МотоСпортСервис), Monomax.

Рекомендации (за период): Алексей Бахтиаров, Анна Зябрева, Василий Стешин, Юрий Вайсман, Сергей Пуликов, Юрий Ветров, Василий Лоскутов, Тимофей Квачёв, Юрий Шиляев.


Юмисофт: 2010-2012

Компания “Юмисофт” – это более чем 150 000 внедрений по всей России, и более 2 000 компаний-разработчиков сайтов в партнёрской сети (пресс-релиз).

Активным посетителям интернет-конференций будет интересно знать, что “Юмисофт” – ежегодный участник РИФа (в Москве) и со-организатор СПИКа (в СПб), а я был регулярным докладчиком и ведущим секций.

Как я пришёл в Юмисофт:

Я не участвовал в создании UMI.CMS, а пришёл в эту компанию в 2010 году на должность менеджера по развитию, и спустя два месяца поменял должность на “технический директор”.

За некоторое время до этого я впервые столкнулся с UMI, работая руководителем подразделения по разработке сайтов в компании “Артикс”. Освоение тогда ещё сырых младших версий UMI.CMS было достаточно затруднительным, что в конечном итоге послужило сильным мотивирующим фактором для прихода в Юмисофт — чтобы «сделать всё как надо». И мне это удалось.

Что я сделал в Юмисофте:

  • руководил развитием основного продукта – системы управления сайтами UMI.CMS;
  • поставил стабильный процесс разработки продукта, в том числе автоматическое обновление продукта (на серверах клиентов) и автоматизированное тестирование программного кода;
  • создал UMI.Framework;
  • создал сообщество коллективной разработки UMI.Hub вокруг платформы UMI.CMS;
  • сократил в 10 раз поток заявок от пользователей о “багах” и недостатках;
  • обеспечил регулярный график выхода новых релизов продукта и несравнимую стабильность автоматического обновления клиентов;
  • вёл переговоры с ключевыми партнёрами и клиентами;
  • контролировал архитектуру продукта (его новой функциональности) с точки зрения технологической и экономической зрелости;
  • контролировал соблюдение всей цепочки производства: от постановки задач до сдачи в эксплуатацию;
  • координировал работы по официальному сайту компании;
  • собеседовал и нанимал персонал, за два года обновив почти половину команды без потерь эффективности;
  • участвовал в конференциях как ведущий секции и докладчик;
  • курировал технологическое обеспечение компании (оборудование офиса, интернет, телефония, сервера, бэкапы, инфраструктура, в том числе переезды в новые офисы);
  • занимался оптимизацией серверной архитектуры дочернего продукта UMI.Cloud в условиях высокой нагрузки (highload), непосредственно участвовал в запуске и развитии сервиса UMI.Ru.

 

Спустя два года в Юмисофте

Изначально моя личная миссия в Юмисофте заключалась в том, чтобы устранить все исторически сложившиеся недостатки продукта UMI.CMS, и сделать его технически зрелым и популярным как известный фреймворк Ruby on Rails – то есть развивать продукт как полноценный и “взрослый” инструмент для разработчиков долгосрочных и технологичных веб-проектов.

Один из моих важных шагов на этом пути – первая версия UMI.Framework, призванного заменить избыточную сложность API и XSLT-шаблонизатора UMI.CMS, и дать возможность работать с системой в чистом PHP-синтаксисе – что является де-факто стандартом в разработке высоконагруженных (highload) проектов.

Второй важный шаг – создание социального сообщества UMI.Hub (по аналогии с gitHub) – системы, которая объединяет разработчиков проектов на UMI и предоставляет им технологическую платформу для совместного развития модулей и готовых решений на UMI.CMS.

Другие результаты моей работы в Юмисофте здесь и здесь.

В 2012 году руководство компании продолжало придерживаться курса развития UMI.CMS как закрытого проприетарного продукта, развиваемого крайне небольшой группой людей. В то время как успешные современные продукты (в том числе коммерческие), предназначенные для разработчиков, развиваются открытыми opensource-сообществами (даже Microsoft).

Кроме того, компания не сочла приоритетным исправление изначально неудачной архитектуры самого продукта, и вместо того чтобы развиваться на рынке технически сложных долгосрочных веб-проектов – понизила свои амбиции до рынка небольших малофункциональных “сайтов-визиток” (в частности конструктора сайтов “Umi.Ru”), тем самым значительно уступив место на рынке лидеру “1C-Битрикс”.

Эта политика компании значительно противоречила моему видению бизнеса “коробочных CMS” и моему видению деятельности конкурентов. В июле 2012 года я покинул Юмисофт.

Сергей Котырев, генеральный директор Юмисофта, отметил что за 2012 год продажи компании возросли на 50%, а также в публичном выступлении признал правильными те идеи и ценности, которые я вкладывал в компанию за период своей работы.

В самом конце 2013 года Юмисофт проанонсировал начатый мной UMI.Framework, с тех пор значительно доработанный (и выпущенный в open source), как основу нового продукта UMI.CMS 3.0.

К 2014 году стало очевидно, что компания действительно доросла до тех идей и ценностей, которые я вкладывал в неё за прошедшие годы. Продукт плавно трансформируется из закрытого проприетарного в открытый open-source фреймворк, развиваемый активным сообществом, а его новая версия разработана в соответствии с общемировыми стандартами и принципами.

Рекомендации: Сергей Котырев, Эдуард Андреев, Антон Солончук, Станислав Голензовский.


Фотострана: 2012-2013

С июля 2012 года я отвечал за стабильную работу внешних приложений и игр в проекте Фотострана, и занимался внедрением процессов автоматизированного тестирования в этой компании. Фотострана – это не просто сайт знакомств, это огромнейший комплекс развлекательных сервисов, каждый со своей моделью монетизации.

Чтобы оценить масштабы этого проекта, достаточно узнать цифры: более 200 серверов, 30 миллионов пользователей, целый штат системных администраторов (данные в открытых источниках). Каждую секунду Фотострана обслуживает 2500 запросов (не считая «статики»). Такой объём проекта требует кардинально особых методов менеджмента, проектирования, архитектуры, разработки и тестирования программного кода.

Что я сделал в Фотостране:

В этом проекте моя роль не только административная, я также непосредственно занимался разработкой (написанием кода и рефакторингом) функционала, связанного с обслуживанием внешних игр и приложений. Это в первую очередь API Фотостраны в целом, API мобильных приложений, системы отправки PUSH-нотификаций, механизмы переноса приложений из «Вконтакте» и другие связанные с этим задачи.

Я работал бок о бок с людьми, которые администрируют этот гигантский парк серверов, проектируют и пишут собственные модули к PHP, разрабатывают своё собственное ПО для таких задач как shared queue и key-value storage, разбирают каждую функцию кода и каждый SQL-запрос по мельчайшим деталям. За прошедшие полгода я получил уникальный практический опыт highload-проекта “изнутри”, который невозможно почерпнуть из конференций или книг.

Я также занимался внедрением автоматизированного тестирования в проекте Фотострана. Я разработал и запустил базовый тестирующий комплекс, и привлёк к этой работе энтузиастов из других отделов. Наша деятельность оказала столь заметный положительный эффект на производство продукта, что в начале 2013 года инвесторы приняли решение о внедрении автоматизированного тестирования во всей компании.

В апреле 2013 года я покинул Фотострану, найдя для себя более интересный и перспективный проект. В наследство Фотостране я оставил работающий программный комплекс по тестированию и непрерывной интеграции, обученную группу энтузиастов-разработчиков, а так же большой объём документации и рекомендаций по дальнейшему внедрению этих процессов в масштабах всей компании.

Рекомендации: Рустам Нарманов, Илья Королёв, Роман Лукманов.


Спринтхост: 2013-2014

В апреле 2013 года мне предложили руководящую должность в компании Спринтхост. Это российская хостинговая компания, действующая с 2005 года и занимающая средние позиции на рынке хостеров в Рунете. Владельцы компании заявили очень высокие и серьёзные амбиции: разработать крупный собственный продукт – Платформу управления хостингом, сопоставимую по масштабам и возможностям с Amazon AWS. Которая не только обеспечивала бы нужды бизнеса Спринтхоста и его клиентов, но и предоставляла бы решение всего комплекса задач реселлерам, организующим свой хостинговый бизнес, по моделям SAAS и IAAS.

В числе следующих задач был запланирован более широкий захват рынка веб-разработки, в котором роль хостера значительно расширялась от “просто площадки для размещения сайта” до предоставления рынку инструментов полного цикла: от планирования, проектирования, разработки веб-проекта до его размещения, обновления, поддержки и продвижения.

Требовалось создать инструменты, предоставляющие на российский рынок функционал, сопоставимый с зарубежными Amazon Web Services, GitHub, Heroku, Travis, Jelastic и другими, содержащий в себе комплексные решения по виртуализации, поддержке окружений веб-разработки, коммуникации рабочих команд, планированию, автоматизированному тестированию, деплою и поддержке крупных веб-проектов.

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

Чтобы подойти к решению такого большого комплекса задач сравнительно небольшими силами, требовалось спроектировать и разработать такую программную архитектуру, которая будет способна плавно расширяться в течение многих лет (без необходимости фундаментальных переделок), поддерживать работу миллионов пользователей, производить параллельные вычисления с максимально возможной скоростью, легко масштабироваться в кластере и “переживать” сбои любых своих узлов без потери протекающих процессов.

Я спроектировал такую архитектуру согласно принципам SOA, заложенным в фундаменте Amazon, и она была реализована и внедрена в течение первых 6 месяцев силами нашей команды. Вот лишь несколько её экономических и технологических преимуществ:

низкий порог вхождения: используется язык PHP в чистом виде, и другие широко известные инструменты, не требующие длительного освоения или обучения;
разделение архитектурных уровней: прикладной программист пишет свой код, решая частные конкретные задачи и не задумывась о реализации параллельности и масштабировании, а системный программист обеспечивает их в фундаменте системы;
естественная реализация бизнес-процессов реального мира: все процессы описываются не абстрактным “объектно-ориентированным” программированием, а естественной логикой событий и реакций на них, максимально приближенной к тому как человек воспринимает реальный мир;
низкая стоимость владения: благодаря лёгкой внутренней коммуникации, сложность системы остаётся в разумных пределах даже при построении разветвлённых логических цепочек;
надежность: платформа не использует HTTP, а все коммуникации (как внутри, так и между платформой и “клиентом”) производятся по двусторонним каналам связи с поддержкой транзакционности доставки;
параллельные вычисления: платформа предоставляет фундаментальные возможности параллельно (в несколько потоков) вычислять как одно и то же действие разных бизнес-процессов, так и несколько “ветвей” одного сложного бизнес-процесса – одновременно, на одной или нескольких машинах;
обработка больших объёмов данных: благодаря естественной работе с “очередями сообщений” и шардингу данных, платформа не теряет стабильности даже при кратковременных перегрузках выделенной мощности;
масштабирование: платформа легко абстрагируется от “железа”, и может работать как на одном сервере, так и на кластере любого размера без ограничений, а введение нового сервера (как и отключение любого узла) происходит проще и надёжнее аналогичных действий в “типичных” HTTP-кластерах;
скорость: пропускная способность платформы стабильно удерживалась на уровне 3000 запросов на один виртуальный сервер, и пропорционально росла с ростом числа серверов;
отказоустойчивость: платформа была организована так, чтобы не терять ни единого запроса (от “клиента” или внутренних) при любых пропаданиях связи, перебоях, отключениях, падении или остановке компонентов, а при исправлении ситуации все “приостановленные” процессы продолжали протекать дальше.

В целом платформа представляла собой облачную вычислительную среду, в которую загружались исполнительные программы (сервисы), а платформа обеспечивала их коммуникацию, масштабирование и отказоустойчивость. В ноябре 2013 года в качестве пилотного проекта для испытания Платформы в реальных условиях был запущен сервис Спринтсайт.

Помимо собственно проектирования и разработки облачного продукта, было сделано:

– проведены собеседования с более чем несколькими десятками кандидатов, и собрана профессиональная сбалансированная команда;
– поставлен технологический процесс разработки, от планирования и постановки задач до автоматизированного тестирования и непрерывной интеграции;
– внедрены инструменты анализа кода (статический анализ, контроль роста цикломатической сложности, поиск неиспользуемого кода и т.д.);
– внедрены инструменты автоматического деплоя-отката обновлений, не только для нового продукта, но и для имеющихся разработок компании;
– расширены системы мониторинга и анализа технических и маркетинговых показателей статистики;
– внедрены системы управления конфигурациями и окружениями;
– полностью переписана и заменена вся система DNS хостинга Спринтхоста.

Однако к концу года стало очевидно, что компания явно переоценила свои возможности и заявила слишком высокие амбиции. Спринтхост оказался недостаточно готов к построению Платформы как enterprise-продукта с длительным циклом разработки, требующего большого объёма проектирования, экспериментов, проб и ошибок. Компания в реальности больше нуждалась в решении более простых задач с короткими сроками внедрения.

Произошли кадровые перестановки, персонал был сокращён, и в конце декабря 2013 года мы мирно завершили отношения со Спринтхостом, оговорив предложение о возможном сотрудничестве в будущем. Компанию покинули её технический директор и значительная часть разработчиков.

На тот момент на российском рынке существовали два жизнеспособных конкурента – Yandex.Cocaine, используемый во внутренней инфраструктуре Яндекса, который в течение 2013 года значительно отставал по своей функциональности от нашего продукта. А так же Infobox, интегрировавший в себя Jelastic для предоставления услуг по управлению виртуальными девелоперскими окружениями. В настоящее время (2015 год) часть аналогичных функций, связанных с межсервисными коммуникациями, предоставляют Crossbar и Apache Storm.

Рекомендации: Олег Петрачёв, Филипп Кулин.


Торговый дом “Эра”: 2014-2015

В начале 2014 года меня пригласили возглавить отдел разработки во вновь создающемся IT-подразделении “оффлайновой” компании “Торговый дом Эра”, занимающейся поставками и розничной продажей товаров бытовой химии и косметики. Руководство заявляло достаточно высокие амбиции и цели: сделать группу интернет-магазинов по розничной продаже и социальную сеть для покупателей, интегрироваться с торговыми терминалами и устройствами IoT, разработать мобильные интерфейсы для планшетов складских работников и тому подобное.

Я составил общий план проектов и план найма персонала (порядка 25 технических позиций), получил подтверждение от инвесторов и приступил к работе. С самого начала работа в компании стала более напоминать неудачный стартап, чем IT-подразделение с инвестициями: офис в промзоне действующего завода, закупки питьевой воды и канцоваров за свой счёт, отсутствие элементарной вентиляции и кондиционеров, длительные отключения водоснабжения в здании.

Отдел кадров головной компании также не функционировал в нашу пользу: благодаря личным знакомствам, мне удалось найти нескольких человек (из 25 требуемых позиций), после чего инвесторы заявили о прекращении дальнейшего найма.

Наш управляющий менеджер регулярно менял курс развития: команда начала разрабатывать интернет-магазин, затем переключилась на развитие SOA-архитектуры для обработки данных, затем на web-based чат (который позиционировался на замену skype в компании), затем на систему учёта товаров (вместо внедрённого SAP), затем на “универсальное хранилище данных” на базе EAV-модели, затем на систему построения бизнес-процессов и геймификации. Однако спустя несколько месяцев работы выяснилось, что в головной компании вообще нет спроса на нашу продукцию, а наш управляющий менеджер по сути, вероятно, просто “осваивает бюджет”. Не имея желания ввязываться в “подковёрные игры”, а также по очевидным нравственным соображениям, я покинул проект.

Результаты моей работы в “Эре”:

– сформированы две рабочие группы;
– организована внешняя и внутренняя инфраструктура (сервера, локальные сети, бэкапы, хранение данных);
– внедрён набор инструментов разработки и управления (стэк Atlassian + инструменты для CI и деплоя);
– реализована двусторонняя трансляция данных интернет-магазина и программы лояльности из учётной системы компании (SAP) и обратно;
– спроектирована и разработана система ввода и хранения данных о товарах на основе EAV-модели, включая поиск по произвольной комбинации атрибутов, систему ограничения прав доступа, переходы состояний и т.д.;
– мной лично разработан фундамент (бэкэнд на ruby on rails) для системы управления бизнес-процессами.

Система управления бизнес-процессами предназначалась для отслеживания фактических путей коммуникации между участниками бизнес-процессов (например, сотрудниками компании, или узлами логистической цепочки грузоперевозок), вычисления наиболее популярных из них, и конструирования на их основе гибких процессов с выраженными условиями входа и выхода документов на каждой ключевой точке. А система ввода информации о товарах, благодаря заложенной в ней гибкости и контроля процесса, позволила сократить срок путь “от поставщика до полки магазина” в несколько раз.

Рекомендации: Александр Волочнев, Антон Уткин, Иван Куц.


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

Напишите мне и расскажите о вашем проекте.