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, начиная с версии 3.22.5 и до наших дней.
Знакомство с монолитной архитектурой.
Знакомство с протоколами AMQP, gRPC.
Успешный коммерческий опыт работы с GraphQL на протяжении 4 месяцев: написание API, на основе GraphQL, с нуля, тестирование GraphQL, реализация загрузки файлов через GraphQL
Написание собственных Rubocop Cop-ов.
Опыт написания тестов на RSpec, Factory_bot, Capybara, тесты для ActionMailer, Policies и AASM, опыт тестирования GraphQL (запросы, типы, мутации, подписки). Опыт в минимизации количества запросов, с помощью гема Rspec-Sqlimit.
Опыт в написании собственных RSpec - матчеров.
Опыт работы с Grape (написание API, также расширение имеющихся), а также Grape-Entities, Swagger (подключение к Grape и настройка).
Настройка Gitlab-CI с помощью Docker-контейнера, наладка stage-й (этапов CI).
Настройка CircleCI - с нуля до поэтапной проверки по коммиту.
Опыт настройки и поднятия серверов с помощью Dokku.
Осуществлял рефакторинг кода
Разворот Frontend и Backend проекта одной командой в консоли.
Языки: 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 обьектах (участки нефтезавода и нефтяные кусты) месторождения и их последующий вывод на АРМы.
Факультет: "Нефтегазовая и Строительная Техника (НСТ)"
Специальность: "Автоматизация нефтегазовой и строительной техники и технологий" (Бакалавриат)
Квалификация: Инженер-автоматчик (диплом с отличием)
Специальность: "Наземные транспортно-технологические комплексы" (Магистратура)
Квалификация: Инженер (магистр) (диплом с отличием)
2018 — 2019
Получен Сертификат
2021
Получен Сертификат
И.В. Симдянов. Самоучитель Ruby.
Фултон Хэл. Путь Ruby.
Михалис Цукалос. Golang для профи.
Личные качества:
Хобби: увлекаюсь плаванием, дайвингом, скалолазанием, участвую в соревнованиях по сборке Кубика Рубика, кулинарией, нумизматикой. Люблю путешествовать. Коллекционирую перьевые ручки.