36 лет (родился 25 апреля 1987), cостоит в браке, есть дети
Новокузнецк, готов к переезду, готов к командировкам
Занятость
полная занятость
Гражданство
Россия
Фото, имя и контакты доступны только авторизованным пользователям
Опыт работы 16 лет и 10 месяцев
Август 2009 – работает сейчас
14 лет и 8 месяцев
PHP-разработчик, ведущий PHP-разработчик, начальник технического отдела
Web-студия "I-complex", Новокузнецк
Обязанности:
Разработка и поддержка собственных проектов организации: туристического портала, стоматологического портала, сайта-каталога косметологий, салонов красоты и пластических клиник, сайта по аренде жилья посуточно
Июнь 2007 – июль 2009
2 года и 2 месяца
PHP-разработчик
РИА "Инфомаркет", Павлодар
Обязанности:
Разработка сайтов на заказ на CMS собственного авторства (разработано более 50 сайтов, в том числе областная система гос. тендеров и API для внедрения ее на персональные сайты гос. организаций)
Образование
Высшее образование
Дневная/Очная
2009
Инновационный Евразийский Университет
Факультет: Автоматизация систем управления и связи
Специальность: Вычислительная техника и программное обеспечение
Обо мне
Профессиональные навыки:
В процессе работы был разработан MVC-фреймворк для внутреннего использования. Возможности фреймворка:
ORM на основе Active Record с Identity Map
DAO с возможность использования Data Mapper
Схемы и репозитории для моделей
Collection — итераторы для моделей
Роутинг на основе регулярных выражений
Возможность изменения источника моделей
Возможность использования генераторов последовательности для первичных ключей моделей
Система отправки сообщений с возможностью подмены провайдера (отправка через send mail, smtp, sms, xmpp и т.д)
Система фабрик моделей, model proxy
Модульность
Cli для базовых операций:
Развертывание нового проекта
Подключение модуля
Создания моделей, контроллеров, схем моделей
Очистка кэша
Пересбор статики
Пересбор аннотаций
Импорт и экспорт моделей, синхронизация схем моделей
Создание и выполнение миграций
Создания и выполнение diff-миграций для моделей, пометка их выполнения для окружения
Выполнения сервисов и контролеров по имени или тэгу
прочее
Система пользовательских ошибок
Трасировщик выполнения скрипта
Упаковщики статических файлов (по схеме и из контроллеров)
Автоматическое создание css-спрайтов
Горизонтальное масштабирование посредством генератора первичных ключей (для сервера можно указать диапазон первичных ключей)
Окружения
Unit of work для работы с запросами
Конструктор запросов с sql-подобным синтаксисом
Трансляторы запросов для mysql, mongo, redis и файлового хранилища
Управление правами доступа на основе ACL или RBAC
Система аннотаций для моделей, контроллеров и сервисов
Источники данных без привязки к конкретной системе хранения
Слой отображения без привязки к шаблонизатору
Кэширование результатов выполнения функций, данных через провайдеры, результатов запросов к источнику данных, результатов работы view, блоков кода во view
Девалидация кэша по тэгам, времени, хитам и условию
Ротация кэша по ключу
Декорирование контроллеров по средствам фильтров и валидаторов
Валидаторы данных и моделей
Система событий
Автоматически генерируемая CRUD-система администрирования с поддержкой плагинов
Система миграций (наподобие ruby rake)
Diff-миграции для моделей на основе схемы модели и источника данных
Кодогенерация для миграций, схем, моделей и контроллеров
Система пре- и пост-фильтров для моделей и коллекций
Система конфигураций для объектов
Service locator и dependency injection container
Инъекция сервисов через контект, setter, поле и аргумент метода
Планировщик для выполнения контроллеров и сервисов
Система прогрева кэша
Система автоматического тестирования выхода контроллера (через изолированный источник данных, наполняемый по схеме)
Работы по vipgeo.ru (туристический портал):
Реализация проекта с нуля
Система препроцессинга данных для сайта (главная страница при прогретом кэше получается в 1 запрос)
Система рассылок туров, реализованная через сессии рассылки и задания, выполняемые через планировщик
Поиск через sphinxsearch с созданием и подготовкой индексов для разных типов данных (фабрика индексов, sphinx индексировал уже подготовленные данные)
Индексация контента сайта для автоматической перелинковки страниц
SEO-утилиты: управления счетчиками, заголовками, robots.txt
Система баннеров с ротацией
Jabber-чат для соц. сети (в последствие переписан на nodejs + socket.io)
Система автоматического парсинга туров
Парсинг погоды, авиабилетов и прочего
Поиск туров и авиабилетов
Система для автоматической синхронизации данных между mysql и mongo
Api на внешние сайты для поиска попутчиков
Система оповещения пользователей о событиях соц. сети (nodejs + socket.io)
Бэкэнд для десктопной утилиты турфирм (nodejs)
Бэкэнд для системы достижений (achievement)
Авторизация и регистрация, авторизация через одноразовый токен и loginza
Разработка js-шаблонизатора с синтаксисом smarty
Работы по biokrasota.ru (каталог косметологий, салонов красоты, пластических клиник Москвы):
Реализация проекта с нуля
Система препроцессинга блоков сайта, упаковка некторых блоков в js, с последующей допоковкой в общий файл js по городам
Система уведомлений для соц. сети
Чат для соц. сети (nodejs + socket.io)
Форум
Поиск организаций
Предрасчитанные сеты данных в redis для оптимизации поиска организаций
Работы с 32top.ru (стоматологический портал):
Полный реинжиниринг сайта и оптимизация
Препроцессинг блоков
Расширяемая система поиска организаций, реализованная через стратегии (поисковые процессоры)
Событийная модель для модерации изменений клиник и докторов
Работы по indexrobot.ru (сервис для индексации и проверки доступности сайтов):
Реализации базового функционала сканирования и индексации: сессии сканирования и индексации, ресурсы, проблемы
Мультипроцессорность и взаимодействие процессов
Маски и фильтры (сканирование ресурсов определенного типо, сканирование по маске урла и прочее)
Хосты и атрибуты хостов (настройки для отдельных сайтов)
Система метрик и оповещений (виды проверок ресурсов, оповещение в случае проблем)
Работы по gdekvartira.su (аренда жилья посуточно):
Разработка ядра биллинг-системы
Профессиональные навыки
Экспертный уровень знаний php5
Писал расширения для php
Хороший уровень владения javascript, писал на nodejs
Уверенное владение mysql
Умею применить денормализацию, когда это нужно (т.е. почти всегда)
Базовое владение mongodb, redis
Начальный уровень в python, c/c++
Имею представление об алгоритмах и структурах данных
Хорошее понимания шаблонов проектирование, практика их применения
Придерживаюсь стандартов кодирования (сейчас PHP PSR, раньше PEAR)
Знаю, что такое чистый код
Базовое знание основных php-фреймворков (Symfony, Zend Framework, Yii)
Понимаю и применяю: SOLID, YAGNI, KISS, DRY, GRASP
Умею писать unit-тесты, применял: PHPUnit (Mock, Selenium, Db), vfs
Применял TDD
Базовое владение UML, WSDL
Опыт применения SOAP
Понимаю, что такое масштрабирование и оптимизация Интернет-проектов
Владею командной строкой Linux, что-то не особо сложное могу написать на bash
Могу настроить: apache2, nginx, php5-fpm, mysql, haproxy, varnishd, bind9 и прочее
Использовал zabbix
Пытался внедрить hudson (jenkins)
Умею использовать phing
Хорошо владею шаблонизатором smarty
Искал через sphinxsearch
Понимания того, что такое метрики кода, знание инструментов для их подсчета
Опыт командной разработки: умею использовать VCS (svn, git, mercurial), пользуюсь project/issue-tracker (trac, mantis, redmine)
Опыт управления небольшой командой разработчиков (12 человек)
Пытался внедрить scrum и почти получилось
Опыт проведения code review (использую review board)
Проводил для своей команды семинары, тренинги, хакатоны
Дополнительные сведения:
Опыт промышленного программирования 6 лет. Желание работать в команде профессионалов.
Иностранные языки
Английский язык — технический
Фото, имя и контакты доступны только авторизованным пользователям