О себе ¶
Ночёвнов Евгений Вячеславович
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) код для заполнения и чтения данных с учётом бизнес-логики. Код хорошо структурирован.
Я участвовал в разработке функциональности основного сайта компании, а также занимался рефакторингом кода и добавлением тестов. Мой наиболее значимый вклад:
- Проектирование и создание программного кода для новой ролевой модели в административной панели сайта. Несколько сотен изменённых файлов!
- Написание кода для генерации отчётов, справок, дипломов и других документов.
- Подготовка монолитного проекта к разделению на области функциональности в программном коде, что в последующем поможет в перемещении этого кода в новые микросервисы.
- Выступление перед другими разработчиками с информацией о новшествах в коде, а также обсуждение и поиск решений поставленных проблем. Примеры: code style, linters, хранение настроек приложения.
Участвовал в интеграции с несколькими сторонними сервисами, в т.ч.:
- Mindbox — сервис для рассылок писем и ведения базы данных по клиентам компании.
- Planfix — сервис для управления бизнес-процессами через постановку задач (похож на Redmine).
- WebinarRu — сервис для проведения вебинаров (онлайн-конференций).
Разработчик Ruby в «Баланс-Платформа» (Россия) ¶
Февраль 2021 — март 2022,
1 год и 1 месяц
RubyRailsPostgreSQLRSpecSwagger (OpenAPI)DockerKubernetes
Разработка программ, используемых в некоторых банках. Очень много кода, много правил проверки и обработки данных, более 50 таблиц в базе данных. Используется микросервисный подход.
Разработчик Rails в РЖД (Россия) ¶
Февраль 2020 — февраль 2021,
11 месяцев
RubyRailsJavaScriptVuePostgreSQL
Участвовал в создании продуктов:
- Основной продукт: добавление функциональности для управления новостями, опросами, рекламными баннерами и транспортными документами для портала «Личный кабинет (грузовые перевозки)».
- Сайт для рассмотрения идей и предложений (обсуждение и голосование).
- СМС-шлюз.
Разработчик 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 ¶
- Обновил перевод строчек на русский язык для программы vym — View Your Mind — графического инструмента для mind maps.
- Добавил формат template literals для файлов с переводами строчек в плагине для Babel — babel-plugin-precompile-intl.
- Создал Ruby gem для форматирования названий месяцев без дней — ruby-i18n-months. Некоторые языки используют разные слова в названиях месяцев, например, «23 апреля 2022" и «Апрель 2022".
Языки ¶
Русский — родной
Английский — средний (intermediate, B1)