О себе
Ночевнов Евгений Вячеславович
Место жительства: Москва, Подмосковье
Гражданство: Россия
mailto:
Fullstack Ruby on Rails Senior/Lead
В настоящее время мне нравится создавать продукты и услуги с помощью информационных технологий, чтобы предоставить пользователям какие-то новые возможности. Например, это могут быть сервисы по получению электронных чеков, брони гостиниц или поиску вкладов.
Для этого применяю следующие навыки:
- уточнение задач, составление технического задания;
- использование клиент-серверного подхода и веб-технологий;
- программирование основной функциональности на стороне сервера и минимально необходимой — на стороне клиента;
- иногда — создание сценариев тестирования;
- иногда — эксплуатационная документация;
- иногда — схемы и диаграммы бизнес-процессов, взаимодействия систем и т.п.;
- иногда — создание макетов интерфейсов;
- иногда — сбор данных, постановка и проверка предположений.
В настоящее время мне интересна удалённая работа. Не рассматриваю возможность переезда и командировок.
Профессиональные навыки
Back-end (серверная сторона)
Ruby Rails — 9 лет опыта. Стараюсь писать "чистый" код, т.е. с понятными абстракциями, наглядный, безопасный, надёжный.
SQL MySQL PostgreSQL — триггеры, представления (view), полнотекстовый поиск.
Redis MongoDB
TDD RSpec FactoryBot Swagger (OpenAPI)
Front-end (клиентская сторона)
HTML CSS Sass
JavaScript ECMAScript 2015+ (ES6+) Pug Vue 2 Svelte 3
Webpack Rollup Vite
Архитектура и проектирование программного обеспечения
DRY SOLID Design patterns — стараюсь применять эти принципы, насколько возможно, но допускаю отступления от них ради скорости выполнения кода и скорости разработки.
MVC Multi-layered architecture — разделяю программный код на несколько слоёв по решаемым задачам и областям ответственности: сервисные объекты, презентеры, классы для запросов к базам данных, классы для формирования данных для экспорта и другие.
UML User Story ER-diagrams — опыт 1-2 года в проектировании решений в крупных корпоративных проектах.
XML SOAP JSON (REST API) — разработка интеграции между несколькими системами.
UX — использовал Balsamiq, Visio и Quant UX для создания макетов веб-страниц.
Администрирование сервера и DevOps
Linux Nginx MySQL PostgreSQL Redis HTTPS — настройка.
Docker Docker Compose GitLab CI — создание файлов для запуска процедур сборки проекта (Dockerfile, Docker compose) и проверки файлов проекта с помощью линтеров (RuboCop, Brakeman и других).
git — основное средство для совместной работы с репозиториями.
Желаемые условия работы
Мне нравится самостоятельно определять, чем и как заниматься; планировать свою деятельность.
Мне комфортно работать самостоятельно, и при необходимости обращаюсь к сотрудникам за помощью.
Мне нравится работать в командах, где у каждого участника уникальная роль (кросс-функциональные команды), например, front-end + back-end + designer + product owner.
Не интересует заёмный труд (out-staff).
Важно! Мне не нравятся переработки и «ненормированный рабочий день», особенно когда это не компенсируется деньгами или днями отдыха. Вариант «переработки в любом количестве и в любые дни в обмен на 3 дня отпуска в год» отвергаю сразу.
Пожелания к корпоративной культуре
Интересует свободная, демократичная, творческая среда, где приветствуют развитие процессов и результатов, а также эксперименты (развитие всегда сопровождается экспериментами!). Приветствую сочетание адаптивности и организованности!
Мне нравится прямое свободное выражение мнения. Можно немного приукрашивать его чувством такта.
Образование
Год окончания | Направление обучения, образовательное учреждение |
---|---|
2015 | Аспирантура (неоконченная диссертация про менеджмент), Московский технический университет связи и информатики |
2013 | Курс «Практикум управления проектами. Ключевые документы, инструменты, решения», УКЦ «Проектная ПРАКТИКА» |
2012 | Специальность (Информационные технологии, 230105 Программное обеспечение вычислительной техники и автоматизированных систем), Московский технический университет связи и информатики |
Опыт работы
Всего: 13 лет.
В роли разработчика: 11 лет.
В роли системного аналитика: 1 год.
В роли руководителя: 1 год.
Руководитель команды разработки на Ruby в «JetClass» (Россия)
Сентябрь 2024 — по настоящее время, Ruby Rails PostgreSQL RSpec Docker Kubernetes Redis
Разработчик Ruby в «Randewoo» (Россия)
Май 2024 — август 2024, 3 месяца Ruby Rails PostgreSQL RSpec Docker Kubernetes Elastic Redis HashiCorp Vault
Наиболее крупные задачи:
- Интеграция с платёжным сервисом «Плати частями» (сервис рассрочки) от Сбербанка.
- Создание гема с настройками правил для RuboCop.
Разработчик Ruby в «Нетология» (Россия)
Март 2022 — февраль 2024, 1 год и 11 месяцев Ruby Rails MySQL RSpec Docker Kubernetes
Большая кодовая база, более 600 таблиц в БД. Примерно 10% из них - это таблицы-связки, ещё столько же - это таблицы, к которым применяется типовой процесс использования (CRUD), ко всем остальным написан специфический (custom) код для заполнения и чтения данных с учётом бизнес-логики. Код хорошо структурирован.
Я участвовал в разработке функциональности основного сайта компании, а также занимался рефакторингом кода и добавлением тестов. Мой наиболее значимый вклад:
- Проектирование и создание программного кода для новой ролевой модели в административной панели сайта. Несколько сотен изменённых файлов!
- Написание кода для генерации отчётов, справок, дипломов и других документов.
- Подготовка монолитного проекта к разделению на области функциональности в программном коде, что в последующем поможет в перемещении этого кода в новые микросервисы.
- Выступление перед другими разработчиками с информацией о новшествах в коде, а также обсуждение и поиск решений поставленных проблем. Примеры: code style, linters, хранение настроек приложения.
Участвовал в интеграции с несколькими сторонними сервисами, в т.ч.:
- Mindbox - сервис для рассылок писем и ведения базы данных по клиентам компании.
- Planfix - сервис для управления бизнес-процессами через постановку задач (похож на Redmine).
- WebinarRu - сервис для проведения вебинаров (онлайн-конференций).
Разработчик Ruby в «Баланс-Платформа» (Россия)
Февраль 2021 — март 2022, 1 год и 1 месяц Ruby Rails PostgreSQL RSpec Swagger (OpenAPI) Docker Kubernetes
Разработка программ, используемых в некоторых банках. Очень много кода, много правил проверки и обработки данных, более 50 таблиц в базе данных. Используется микросервисный подход.
Разработчик Rails в РЖД (Россия)
Февраль 2020 — февраль 2021, 11 месяцев Ruby Rails JavaScript Vue PostgreSQL
Участвовал в создании продуктов:
- Основной продукт: добавление функциональности для управления новостями, опросами, рекламными баннерами и транспортными документами для портала «Личный кабинет (грузовые перевозки)».
- Сайт для рассмотрения идей и предложений (обсуждение и голосование).
- СМС-шлюз.
Разработчик Rails в GameServerKings
Август 2018 — октябрь 2019, 1 год и 2 месяца Ruby Rails JavaScript PostgreSQL Heroku
Крупные изменения в дизайне сайта (при участии веб-дизайнера), а также новые возможности и функции сайта для клиентов и сотрудников этой компании. Например, интеграция с 3 платёжными сервисами в виде подписки. Компания предоставляет виртуальный хостинг для онлайн-игр. Это международная команда. Я работал удалённо, всё общение шло на английском языке.
Во время работы здесь я сильно развил свои навыки по построению архитектуры кода на JavaScript.
Руководитель команды разработки в МОЦ ИКТ (Россия)
Апрель 2018 — июль 2018, 2 месяца Ruby Rails JavaScript MySQL Redmine Docker
Создал портал на Redmine (на основе Ruby on Rails) для учёта грузоперевозок, по заказу правительства Московской области.
В команде было ещё два программиста, все работали удалённо.
Увы, я столкнулся на этом месте с задержкой зарплаты, переработками, "выходом" на работу в выходные и постоянной суетой.
Более ранние места работы
Системный аналитик в «Сбербанк-Технологии» (Россия), ноябрь 2017 — апрель 2018, 4 месяца
Аналитик процессов в «ФК Открытие» (Россия), июнь 2017 — октябрь 2017, 4 месяца
Системный аналитик и программист в НИИАС (Россия), сентябрь 2016 — июнь 2017, 8 месяцев
Системный аналитик / программист в Uniweb (Унивеб) (Россия), январь 2015 — июль 2016, 1 год и 6 месяцев
Программист в МТС (Россия), июнь 2014 — декабрь 2014, 6 месяцев
Программист / Lead Developer в CityAds (СмартФинанс) (Россия), август 2013 — апрель 2014, 8 месяцев
Программист / Lead Developer в Wand (Россия), август 2012 — апрель 2013, 8 месяцев
PHP программист, «КобраТелеком», ноябрь 2010 — январь 2012, 1 год и 3 месяца
Программист Delphi, ФГУП ММПП «Салют», июль 2009 — сентябрь 2010, 1 год и 2 месяца
Вклад в Open Source
- Обновил перевод строчек на русский язык для программы vym - View Your Mind - графического инструмента для mind maps.
- Добавил формат template literals для файлов с переводами строчек в плагине для Babel - babel-plugin-precompile-intl.
- Создал Ruby gem для форматирования названий месяцев без дней - ruby-i18n-months. Некоторые языки используют разные слова в названиях месяцев, например, "23 апреля 2022" и "Апрель 2022".
Языки
Русский — родной
Английский — средний (intermediate, B1)
Ещё несколько слов о развитии
Мне нравятся эти языки, библиотеки и технологии: Crystal, Svelte, Lucky Framework. По возможности я бы хотел применять их в работе!
Хорошо отношусь к Capistrano и Docker + GitLab CI, мне подходят оба варианта передачи кода на сервер.
Изучаю приёмы Domain-Driven Design для проработки структуры программ.
Пожалуйста, посмотрите эти репозитории:
- Настройки для Rubocop, упакованные в виде гема
- Шаблон для создания папки с проектом на Rails
- Микросервис на Ruby и Микросервис на Crystal