О себе
Ночевнов Евгений Вячеславович
Место жительства: Москва, Подмосковье
Гражданство: Россия
mailto:
Позиция: 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
В команде разработки сайтов Банка. Среди своих крупных задач могу назвать следующие:
- Исследовал стандарты и рекомендации по адаптации сайтов для слабовидящих, слабослышащих и людей с нарушением моторики. Результат исследования описал в виде руководящих указаний. Реализация этих требований сделает доступными сайты компании указанным группам людей, а именно: чтение информации на сайтах Банка, заполнение анкет и другое.
- Исследовал бизнес-процессы по получению наличных денег для пользователей: начиная от заказа на сайте и заканчивая получением денег в кассе отделения Банка. Описал все процессы вплоть до участвующих информационных систем и их действий. Координировал работы по интеграции этих систем.
- Изучил тему залогового имущества и составил техническое задание для стороннего подрядчика на разработку сайта с каталогом объектов: недвижимость, автомобили, оборудование.
Системный аналитик и программист в НИИАС (Россия)
Сентябрь 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)
Итальянский — начинающий (base, A1)
Ещё несколько слов о развитии
Читаю статьи на разные темы, пробую новые для себя подходы и технологии. Из недавнего:
- настроил сборку файлов CSS и JS с помощью Webpack;
- научился по-новому структурировать код на Rails с выделением операций изменения данных (gem mutations), валидаций, генерирования форм данных — всё в виде классов, вместо типичного для Rails Way подхода «толстые модели».
Посматриваю в сторону языков Crystal, Rust и Go — привлекает увеличение скорости выполнения кода, меры по повышению надёжности программ, знакомый синтаксис.
Увлечения
Занимаюсь парными латиноамериканскими танцами (форроʼ), изучаю итальянский язык.