Обо мне

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

Много лет на perl, отдельные системные задачи на С, потом плотно перешел на PHP. Активное изучение принципов и практик программирования. Понимание, что такое ООП, на что он направлен. Активное изучение и использование различных принципов и практик разработки (SOLID, DDD и т.п.). По фреймворкам последнее время Yii1 и потом Symfony 2. Отдельные проекты на Yii2 и Laravel.

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

В клиентской разработке слежу за тенденциями и технологиями на уровне экспертизы. Верстка - правлю готовое, разбираюсь в технологиях, но с нуля сверстать большого опыта нет, желания тоже. В JavaScript есть опыт с современными фреймворками (backbone, marionette). Есть интерес к TypeScript, идеям flux и фреймворку React + React Native, но опыта мало.

Знание Linux и всех необходимых сервисов для веб-сервера, сервера баз данных, серверов разработки (SSO и т.п.) и немного больше. Могу построить все это с нуля и администрировать. Кластерная архитектура, репликации, виртуализация, немного настройка под хайлоад.

DevOps: создание среды разработки на базе vagrant, знание ansible; с docker опыта меньше.

Есть средний опыт в проектировании серверной и программной архитектуры под высокие нагрузки. Кеширование, шардирование, репликация и прочие умные слова. Ходил на первые highload конференции и т.п.

Так же, как показала долгая практика CTO в студии, присутствует способность разговаривать на одном языке как со всем спектром веб-разработчиков (фронт, бек), так и с product owner.

Опыт работы
Ноябрь 2009 — по настоящее время (7 лет и 7 месяцев)
Главный инженер (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 года и 3 месяца)
Автокомьюнити
Технический руководитель
Москва
Обязанности и достижения

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

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

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

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

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

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

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

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

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

Август 2004 — Август 2005 (1 год)
Лауд-Линк
Системный администратор
Москва
Обязанности и достижения

Активное сетевое оборудование, VoIP, интранет, IT обеспечение работы офиса.

Январь 2000 — Январь 2002 (2 года)
Sub Service
IT менеджер, партнер
Москва
Обязанности и достижения

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

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