Профессиональные навыки
Опыт работы
Декабрь 2014 — по настоящее время (2 года и 6 месяцев)
senior javascript developer
Санкт-Петербург
Обязанности и достижения

На этом месте работы я получил в наследство SPA на backbone.js: инструмент для анализа позиций доменов в поисковой выдаче.
Приложение пользуется большой популярностью у пользователей.
Если в двух словах: графики, таблицы, фильтры и куча мелких виджетов для удобства работы.

1. Основные обязанности.
На мне лежит весь спектр задач по развитию фронта: архитектура, поддержка, внедрение нового функционала, стратегия технического развития, верстка, сборка и т.д.

Основной используемый фреймворк: backbone.js + jQuery. Для графиков используется highcharts.js. А также: lodash, select2, etc.

Помимо основного приложения есть отдельное SPA (setup wizard), которое может использоваться отдельно.
Примечательно тем, что первую реализацию я сделал на react.js + fluxxor. Попытка оказалась неудачной, поэтому было переписано на backbone.js (что было правильно на тот момент в силу особенностей архитектуры и процессов, которые происходили в компании).

Сейчас я подготавливаю приложение под итеративное переписывание на react + redux.

1.1. Что примечательного было сделано с технической стороны:
- выделение приложения в отдельный репозиторий;
- es5 -> es6/7;
- обновление библиотек до актуальных версий;
- переделка сборки с grunt на webpack;
- внедрение jsDoc;
- внедрение jscs, eslint; обновление кодовой базы под стандарт;
- модернизация архитектуры, работа над legacy, рефакторинг;
- битвы с вебаком в условиях модульной архитектуры;
- разработка сервиса логгирования js-ошибок в браузере (отправка лога на бекенд(node.js), восстановление минифицированного кода по sourcemap, оправка результата в splunk). Ведутся работы над публикацией работы под opensource-лицензией.

2. Чем еще приходится заниматься
- организация виртуальной команды для работы над частью задач;
- фасилитация периодичных межкомандных митингов(совещаний) frontend-разработчиков; курирование задач; выполнение lead-обязанностей.
Обсуждение развития архитектуры всего сервиса.
- выступление на sprint review.

3. Как устроен рабочий процесс.
Agile, каноничный Scrum: двухнедельные спринты: planing, daily scrum, scrum master, scrum couches, sprint retrospective, etc.
Большая свобода у команды: найм/увольнение коллег, выбор технологий, формирование sprint backlog, etc.
И, соотвественно, на команде лежала и большая ответственность (uptime продукта, выпуск нового функционала, etc).
Команда обладает полным набором компетенций для поддержки и развития инструмента.

4. Особенности работы
Посколько я разрабатываю продукт для маркетологов, и их у нас в компании много, я часто работаю с фидбеком пользователей.

5. Инcтрументы
Trello, Jira, TeamCity, YouTrack, Google Sites, Google Calendar, Slack, Splunk, Open Stack, GitLab.

Июль 2013 — Декабрь 2014 (1 год и 5 месяцев)
Topface
Javascript developer
Санкт-Петербург
Обязанности и достижения

Чем приходилось заниматься.
Работал я в отделе монетизации и экспериментов. Задачи:
- прототипирование экспериментов;
- реализация успешных, удаление неудачных;
- поддержка клиентской части системы оплаты (куча разных провайдеров).

Рабочий процесс был построен по распространенной схеме:
1. менеджер придумывает задачу;
2. я эту задачу детально оцениваю;
3. согласовываем сроки/ТЗ до приемлимых;
4. реализация/тестирование задачи;
5. доставка до пользователя.
Большую часть времени работал в паре в backend-разработчиком.
После тестирования код всегда проходил ревью.

По технической части:
использовался backbone-подобный внутренний фреймворк. Из внешних библиотек - lodash. Внутренний клиент-серверный xml-шаблонизатор. Огромное количество legacy-кода.

Из интересных задач:
- анализ базовых классов и их потомков на предмет утечек памяти (нашел много интересного);
- система тестирования (ничего сложного: вопрос-ответ, хранилось всё в mongo);
- реализация идеи в рамках хакатона, которая позже стала частью основного фукционала;
- поддержка работоспособности приложения как в standlone варианте, так и в iframe в соцсетях (вк, fb, ok).

Август 2012 — Июль 2013 (11 месяцев)
ООО "Восстания 6"
Full stack web developer
Санкт-Петербург
Обязанности и достижения

Начало карьеры.
Разрабатывал онлайн-шахматы.

Был найден javascript-движок шахматного AI с небольшой обвязкой: простой интерфейс и возможность играть.

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

Основная работа заключалась в создании обвязки:
- внешний вид;
- работа с историей партии (save/load и т.п.);
- режим онлайн-игры с человеком;
- модернизация движка (отсутствовала возможность рокировки, режим шахмат Фишера)
- настройка "силы" AI

По технологиям:
на клиенте jQuery, на сервере php и база на mysql

Это было начало моей карьеры, поэтому все задачи были интересными.
На этом проекте я был единственным разработчиком.

http://logic-games.spb.ru/chess/

Май 2012 — Июль 2012 (2 месяца)
Стартап (на тот момент не было названия)
javascript developer
Санкт-Петербург
Обязанности и достижения

Стартап не имел названия. Делал CRM для диспетчеров такси.
Не использовалось никаких фреймворков.
На этот момент у меня не было опыта js/php и опыта коммерческой разработки.
Только опыт академического с/с++ и turbo pascal (на примере лабораторных работ по реализации всяких сортировок и т.п.).

Работал с API. (Модернизация ошибочного решения передачи данных битовыми масками. Ошибочного, потому что требования слишком часто и сильно менялись).

Апрель 2012 — Май 2012 (1 месяц)
Yota
сотрудник технической поддержки
Санкт-Петербург
Август 2011 — Декабрь 2011 (4 месяца)
Группа компаний МЭТР
стажер программист 1с
Санкт-Петербург
Обязанности и достижения

Работа с клиентами, доработка конфигураций, работа с выгрузками.

Февраль 2011 — Июнь 2011 (4 месяца)
Юниум (бывший ФТК)
Преподаватель
Санкт-Петербург
Обязанности и достижения

Преподавание основ C# и основ web-конструирования.

Высшее образование
Сентябрь 2008 — Июнь 2013
СПбПИ
Технической кибернетики; ФТК
Санкт-Петербург
Специализация и достижения

Кафедра Системного Анализа и Управления (САиУ).