Беркович Михаил Вячеславович
Фотография
О себе
  • Возраст: 28 лет
  • Гражданство: РФ
  • Место проживания: г. Москва
  • Занятость: Полная занятость, удалённая работа
  • Рабочий день: Полный
  • Переезд: Возможен
  • Командировки: Готов к нечастым командировкам
Контактные данные
Желаемая должность: Ruby on Rails Developer / Back-End Developer
Профессиональные навыки:
Взглянуть на мой код можно здесь
  • Ruby
  • Использование библиотек (gems):

    Devise (в том числе рукописная аутентификация), Carrierwave, I18n, Fog-AWS Capistrano, Redis, Pundit, Omniauth, HTTParty, Bullet, Dry-Monads, RubyXL;

    AASM (реализация точек переходов для событий и уведомлений);

    Мониторинг ошибок (установка связи приложения с самим сервисом): Honeybadger, Airbrake, Sentry;

    Адаптеры для отложенных задач: Clockwork, Resque, Sidekiq, Sneakers;

    ActiveAdmin (выделение админ-панели в отдельное приложение, его детальная настройка, добавление интерактивного календаря, опыт оптимизации N+1 запросов, тестирование).

    Реализация нескольких учебных проектов, а также успешный деплой таковых.

  • Rails
  • Знакомство и коммерческая работа с Rails, начиная с версии 3.22.5 и до наших дней.

    Знакомство с монолитной архитектурой.

    Знакомство с протоколами AMQP, gRPC.

    Успешный коммерческий опыт работы с GraphQL на протяжении 4 месяцев: написание API, на основе GraphQL, с нуля, тестирование GraphQL, реализация загрузки файлов через GraphQL

    Написание собственных Rubocop Cop-ов.

  • RSpec
  • Опыт написания тестов на RSpec, Factory_bot, Capybara, тесты для ActionMailer, Policies и AASM, опыт тестирования GraphQL (запросы, типы, мутации, подписки). Опыт в минимизации количества запросов, с помощью гема Rspec-Sqlimit.

    Опыт в написании собственных RSpec - матчеров.

  • Grape
  • Опыт работы с Grape (написание API, также расширение имеющихся), а также Grape-Entities, Swagger (подключение к Grape и настройка).

  • SQL
  • Написание запросов на SQL и ORM, небольшой опыт в оптимизации запросов (добавление индексов, анализ запросов с помощью EXPLAIN / EXPLAIN ANALYZE).
  • Frontend
  • HTML5, CSS3, JavaScript, jQuery, CoffeeScript, Bootstrap, Sass - опыт простой вёрстки по сетке. NPM/Yarn.

    Написание скриптов на JavaScript.

  • DevOps
  • Heroku, VPS, Nginx, Ansible, Docker, Dokku - навык и умение деплоя Rails-приложений на Heroku.

    Настройка и деплой на VPS-сервер, с возможным упрощением и ускорением процесса с помощью Ansible и Capistrano.

    Настройка Gitlab-CI с помощью Docker-контейнера, наладка stage-й (этапов CI).

    Настройка CircleCI - с нуля до поэтапной проверки по коммиту.

    Опыт настройки и поднятия серверов с помощью Dokku.

  • Unix
  • Опыт самостоятельного администрирования, настройки и установки Arch Linux. Работа в Vim.
Интерес к языкам программирования и фреймворкам (собираюсь научиться или углубить свои знания):

Языки: Ruby, Go, Elixir, JavaScript, TypeScript, C

Фреймворки: Rails, Grape, Phoenix.

Технологии: Node, Kubernetes.

Опыт работы
  • Университет "Синергия"
  • Декабрь 2020 – настоящее время

    Должность: Старший разработчик

    Обязанности: Участие в Backend - разработке. Разработка нового функционала: расширение LMS API с помощью фреймворков Grape и Rails, выделение одинакового функционала в монады (с помощью Dry-Monads), устранение недочётов (Bug Fixing). Тестирование функционала. Участие в Code Review.

    Достижения: Написание системы формирования docx-файла, определённого шаблона, который насыщен Liquid-переменными. Написание системы сборки письма из частей, которые находятся в базе, насыщая письмо Liquid-переменными. Усовершенствование системы поиска обьектов в базе, посредством гема Ransack ("поиск в глубину моделей"). Генерация XLSX-файла на основе динамического входного Json-а (разложение информации в плоский вид). Исправление бага, когда при загрузке видео на сервер, - видео не загружалось и не конвертировалось в более мелкие форматы.

    Август 2020 – декабрь 2020

    Должность: Backend разработчик

    Обязанности: Участие в Backend - разработке. Разработка нового функционала: выделение Админ-панели в отдельное приложение, выполненное на основе библиотеки ActiveAdmin; написание API с нуля на основе Rails и GraphQL; написание сервисов на Ruby; устранение недочётов (Bug Fixing). Тестирование функционала. Самостоятельный deploy на Stage и Production - среды. Участие в Code Review коллег. Самостоятельная настройка и поднятие Stage и Production - серверов на основе Dokku.

    Достижения: Коммерчески успешное создание платформы для тренировки перед ОГЭ и ЕГЭ, с нуля до финальной эксплуатации на Production. Backend реализован на GraphQL с использованием функционала отложенных задач, с полным выделением админ-панели в отдельное приложение. Отдельные части приложения также выделены в отдельные приложения.

  • ООО «Баланс-Платформа»
  • Ноябрь 2019 – август 2020

    Должность: Ruby разработчик

    Обязанности: Участие в разработке высоконагруженных сервисов для Абсолют-банка (использование фреймворков Rails и Grape, а также Trailblazer (Operations)), а также их поддержка и развитие. Решение интеграционных задач. Тестирование разрабатываемого кода. Участие в разработке админ-панели подсчёта кредитных заявок для банка ТКБ.

    Достижения: Создание функционала для саппорт-отдела Абсолют-банка (поиск кредитной заявки через систему поисковых сервисов, а также её кастомизация). Вынесение логики в отдельную административную панель, для удобства корректирования данных.

    Повышение тестового покрытия на 16% для Абсолют-банка (кодовая база проекта: свыше 50К строк).

  • ООО «Сервис-Телематика»
  • Октябрь 2019

    Должность: Ruby разработчик

    Обязанности: Поддержка разрабатываемого кода, внедрение нового функционала, покрытие кода тестами.

    Достижения: Реализация отложенных задач по расписанию, работающих наравне с Telegram-ботом.

  • ООО «НПО Мир»
  • Август 2017 – Ноябрь 2018

    Должность: Инженер отдела сервисной поддержки (ОСП)

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

    Достижения: Наладка, монтаж, программирование ПЛК на 11 обьектах (участки нефтезавода и нефтяные кусты) месторождения и их последующий вывод на АРМы.

Образование
  • Сибирский государственный автомобильно-дорожный университет (СибАДИ) (2011-2017)
  • Факультет: "Нефтегазовая и Строительная Техника (НСТ)"

    Специальность: "Автоматизация нефтегазовой и строительной техники и технологий" (Бакалавриат)

    Квалификация: Инженер-автоматчик (диплом с отличием)

    Специальность: "Наземные транспортно-технологические комплексы" (Магистратура)

    Квалификация: Инженер (магистр) (диплом с отличием)

Дополнительное образование
Языки
  • Русский: родной
  • Английский: Чтение технической документации; B2 (Upper Intermediate)
  • Японский: N5
Дополнительные сведения
С 2014-2017 опубликованы 7 научных статей-публикаций, участвовал в Международных научно-практических конференциях (РФ, Германия - BAUMA-2016).

Личные качества:

  • пунктуальность: не умею опаздывать на работу. И не давал коллегам нечаянно это сделать.
  • неконфликтность: организовал много переговоров с заказчиком, - ни одни не закончились конфликтом.
  • умение работать в команде: готов поддержать не только работой и постоянной взаимовыручкой, но и Pull Request-ом; Чем и люблю заниматься.
  • коммуникабельность: грамотная речь, быстрый отклик на любые средства связи.
  • порядочность: честность, отзывчивость, гарантия ответа на любое письмо, пришедшее на почту; нет привычки добавлять все изменения в один commit.
  • Водительские права: категории В.

    Хобби: увлекаюсь плаванием, дайвингом, скалолазанием, участвую в соревнованиях по сборке Кубика Рубика, кулинарией, нумизматикой. Люблю путешествовать. Коллекционирую перьевые ручки.