О себе

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

evgeniy@mailnochevnov.ru

GitHub, VK

Старший разработчик Ruby

Наиболее значимые навыки:

  • использование клиент-серверного подхода и веб-технологий;
  • full-stack разработка с большой функциональностью на back-end (на стороне сервера);
  • создание API приложений и микросервисов;
  • code review для участников команды;
  • детализация решения задач;
  • оценка сложности и длительности задач;
  • сбор данных и затем постановка и проверка предположений.

Есть опыт работы в стартапах, малых, средних и крупных организациях (около 28 000 человек).

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

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

  • Ответственность
  • Исполнительность
  • Надёжность
  • Инициативность
  • Стрессоустойчивость
  • Коммуникабельность
  • Умение сохранять самообладание в сложных ситуациях и в состоянии спешки

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

Языки и технологии программирования

RubyRails — 9 лет опыта. Стараюсь писать «чистый» код, т.е. с понятными абстракциями, наглядный, безопасный, надёжный.

SQLMySQLPostgreSQL — включая оптимизацию запросов, агрегирование данных, параллельное выполнение запросов.

RedisMongoDB

TDDRSpecFactoryBotSwagger (OpenAPI)

HTMLCSSSassJavaScript

Архитектура и проектирование программного обеспечения

DRYSOLIDDesign patternsMicroservices — стараюсь применять эти принципы, насколько возможно, но допускаю отступления от них ради скорости выполнения кода и скорости разработки.

MVCMulti-layered architectureDomain-Driven Design — разделяю программный код на несколько слоёв по решаемым задачам, областям ответственности и функциональности: сервисные объекты, презентеры, классы для запросов к базам данных, классы для формирования данных или для экспорта и другие.

XMLSOAPJSON (REST API) — разработка интеграции между несколькими системами.

Администрирование сервера и DevOps

LinuxNginxMySQLPostgreSQLRedisHTTPS — установка и настройка для сред разработки и эксплуатации.

DockerDocker ComposeGitLab CI — создание файлов для запуска процедур сборки проекта (Dockerfile, Docker compose) и проверки файлов проекта с помощью линтеров (RuboCop, Brakeman и других).

Работа в команде

JIRATrelloRedmineAsana... — большой опыт в применении средств управления задачами.

AgileKanbanScrum — опыт работы в гибкой, часто изменяемой среде; проведение встреч с командой; обсуждение и предложение решений задач.

git — основное средство для совместной работы с репозиториями.

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

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

Корпоративная культура

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

Образование

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

Опыт работы

Всего: 14 лет, включая 11,5 года в роли разработчика. Ниже указаны места работы, соответствующие роли разработчика.

Частная практика

Сентябрь 2024 — по настоящее время, RubyRailsPostgreSQLRSpecDockerKubernetesRedisSwagger (OpenAPI)

Участие в нескольких проектах, в т.ч.:

  • Продукт для обучения людей через интернет: исправление ошибок, создание новых функций продукта (full-stack и API приложение).
  • Средство совместной работы в интернете и интернет-магазин (проекты с «нуля»): архитектура и код API приложения.
  • Сайт школы: перевод существующего сайта на современные Web-технологии и новый дизайн, получение отзывов пользователей из нескольких сервисов, добавление версии сайта для слабовидящих людей (full-stack приложение).

Разработчик Ruby в «Нетология» (Россия)

Март 2022 — февраль 2024, 1 год и 11 месяцев RubyRailsMySQLRSpecDockerKubernetes

Большая кодовая база, более 600 таблиц в БД. Примерно 10% из них — это таблицы-связки, ещё столько же — это таблицы, к которым применяется типовой процесс использования (CRUD), ко всем остальным написан специфический (custom) код для заполнения и чтения данных с учётом бизнес-логики. Код хорошо структурирован.

Я участвовал в разработке функциональности основного сайта компании, а также занимался рефакторингом кода и добавлением тестов. Мой наиболее значимый вклад:

  1. Проектирование и создание программного кода для новой ролевой модели в административной панели сайта. Несколько сотен изменённых файлов!
  2. Написание кода для генерации отчётов, справок, дипломов и других документов.
  3. Подготовка монолитного проекта к разделению на области функциональности в программном коде, что в последующем поможет в перемещении этого кода в новые микросервисы.
  4. Выступление перед другими разработчиками с информацией о новшествах в коде, а также обсуждение и поиск решений поставленных проблем. Примеры: code style, linters, хранение настроек приложения.

Участвовал в интеграции с несколькими сторонними сервисами, в т.ч.:

  1. Mindbox — сервис для рассылок писем и ведения базы данных по клиентам компании.
  2. Planfix — сервис для управления бизнес-процессами через постановку задач (похож на Redmine).
  3. WebinarRu — сервис для проведения вебинаров (онлайн-конференций).

Разработчик Ruby в «Баланс-Платформа» (Россия)

Февраль 2021 — март 2022, 1 год и 1 месяц RubyRailsPostgreSQLRSpecSwagger (OpenAPI)DockerKubernetes

Разработка программ, используемых в некоторых банках. Очень много кода, много правил проверки и обработки данных, более 50 таблиц в базе данных. Используется микросервисный подход.

Разработчик Rails в РЖД (Россия)

Февраль 2020 — февраль 2021, 11 месяцев RubyRailsJavaScriptVuePostgreSQL

Участвовал в создании продуктов:

  1. Основной продукт: добавление функциональности для управления новостями, опросами, рекламными баннерами и транспортными документами для портала «Личный кабинет (грузовые перевозки)».
  2. Сайт для рассмотрения идей и предложений (обсуждение и голосование).
  3. СМС-шлюз.

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

Август 2018 — октябрь 2019, 1 год и 2 месяца RubyRailsJavaScriptPostgreSQLHeroku

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

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

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

Сентябрь 2016 — июнь 2017, 8 месяцев RubyOracleUMLXMLSOAP

Эта компания разрабатывает интеграционную платформу для РЖД.

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

Программист в Uniweb (Унивеб) (Россия)

Январь 2015 — февраль 2016, 1 год RubyRailsJavaScriptPostgreSQLMongoDBRedis

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

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

Июнь 2014 — декабрь 2014, 6 месяцев RubyRailsJavaScriptMySQLRedmine

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

Ведущий программист в CityAds (СмартФинанс) (Россия)

Август 2013 — апрель 2014, 8 месяцев RubyRailsJavaScriptMySQLRedmine

Эта компания предоставляет услуги для рекламы в интернете.

Здесь я создал единую систему для управления работами сотрудников всех уровней компании (Redmine + самописные плагины), тем самым снизил расходы на использование некоторых сторонних приложений.

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

Ведущий программист в Wand (Россия)

Август 2012 — апрель 2013, 8 месяцев RubyRailsJavaScriptMySQLPostgreSQL

Это веб-студия.

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

Вклад в Open Source

  1. Обновил перевод строчек на русский язык для программы vym — View Your Mind — графического инструмента для mind maps.
  2. Добавил формат template literals для файлов с переводами строчек в плагине для Babel — babel-plugin-precompile-intl.
  3. Создал Ruby gem для форматирования названий месяцев без дней — ruby-i18n-months. Некоторые языки используют разные слова в названиях месяцев, например, «23 апреля 2022" и «Апрель 2022".

Примеры кода

  1. Настройки для Rubocop, упакованные в виде гема
  2. Шаблон для создания папки с проектом на Rails
  3. Микросервис на Ruby и Микросервис на Crystal

Языки

Русский — родной

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