Профессиональные навыки
Опыт работы
Декабрь 2014 — по настоящее время (2 года и 8 месяцев)
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
СПбПИ
Технической кибернетики; ФТК
Санкт-Петербург
Специализация и достижения
Кафедра Системного Анализа и Управления (САиУ).