Обо мне

Кратко о себе:

Multi-language Software Engineer с фокусом на Elixir/OTP и Ruby. Хочу развиваться в сторону Elixir/OTP и достичь высокого уровня мастерства в этом стеке технологий. 7 лет опыта работы преимущественно над Ruby/Rails проектами. Помимо Ruby использовал Elixir и Go.

Также много писал на JS. Как простые вещи на jQuery, так и конфигурации Webpack. Успешно интегрировал и использовал современные фреймворки (React, Angular, etc).

До поступления в университет успешно участвовал в личных и командных олимпиадах по программированию, брал призовые места. Первую программу написал в возрасте 7 лет.

Основные навыки:

  • Ruby / Rails
  • Elixir / Phoenix / OTP
  • JS: dialects, frameworks, tools 
  • Algorithm Design (thanks to ACM experience)
  • Software Design (SOLID, mathematical approaches)
  • Planning / Task Analysis and Decomposition
  • Git VCS and adopting flows for concrete team
  • Docker (optimising images size and build times, docker-compose)
  • SQL (Postgres) / Redis

    Есть опыт, но недостаточный, чтобы решать задачи в быстром темпе:

    • Go Language
    • Bash scripting
    • Systemd unit configuration
    • Writing RPM package specs and building RPMs using Docker
    • Vagrant
    • Ansible
    • C/C++
    • Experience in Emacs Lisp, Python (machine learning), Java, Scala, NetLogo, Mikrotik RouterOS

    На уровне новичка:

    • Rust
    • Lisp dialects
    • Haskell
    • Unity 3D (C#)
    • Current hobby: writing music in Logic Pro X
        Участие в профессиональных сообществах
        Опыт работы
        Москва
        Senior Ruby Developer/Elixir developer
        Февраль 2018 — Август 2018 (7 месяцев)

        ICOyard - это «ICO as a service». Это был мой первый опыт работы с криптовалютными технологиями. В виду ранней стадии разработки я работал в основном над тривиальными задачами. Но даже так нашей технической команде есть чем гордиться:

        • 90% покрытие тестами «малой кровью»
        • активное применение функциональных подходов в Ruby-коде
        • хороший баланс между offensive и defensive programming

        Я верю, что мы всего этого добились благодаря постоянному обучению друг у друга и способности рационально приходить к сбалансированным решениям. Другими словами - это была разработка без холиваров.

        Мы — технологический стартап, учреждены Альфа-Банком и создали прорывную услугу для России
        Senior Ruby Developer
        Октябрь 2016 — Февраль 2018 (1 год и 5 месяцев)

        «Поток» - это финансовый стартап, краудфандинговая платформа позволяющая инвестировать в займы малому бизнесу. Получил огромное количество опыта работая там.

        Мне пришлось спроектировать, оценить сроки реализации и, собственно, реализовать следующие компоненты:

        • модуль калькуляции займа (биллинг)
        • модуль расчета налогов
        • модуль взаимодействия с банковскими API
        • и, конечно, было еще много менее захватывающих задач

        Вся эта работа сильно прокачала множество моих скиллов:

        • математическое проектирование
        • проектирование архитектуры
        • среднесрочное планирование и оценку
        • деплой с помощью Docker
        • установку и администрирование Gitlab (и еще пары сервисов)
        • формализацию процесса разработки и его оптимизацию
        • проведение собеседований.

        Те архитектурные решения, которые я принял разрабатывая различные модули, являются моим поводом для небольшой гордости - благодаря им не единожды получалось реализовать новую бизнес-фичу всего несколькими строками кода и переносом констант в переменные.

        К тому же, это первая работа где я начал использовать Elixir в бою, хоть и для небольших экспериментальных задач.

        Lobster is a marketplace to find and license photos on social media.
        Rails developer
        Сентябрь 2016 — Октябрь 2016 (2 месяца)

        Успел немного поработать с высоконагруженной MongoDB и Elastic. Изначально планировался офисный формат с предоставлением ноутбука, но не сложилось - в виду этого и столь непродолжительный срок работы. Своего ноутбука на тот момент не было.

        ​Мобильная и веб-разработка, QA-сервисы
        Fullstack Rails Developer
        Март 2015 — Сентябрь 2016 (1 год и 7 месяцев)

        IKITlab - это команда аусорсеров. Такой формат работы позволяет соприкоснуться с множеством различных проектов за короткий промежуток времени. Если приплюсовать опыт предыдущей аутсорс разработки, то получается довольно широкий спектр: от WEB-интерфейска к анализатору белковых последовательностей до написания тестов в Rubymotion-проекте. Также было написано много JS в различных фреймворках: Backbone, Angular 1, React. Пару раз приходилось настраивать webpack.

        Наиболее интересным проектом на этом месте работы была образовательная система (подробности скрыты NDA). В рамках этого проекта была:

        • успешная интеграция trailblazer для нетривиальной логики (в те времена еще не было dry-rb)
        • боевой опыт с React (не SPA), webpack.
        • планирование и груминг задач на несколько месяцев вперед (да, бизнесу было так удобнее).
        Один из ведущих разработчиков и издателей игровых приложений для социальных сетей и мобильных платформ.
        Rails Developer
        Февраль 2014 — Февраль 2015 (1 год и 1 месяц)

        Разрабатывал внутренний продукт для компании. Подробности скрыты NDA. Наиболее сложными задачами были многоэтажные запросы к SQL. Научился многим особенностям Active Record. Ушел, так как перестало получаться совмещать офисную работу с написанием диплома в ВУЗе. Плюс хотелось поработать с более сложными проектами рассчитаными на большую аудиторию.

        Частная практика, работа без зачисления в штат
        Rails Developer on oDesk (ныне - upwork.com)
        Сентябрь 2013 — Январь 2014 (5 месяцев)

        В основном работал с Angular 1 на фоне Rails.

        Tatar on Rails
        Москва
        Rails Developer
        Январь 2013 — Сентябрь 2013 (9 месяцев)

        Удаленная работа, аутсорс-разработка. Работал как с backend, так и с frontend.

        twistock
        Москва
        Cofounder, Rails Developer
        Сентябрь 2012 — Январь 2013 (5 месяцев)

        Стартап, который начал мой товарищ и я присоеденился чуть позже. Финансовая браузерная игра. Стартап не удался.

        В процессе работы освоил backbone, немного прокачал devops-навыки. Но наиболее ценным опытом считаю соприкосновения с реалиями венчурных инвестиций.

        Одна из крупнейших компаний на рынке онлайн-образования в России
        Rails Developer
        Декабрь 2011 — Сентябрь 2012 (10 месяцев)

        Это была моя первая работа на Ruby. И я был первым Ruby-разработчиком в команде, что неявно сделало из меня техлида. Работал над 100ege.ru, который сейчас называется Foxford. В те времена это был стартап, который только набирал свой внутренний штат разработчиков. Foxford - это онлайн образовательная платформа, которая позволяет делать видео-классы с модерируемой в реальном времени обратной связью от учеников к учителю.

        Несмотря на недостаток реального опыта было сделано много клевых вещей:

        • написано несколько небольших приложений-компонентов на Rails
        • настроены и внедрены в процессы JIRA и Confluence
        • организован «конвеер разработки» с Code Review
        • прорабатывался план миграции кодовой базы с PHP на Ruby
        • проводил собеседования

        Нечего и говорить, что такая первая работа дает ощутимый заряд опыта.

        Высшее образование
        Московский физико-технический институт
        Долгопрудный
        Факультет: Управления и прикладной математики; ФУПМ (ранее ФПМЭ)
        Сентябрь 2009—Июль 2016 (6 лет и 10 месяцев)

        Магистр, направление - прикладная математика и физика. Но обе дипломные работы в рамках Computer Science.

        Бакалаврская - прототип Ruby DSL для описания операций над матрицами, который транслируется в код на OpenCL или CUDA. Изначально научник хотел реализовать это с помощью метпрограммирования C++ и было потрачено много времени на доказательство (себе и научнику) неоправданной сложности этого подхода.

        Магистерская - симуляционная среда на Go для исследования поведения планировщиков распределения ресурсов в распределенной среде со специфической мультислойной архитектурой, которая также была сформулирована с нуля в рамках работы.