Профессиональные навыки
Опыт работы
Апрель 2012 — по настоящее время
ООО "ЦМИ"
Специалист ИТ-отдела, Системный программист
Москва
Обязанности и достижения

Занимался разработкой веб-ориентированной системы для управления задачами по сбору маркетинговых данных, их хранения и обработки. В круг моих обязанностей входила разработка внутренних и внешних сервисов, web-интерфейсов, их настройка и интеграция. Система состояла из нескольких крупных звеньев, каждое из которых выполняло свой класс задач:1. Сервер транзакций - высоконагруженный распределенный сервис, реализующий задачи по гарантированной доставке данных в условиях плохой связи во внешних сетях (мобильный интернет). HTTP API сервера спроектировано c применением архитектурных принципов REST.2. Монитор репликаций - выполняет контроль за состоянием системы: проверяет состояние текущих репликаций между узлами в системе. В случае падения репликаций пытается поднять их заново.3. Сервис репликации CouchDB - PostgreSQL - сервис, поддерживающий стандартный протокол репликаций CouchDB, и выполняющий задачи по переносу данных из CouchDB в PostgreSQL с заданной схемой обработки по пользовательским метаданным.4. Система управления задачами. - web-интерфейс к CouchDB, написанный на JavaScript с применением фреймворка ExtJS.5. Система визуализации и управления задачами - сервер приложений + веб-интерфейс. Серверная и клиентские части написаны на JavScript: nodejs + KendoUI.Стек технологий:server-side:- Erlang/OTP (mochiweb, mongo-erlang, epgsql, poolboy, mnesia);- Python; (couchdbkit + restkit, pyramid, relatorio)- NodeJS (express, ejs);client-side (JavaScript):- HTML5 + jQuery + KendoUI;- ExtJS;no-sql databases:- MongoDB;- CouchDB;sql-databases:- PostgreSQL;- MySQL;integration/communication components;- ZeroMQ;Другие достижения:- перевод проектов с svn на git;- внедрение практики рецензирования кода (code reviews);- внедрение регулярного документирования кода, написание автоматических тестов и спецификаций;- отказ от использования PHP (система визуализации была первоначально написана на PHP/Kohana), замена PHP на nodejs.

Сентябрь 2010 — Апрель 2012
ООО АтланИТ
Web-разработчик
Москва
Обязанности и достижения

Занимался разработкой веб-приложений, основными задачами которых являются обработка и представление информации в различных видах (табличный вид, в виде древовидных структур, календарные планы, диаграмма Гантта). Работал над двумя проектам, суть которых заключалась в разработке интерфейсной части в web для баз данных и для разрабатываемого на тот момент сервера приложений. Также занимался разработкой браузерного картографического движка с применением MapServer'а, с целью применения оного в вышеуказанных проектах. В ходе работы были выработаны оптимальные архитектурные и концептуальные решения для каждого проекта.В ходе работе ввел частично Continuous Integration - автоматическое тестирование и сборку проектов (компоновка и сборка скриптов на js и упаковка их в дистрибутив вместе с исходными текстами на языке Python). Хорошо знаком с системой контроля версий GIT.За год работы хорошо освоил операционную систему Linux, имеют опыт работы с дистрибутивами Debian и Ubuntu, но есть желание попробовать и другие дистрибутивы. Хорошо изучены различные спецификации (HTTP1.1, Basic and Digest Access Authentication, WSGI), усвоил большинство паттернов проектирования и выработал навыки их применения, а также выявлял свои собственные паттерны, которые я осознанно или неосознанно применял. Выработан собственный подход к проектированию и реализации приложений с соблюдением архитектурного подхода REST и REST+AJAX.Основные инструменты разработки:Язык программирования: Pythonбиблиотеки\фреймворки:Pylons, Pyramid, Django, CherryPy, (также изучал стандарт WSGI, интересовался вопросами низкоуровневого web-программирования, асинхронного программирования с применением Twisted, Tornado, асинхронного WSGI). wxWidgets (писал небольшие домашние приложения и небольшие утилиты по работе), SQLAlchemy, SQLObject.Язык программирования: JavaScriptбиблиотеки фреймворки:NodeJS, QooxDoo, ExtJs, jQuery, KendoUI, DHTMLX. Также имеются знания HTML4/5, CSS.