Обо мне

Много лет на perl, отдельные системные задачи на С, потом плотно PHP. Осознание ООП, SOLID. Уважение к DDD. Фреймворки Yii1, потом Symfony 2. Отдельные проекты на Yii2 и Laravel.

По СУБД - много PostgreSQL и MySQL. Предпочитаю PostgreSQL (частичные индексы, индексы по выражению, подробный explain, json/hstore, GIN и GiST индексы, транзакционная схема, оконные функции).

В клиентской разработке слежу за тенденциями и технологиями на уровне экспертизы. Верстка - правлю готовое, разбираюсь в технологиях, но с нуля верстать желания нет. В JavaScript есть опыт с Backbone + Marionette. Меньше опыта с React, redux, интерес к TypeScript, идеям flux.

Знание Linux уровня среднего администратора, могу настроить и администрировать веб-сервера, сервера баз данных, сервера разработки и т.п. Кластерная архитектура, репликации, виртуализация, немного настройка под хайлоад. Создание среды разработки на базе vagrant, знание ansible; с docker опыта меньше.

В идеале ищу работу с возможностью применять весь накопленных багаж знаний с возможностью принимать технические решения (Tech lead, CTO). "Работа руками" только приветствуется, как в программировании, так и в серверном администрировании.

Участие в профессиональных сообществах
Опыт работы
Ноябрь 2009 — по настоящее время (8 лет)
Технический директор (Team Leader / Lead Architect)
Москва
Обязанности и достижения

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

Не смотря на большое количество административных ролей, перечисленных ниже, собственно архитектура и разработка (написание кода) составляла в среднем 50% времени, доходя до 80%. В основном серверная разработка на PHP. Фреймворки Yii1, Yii2, Laravel, Symfony. Базы данных: MySQL, PostgreSQL, Redis, ElasticSearch. Хорошее знание теории программирования (ООП, паттерны, SOLID, DDD). Рассматриваю предложения не только административные, но и (и даже в первую очередь) работу руками в роли Team Lead / Lead Architect.

Как руководитель разработки студии выполнял несколько ролей.

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

Product Owner. Накопленный багаж знаний бизнеса заказчика и последующее активное с ним взаимодействие выводило меня на роль product owner-а. К сожалению, в большинстве случаев эта роль взаимодействовала с моей же ролью Team Lead, что неправильно из-за конфликта интересов.

Lead Architect. Построение конечной программно-аппаратной архитектуры продукта. Выбор решений и ПО. Согласование интеграции в системы заказчика.

Team Lead / Ведущий разработчик. По возможности группа разработки формировалась с выделением отдельных тимов на фронт и бек. Однако, это удавалось сделать не всегда и не по всем проектам. По-этому, роль ведущего разработчика и даже просто разработчика приходилось на себе примерять часто. Так же всегда выполнял роль своеобразного ментора по основным концепциям программирования. Много времени уделяется качественному проектированию кода (паттерны проектирования, SOLID, DDD).

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

DevOps. Создание инфраструктуры разработки и последующего деплоя на сервера заказчика было полностью в моей ответственности.

Ключевые слова:

Процесс работы: redmine, basecamp, youtrack, git, svn, vagrant, phpstorm, upsource, confluence

Решения и разработка: nginx, php, yii1, yii2, laravel5, symfony2, sphinx, memcache, mysql, postgresql, redis, elasticsearch, SOAP, backbone, marionette, react и многое другое.

Октябрь 2006 — Январь 2010 (3 года и 4 месяца)
Автокомьюнити
Технический руководитель
Москва
Обязанности и достижения

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

Решались вопросы архитектуры серверной части: распределение нагрузки, HA, кластер на базе heartbeat + crm(pacemaker)), балансировка, репликация данных. Запуск в работу и эксплуатация железной части (fc, multipath, сервера, cisco + взаимодействие с датацетром).

Разработка программной части велась командой из 3-х человек (я, серверный разработчик, фронт). Занимался общей архитектурой сайта и сервисов, адаптацией под возможности базы данных (postgresql). Были заложено кеширование данных на нескольких уровнях абстракции, плавная адаптация готовых продуктов под растущие нагрузки.

Плотно познакомился с PostgreSQL, поверхностно с slony, pgPool, pgcluster (cyberclaster). Конечно же memcache, noSQL, средства кеширования в nginx.

Август 2005 — Сентябрь 2006 (1 год и 2 месяца)
Quickline
Руководитель проекта
Москва
Обязанности и достижения

Пришел как владеющий скилами виртуального хостинга под новое направление хостинга и колокейшена.

Создание хостинговой платформы для виртуального хостинга + набор SaaS услуг (выбор решений, программирование, настройка серверов и скриптовой обвязки). Решения: qmail, vpopmail, Horde, ldap, nginx, apache (был написан mod_aclr для апача).

Участие в проектировании ЦОД, разработка решений для предоставления услуг виртуального хостинга, колокейшена. Участие в разработке бизнес-процесса предоставления подобных услуг и контроль его хода.

Было очень познавательно с точки зрения технологий построения ЦОД, систем охлаждения и питания и т.п. Помогло в дальнейшем при участии в отдельном проекте создания датацентра при участии группы проф. сервиса APC.

Август 2004 — Август 2005 (1 год и 1 месяц)
Лауд-Линк
Системный администратор
Москва
Обязанности и достижения
Активное сетевое оборудование, VoIP, интранет, IT обеспечение работы офиса.
Январь 2000 — Январь 2002 (2 года и 1 месяц)
Sub Service
IT менеджер, партнер
Москва
Обязанности и достижения

Виртуальный хостинг. Мини-стартап из двух человек. ПО для панели управления и биллинга (Perl). Скриптовая обвязка управления серверами. Иная разработка сайтов по заказам (Perl). Администрирование работы персонала и контроль процесса предоставления услуги. Настройка и администрирование сервера хостинга.

Высшее образование
Январь 1994 — Январь 2000
МГИЭМ
Электроники; ФЭ
Москва
Специализация и достижения

Электроника и микроэлектроника