Подробное резюме (CV)

О себе

Ночевнов Евгений Вячеславович

Место жительства: Москва, Подмосковье

Гражданство: Россия

mailto: eugen@mailnochevnov.ru

Профиль на сайте GitHub

Позиция: Ruby/Rails Senior

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

Для этого применяю следующие навыки:

  • уточнение задач, составление технического задания (делаю упор на вопрос «что и как нужно сделать»);
  • использование клиент-серверного подхода и веб-технологий;
  • программирование основной функциональности на стороне сервера и минимально необходимой — на стороне клиента;
  • иногда — создание сценариев тестирования;
  • иногда — эксплуатационная документация;
  • иногда — схемы и диаграммы бизнес-процессов, взаимодействия систем и т.п.;
  • иногда — создание макетов интерфейсов;
  • иногда — сбор данных, постановка и проверка предположений.

В настоящее время допускаю возможность переезда или удалённую работу. Допустимы командировки.

Профессиональные навыки

Back-end (серверная сторона)

Ruby — опыт более 3 лет (для компаний), а также для своих задач. Стараюсь писать "чистый" код, т.е. с понятными абстракциями, наглядный, безопасный, надёжный. Интересный пример: сделал парсер, преобразующий результат нестандартной сериализации объектов Java в формат JSON.

Rails — опыт более 3 лет (для компаний), а также для своих задач. Уделяю большое внимание структуре кода, чтобы код был более гибким в доработке. В том числе, пишу маленькие специализированные классы, например "репозиторий" для получения списка объектов (вместо обычного подхода — scope или методы подкласса ActiveRecord::Base), этот способ позволяет отделить бизнес-логику от хранения данных.

Sinatra (Ruby) — опыт около 1 года, используется в wiki-подобном сайте для хранения документации.

php — опыт более 2 лет (для компаний), а также для своих задач. Использую для мелких сайтов и CMS.

Slim framework (php) — опыт около года. Например, веб-интерфейс для системы пропусков (СКУД).

SQL — опыт более 4 лет. Умею писать простые и сложные запросы, но с ORM этот навык редко применяется.

MySQL — опыт более 2 лет. Использовал триггеры и представления (view). Например, перевёл данные из TecDoc в MySQL (модели автомобилей, автозапчасти и т.п., всё хранится в малоизвестной СУБД).

PostgreSQL — опыт более 4 лет. В т.ч. полнотекстовый поиск и представления (view), hstore.

MongoDB — опыт около 1 года.

Redis — опыт около 1 года. Пример: система проверки работоспособности сервисов/сайтов.

TDD — опыт 1 год. Использую RSpec, FactoryGirl, FFaker, в некоторых решениях — Capybara, Cucumber.

Front-end (клиентская сторона)

HTML HTML5 Slim templates (Ruby) — применяю современные подходы для создания структуры сложных веб-страниц.

CSS CSS3 Sass

JavaScript jQuery Ajax JSON

JSON Schema — использую для описания типовых форм, генерируемых на клиентской стороне, а также для проверки данных.

Другие навыки

Redmine — опыт в разработке решений на Redmine 1-2 года. Это внутренние корпоративные решения для ведения проектов, задач, управления бизнес-процессами и специфическими типами объектов в системе. Примеры плагинов: уведомления в системе, журналирование запросов к системе.

UML User Story ER-diagrams — опыт 1-2 года в качестве системного аналитика в крупных корпоративных проектах.

XML SOAP — разработка интеграции между несколькими системами.

UX — использовал Balsamiq, Visio и Quant UX для создания макетов веб-страниц.

Docker git Linux

Желаемые условия работы

Предпочитаю спланировать решение задачи перед началом работы и писать чистый код. Это облегчает добавление новых функций и изменений в коде.

Нравится самостоятельно определять, чем и как заниматься; планировать свою деятельность.

Мне комфортно работать самостоятельно, и при необходимости обращаюсь к сотрудникам за помощью.

Мне нравится работать в командах, где у каждого участника уникальная роль (кросс-функциональные команды), например, front-end + back-end + designer + product owner.

Хорошее рабочее место для меня выглядит так: достаточно светло, тихо, есть стул или кресло до плеч или выше, не «open space» на 30 человек и больше (можно меньше) — важно, чтобы было тихо.

Не интересует заёмный труд (out-staff).

Важно! Мне не нравятся переработки и «ненормированный рабочий день», особенно когда это не компенсируется деньгами или днями отдыха. Вариант «переработки в любом количестве и в любые дни в обмен на 3 дня отпуска в год» отвергаю сразу.

Пожелания к корпоративной культуре

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

В целом должна быть тишина в офисе. Обсуждения и показы работ уместно проводить в переговорной комнате.

Образование

Год окончания Образовательное учреждение, направление обучения
2015 Московский технический университет связи и информатики, аспирантура (неоконченная диссертация про менеджмент)
2013 УКЦ «Проектная ПРАКТИКА», курс «Практикум управления проектами. Ключевые документы, инструменты, решения»
2012 Московский технический университет связи и информатики, специалитет (Информационные технологии, 230105 Программное обеспечение вычислительной техники и автоматизированных систем)

Опыт работы

Разработчик Rails в GameServerKings

Август 2018 — по настоящее время, Ruby Rails JavaScript PostgreSQL Heroku

Крупные изменения в дизайне сайта (при участии веб-дизайнера), а также новые возможности и функции сайта для клиентов и сотрудников этой компании. Компания предоставляет виртуальный хостинг для онлайн-игр. Это международная команда. Я работаю удалённо, всё общение ведётся на английском языке.

Во время работы здесь я сильно развил свои навыки по построению архитектуры кода на JavaScript.

Руководитель команды разработки в МОЦ ИКТ (Россия)

Апрель 2018 — Июль 2018, 4 месяца Ruby Rails JavaScript MySQL Redmine Docker

Создал портал на Redmine (на основе Ruby on Rails) для учёта грузоперевозок, по заказу правительства Московской области.

В команде было ещё два программиста, все работали удалённо.

Увы, я столкнулся на этом месте с задержкой зарплаты, переработками, "выходом" на работу в выходные и постоянной суетой.

Системный аналитик в Сбербанк-Технологии (Россия)

Ноябрь 2017 — Апрель 2018, 6 месяцев UML

Принял участие в разработке комплекса программ хранения и управления данными о клиентах банка. В том числе:

  • составление эксплуатационной документации;
  • составление технических заданий;
  • проектирование интеграционного взаимодействия в рамках микросервисной платформы.

Аналитик процессов в «ФК Открытие» (Россия)

Июнь 2017 — Октябрь 2017, 5 месяцев UML Use Case UX

В команде разработки сайтов Банка. Среди своих крупных задач могу назвать следующие:

  1. Исследовал стандарты и рекомендации по адаптации сайтов для слабовидящих, слабослышащих и людей с нарушением моторики. Результат исследования описал в виде руководящих указаний. Реализация этих требований сделает доступными сайты компании указанным группам людей, а именно: чтение информации на сайтах Банка, заполнение анкет и другое.
  2. Исследовал бизнес-процессы по получению наличных денег для пользователей: начиная от заказа на сайте и заканчивая получением денег в кассе отделения Банка. Описал все процессы вплоть до участвующих информационных систем и их действий. Координировал работы по интеграции этих систем.
  3. Изучил тему залогового имущества и составил техническое задание для стороннего подрядчика на разработку сайта с каталогом объектов: недвижимость, автомобили, оборудование.

Системный аналитик и программист в НИИАС (Россия)

Сентябрь 2016 — Май 2017, 9 месяцев Ruby Oracle UML XML SOAP

Интеграция нескольких информационных систем предприятия позволила автоматизировать составление графиков движения поездов на Дальнем востоке. Чтобы сделать это, я выяснил и согласовал требования со всеми заинтересованными сторонами, написал алгоритмы по преобразованию и передаче данных из одних систем в другие.

Системный аналитик / программист в Uniweb (Унивеб) (Россия)

Январь 2015 — Июль 2016, 1 год 7 месяцев

Сначала как программист в одном проекте, затем как аналитик в другом проекте.

Системный аналитик: UML Use Case User Story

Улучшил бизнес-процесс оформления заявок на платные курсы на сайте uniweb.ru, что привело к сокращению времени обработки заявок на 30% с помощью введения ранней регистрации на курсы и выполнения похожих операций в одном потоке.

Программист: Ruby Rails JavaScript PostgreSQL MongoDB Redis

Повысил стабильность и скорость загрузки сайта "Образование на русском" (PushkinOnline) с помощью автоматизированного тестирования и рефакторинга кода. А также разработал разделы сайта с новыми функциями, благодаря этому увеличилось количество регистраций на онлайн-курсы сайта на 20%.

Программист в МТС (Россия)

Июль 2014 — Декабрь 2014, 6 месяцев Ruby Rails JavaScript MySQL Redmine

Разработал прототип информационной системы управления проектами на основе Redmine для проверки и доработки идей по управлению проектами в этой крупной компании. Компания использовала этот прототип для проверки идей по управлению проектами.

Программист / Lead Developer в CityAds (СмартФинанс) (Россия)

Август 2013 — Май 2014, 10 месяцев Ruby Rails JavaScript MySQL Redmine

Создал единую систему для управления работами сотрудников всех уровней компании, тем самым снизил расходы на использование некоторых сторонних приложений.

Проектирование CRM и перевод сотрудников из Salesforce в созданную систему: сбор требований, декомпозиция задач, обучение пользователей. С одним подчинённым.

Программист / Lead Developer в Wand (Россия)

Август 2012 — Июнь 2013, 11 месяцев Ruby Rails JavaScript php MySQL PostgreSQL

Разрабатывал сайты и информационные системы для коммерческих и некоммерческих организаций. С одним подчинённым.

PHP программист в КобраТелеком (Россия)

Ноябрь 2010 — Январь 2012, 1 год 3 месяца JavaScript php MySQL

Подготовил главный продукт компании (система управления телефонией на основе Asterisk) к внедрению в крупных российских компаниях:

  • разработал архитектуру ПО для новых функций этого продукта и улучшения качества кода;
  • обновил оформление веб-интерфейса системы;
  • автоматизировал типовые операции;
  • разработал эксплуатационную документацию.

Программист Delphi в ФГУП ММПП "Салют" (Россия)

Июль 2009 — Сентябрь 2010, 1 год 3 месяца Delphi Oracle

Разработал программы по учёту внутренних процессов предприятия с помощью Delphi и СУБД Oracle.

Иностранные языки

Английский — средний (upper-intermediate, B2)

Итальянский — начинающий (elementare, A2)

Ещё несколько слов о развитии

Читаю статьи на разные темы, пробую новые для себя подходы и технологии. Из недавнего:

  • настроил сборку файлов CSS и JS с помощью Webpack;
  • научился по-новому структурировать код на Rails с выделением операций изменения данных (gem mutations), валидаций, генерирования форм данных — всё в виде классов, вместо типичного для Rails Way подхода «толстые модели».

Посматриваю в сторону языков Crystal, Rust и Go — привлекает увеличение скорости выполнения кода, меры по повышению надёжности программ, знакомый синтаксис.

Увлечения

Занимаюсь парными латиноамериканскими танцами (форроʼ), изучаю итальянский язык.