Обо мне

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

Актуальный опыт (последние 4 года)

  • PHP/Symfony2
    Бандлы, сервисы, контроллеры, команды, миграции - тут все как обычно. Doctrine, FOS, Assetic, SymfonyExpressions. (Ранее Lithium, CakePHP)
  • Postgresql/pgBager/pooling
    База 200Gb+, Партицирование, шардинг, тонкости построения быстрого pagination по таблицам 50-70М записей.
  • Beanstalkd(MQ)
    Сервисы(воркеры) для: отправки email, экспорта/импорта пользовательских данных, приема/передачи сообщений от внешних систем (SMPP, Сервер синхронизации, Zappir, AWS S3 Sync, UserActions Log server, etc).
  • Node.js/Express.js/Socket.io
    Wrapper для REST API. Сервер синхронизации приложений, iOS, Android, JS WebApp синхронизируют свое состояние (данные пользователя) в режиме "online". Сервер синхронизации одновременно использует Beanstalkd(MQ), для общения с другими частями(сервисами) бэкенда и Socket.io для связи с браузером/проиложениями. Node.Cluster, Sticky session by userID mod NumOfProcessroCores. Бэкенд для Avenue 2.0 (API + SPA) с использованием Express.js, данные хранятся в MongoDB.
  • HTML/CSS/jQuery
    Верстаю валидно, кроссбраузерно(-ie), адптив, спрайты, иконочные шрифты. Twig, Bootstrap, любой jquery плагин. jQuery могу красиво модульно, а могу как на stackoverflow.
  • Javascript/Vue.js/Sugar.js
    SPA - SMS Chat, нечто вроде Whatsapp for Web, только отправляются/получаются реальные смс. Небольшой фреймворк (на основе паттерна Service Locator), Vue templates не хранятся в HTML, а рендерятся при билде приложения.
  • Cytoscape.js/D3.js
    Avenue 2.0 Система моделирования транспортных потоков и оптимизации координированных режимов управления. (Pet project). Не боюсь D3, Leaflet, Yandex.Maps, SVG/Canvas libs и прочие библиотеки.
  • C++
    Wrapper для REST API. Оптимизировали флоу приема/обработки sms/dlr под собственные нужды в Kannel
  • Java
    Twilio предоставляет только REST API для определения провайдера по номеру, многим клиентам хотелось проверять "in bulk", c использованием библиотеки parallec.io, был написан сервис на Java, на вход которого подается CSV файл, и с указанным rps долбит API Twilio. На выходе так же имеем CSV.
  • Composer/Npm/Gulp/Make/Bash
    Могу собрать, могу разобрать, скрипты автоматизации сборки/минификации и все такое.

Интересы
Новое. Проекты со сложной архитектурой, наукоемкие проекты, математическое/имитационное моделирование, machine learning, нейронные сети, искусственный/естественный интеллект.

Английский
Разговорный английский: pre-intermediate - хотелось бы подтянуть конечно, но читаю/пишу свободно/хорошо, ну и гугл если что.

Время
Часовой пояс UTC+6 Омск, рабочее время 40+ часов в неделю

Профессиональные навыки
Опыт работы
Октябрь 2013 — по настоящее время (4 года и 1 месяц)
textmagic.com
senior php developer
Омск
Обязанности и достижения
https://textmagic.com - Сервис в сфере СМС маркетинга. Клиенты из 200+ стран (основные UK, USA, CA, AU, DE, FR) Применяемые инструменты технологии: Postgresql, Symfony2, Doctrine2, Twig, jQuery, Beanstalkd, kannel, Node.js, C++, Websockets(socket.io), Flux + React.js Десятки API: Google, Nexmo, Twilio, Segment.io, Bugsnag, Blackfire.io, SendWithUs, .... и много всякого еще Backend: Архитектура приложения и базы данных, очереди смс сообщений, отправка, роутинг, доставка, оптимизация запросов, профайлинг, поиск магии в коде, патч kannel, миграции и работа с legacy в бд (очистка синхронизация данных и т.д.). Frontend: Верстка адаптивных шаблонов для web-app/chat (HTML+CSS), Чат на Flux + React.js REST API Wrappers: https://github.com/textmagic/textmagic-rest-cpp, https://github.com/textmagic/textmagic-rest-nodejs Прочее: Взаимодействие с outsource разработчиками/верстальщиками/дизайнерами. Постановка и контроль задач (Jira/Skype/Hipchat). Описание архитектуры и документация (Confluence). Создание и управление инфраструктурой репозитории и пакеты (bitbucket/github/npm/composer)
Август 2012 — Октябрь 2013 (1 год и 3 месяца)
eris-omsk.com
php developer
Омск
Обязанности и достижения
http://vitals.com - Сервис поиска докторов (USA) li3_task - Система управления обновлениями данных для сервиса Скоординированное выполнение задач на различных серверах. Перезапуск (смена конфигов) nginx, Вкл. выкл. репликации MongoDB, Индексация Solr, Генерация Sitemap для Google, загрузка данных в MongoDb. Применяемые инструменты технологии: Php, Lithium, MongoDB, Beanstalkd, JSON Особенности: Написание PHP Daemon, эффективные неумирающие скрипты на PHP(3-6 мес без перезапуска), Коммуникация между процессами c помощью BeanstalkD (очереди сообщений). http://sourcedb.health2con.com Загрузка и обработка данных из разнородных источников csv, xls в БД для отражения на сайте. Использовалось: ETL tool Talend DI, Mysql, Postrgesql, MongoDB Руководство 3 сотрудниками
Январь 2010 — Январь 2011 (1 год и 1 месяц)
php developer
Омск
Обязанности и достижения
http://miraf.ru Сайт Мираф-банка CakePHP Mysql, особенности, много нестандартный вещей, JS калькуляторы, авто определение региона, показ всего контента в зависимости от региона, интеграция с яндекс картами http://bn55.ru, mlsn.bn55.ru Сайт агенства Бюро недвижимости55 и система для ведения вариантов по недвижимости. Особенности: много AJAX, все данные по недвижимости вытаскиваются аяксом из мультилистинга, управление оформлением страниц сайта(пользователю доступна смена цветов, фонов и пр.) в зависимости от контента, фото-аудио-видео галереи, с возможностью легкой интеграции в страницы сайта. Интеграция с яндексом, авто "исправитель" "рукописных адресов", геолокация, отражение на карте. Руководство командой из 3х программистов + верстальщик. http://volleyprof.ru Cайт ВК Омичка, особенности: модуль команды, где связаны игроки в команды по сезонам, возможность отметить на общей фотографии игрока, при наведении подсвечивается информация о нем, интеграция с twitter, vkontakte, facebook, Регистрация и вход через Loginza, Автоматическое ведение(расчет места) таблиц соревнований, два языка. Очень сжатые сроки! CakePHP, MySql, jQuery
Январь 2010 — Май 2011 (1 год и 5 месяцев)
Rhinoda
php, wordpress, developer
Омск
Обязанности и достижения
http://c21media.net Сеть обмена видео-контентом между издателями и авторами(телепередачи, докфильмы и т.д.) Использовали: wordpress, pandastream.com, buddypress.org, mysql Особенности: Интеграция с сервисом оптимизации видео pandastream, перепиливали плагин buddypress. Руководство 3 сотрудниками
Февраль 2005 — Апрель 2006 (1 год и 3 месяца)
gorod55.ru
junior asp developer
Москва
Обязанности и достижения
http://gorod55.ru
Высшее образование
Сентябрь 2007 — Июнь 2010
ОмГУ
Компьютерных наук
Омск
Специализация и достижения
к.т.н. 05.13.18 Математическое моделирование, численные методы и комплексы программ
Сентябрь 2001 — Июнь 2007
ОмГТУ
Информационных технологий и компьютерных систем
Омск
Специализация и достижения
Бакалавр, магистр. Информационная вычислительная техника