rtrvrtrv

Артём Кривоножко

Ruby/Elixir developer · Разработка ПО · Менеджмент · Старший (Senior)
От 250 000 ₽ · Не ищу работу
Возраст: 28 лет
Опыт работы: 7 лет и 6 месяцев
Регистрация: 02.08.2013
Последний визит: 1 неделю назад
Местоположение: Россия, Санкт-Петербург
Профессиональные навыки: Ruby · Ruby on Rails · SQL · Git · Elixir
Войдите, чтобы посмотреть контакты пользователя

Участие в профессиональных сообществах

  • GitHub
    @rtrv, c окт. 2012 (8 лет)
    975 вкладов в 15 репозиториев, связан с языками:

Опыт работы

  • Сервис доставки продуктов
    Санкт-Петербург · От 1000 до 5000 сотрудников
    Ruby developer
    Май 2020 — По настоящее время (6 месяцев)
  • Cybergizer
    Санкт-Петербург
    Elixir developer
    Ноябрь 2019 — Март 2020 (5 месяцев)

    Аутсорс разработки системы безопасности для отелей. 

  • Разработка собственного ПО и ПО на заказ для западных клиентов
    Санкт-Петербург · От 10 до 100 сотрудников
    Ruby developer
    Август 2017 — Ноябрь 2019 (2 года и 4 месяца)

    Аутсорс разработки сервиса Load DynamiX Enterprise для https://virtualinstruments.com

  • Разработка решений для выявления и предотвращения кибератак, выявления фрода и защиты интеллектуальной собственности
    Москва · От 10 до 100 сотрудников
    Ruby developer
    Октябрь 2016 — Август 2017 (11 месяцев)

    Работал над системой обнаружения угроз: http://www.group-ib.ru/tds.html

    На момент начала работы проект был в продакшне в двух версиях поставки, которые имели часть общего кода.

    Выделил общую функциональность в Rails Engine, произвёл несколько этапов рефакторинга. Изменил авторизацию пользователей с Acl9, который ломал нормальные отношения между моделями, на политики Pundit.

    Бизнес-логика сосредоточена в сервисных объектах, таким образом и контроллеры, и модели сохраняю тонкими. Сервисы покрыты тестами.

    Сделал максимально DRY базовые сервисы для CRUD'а всех сущностей, в одном единственном сервисе написал метод, который хранит всю историю изменения сущностей: кто, когда, и сериализованный объект целиком. А ещё для просмотра этих изменений я немного переделал гем Diffy, чтобы изменения внешних ключей при просмотре позволяли отобразить вместо значений ID значения полей, например, `name`. Конфигурируется, конечно. Форк гема у меня на гитхабе.

    Стек, используемый в проекте: Rails 4, MySQL, ElasticSearch, Sidekiq, Docker, Slim, CoffeeScript, SASS

  • Easy School
    Иркутск
    Ruby developer
    Февраль 2016 — Октябрь 2016 (9 месяцев)
    Разработка корпоративной соцсети и системы менеджмента внутренних процессов для центра дополнительного образования на Ruby on Rails. Использовал Devise для авторизации пользователей и Pundit для настройки прав доступа, Whenever для CRON-заданий. На клиенте простой и надёжный MPA на Turbolinks. UI с использованием Twitter Bootstrap в качестве каркаса с изменённой графикой в соответствии с брэндбуком компании. В дополнение к этому jQuery и некоторые элементы jQuery UI. На начальном этапе использовал Simple Form, в который сделал небольшой контрибьют на GitHub. Не найдя подходящего гема, разработал расписание для школ, которое позволяет как ставить одиночные уроки, так и занимать кабинеты на несколько недель, переносить их, не допускает временных коллизий и проверяет, вместится ли размещаемая группа в кабинете при указанном для него количестве мест. Использую Rubocop в Atom'e и гем Strong Migrations. Для хранения кода использовал BitBucket и ветвление по Git Flow. Проект запускал в Docker. В команде кроме меня были менеджер проекта и ещё два разработчика в разное время. Вели разработку по Scrum'у, для управления задачами использовали Basecamp и Trello. В конце разрабатывал JSON API для подключения к сервису мобильных приложений, находящихся на тот момент в процессе разработки. Кроме того, запустил и настроил корпоративную MediaWiki, делал правки сайта на Symphony и, позже, его перенос на Wordpress, преподавал курс "Основы веб-разработки".
  • ЦНИТ ИГУ
    Иркутск
    Ведущий программист
    Июль 2014 — Февраль 2016 (1 год и 8 месяцев)
    Поддерживал и дорабатывал СУ учебным процессом "Студент", написанную на C++. Использовал FastReport для печатных форм. Писал и переписывал множество хранимых процедур в MSSQL 2000, т.к. большая часть логики была написана на уровне БД. При объединении ИГУ и ВСГАО переносил данные учебного процесса из 1С в MSSQL. Под моим руководством работали стажер-программист, которого я обучал, и программист, работавшая на первой линии техподдержки сотрудников университета. Позже мы осуществили переход с системы "Студент" на "Тандем.Университет", разработанный на Tandem Framework, Java. Я занимался переносом данных, настройкой "Тандема" и прошел обучение по фрэймворкам Tandem, Spring, Tapestry, и ORM Hibernate.
    Java developer
    Май 2013 — Август 2013 (4 месяца)
    Разработал небольшой сервис для подачи и проверки заявок на повышенную стипендию. Использовал Play! Framework, Jade, MySQL, Twitter Bootstrap.
  • SmartCastle
    Иркутск
    JS developer
    Сентябрь 2013 — Апрель 2014 (8 месяцев)
    Разработал софт для контроллера умных домов из платы расширения и управляющей программы RaZberry для Raspberry Pi. Основное приложение, которое устанавливалось на контроллер, было написано на NodeJS и соединялось с клиентом через socket.io. План дома реализовывал на SVG и Canvas. Управляющая программа контроллера предоставляла JSON API, через который и происходила связь. Также, для решения проблемы управления домом вне его локальной сети, не прибегая к необходимости иметь белый IP и настраивать маршрутизаторы у клиентов, я разработал ещё одно приложение, которое запускал на VPS. Оно хранило авторизационные данные пользователей, поднимало socket.io сервер и обычную HTML форму авторизации. Контроллеры подключались к этому серверу, используя socket.io-client. При авторизации пользователя, он также подключался к сокету, уже на другом порту сервера, и последний выступал мостом при общении клиента со своим домашним контроллером. Для хранения данных использовал MongoDB. Для демонстрации проекта на стартап-мероприятиях я настроил демо-стенд, включавший в себя упрощенную программу, имевшую вместо плана дома всего один круглый регулятор, которую я верстал по принципу mobile first. Она управляла диммером (позволяет плавно изменять уровень яркости), вмонтированным в большую лампу.
  • МегаМир
    Иркутск
    PHP junior developer
    Февраль 2013 — Май 2013 (4 месяца)
    Участвовал в разработке сервиса по доставке еды и накоплению бонусов (убийца Delivery Club, последний тогда отсутствовал в Иркутске), сейчас доступен по адресу: http://1megamir.ru/ Использовал первый Yii и jQuery на клиенте, без изысков. Фоном проекта были разные мелкие работы по сайтам, разрабатываемым и поддерживаемым студией, Wordpress и Drupal примерно в равных пропорциях.

Высшее образование

  • ИГУ

    Иркутский государственный университет
    Иркутск · 346 выпускников
    Институт математики, экономики и информатики
    Сентябрь 2009 — Июль 2014 (4 года и 10 месяцев)
    Специализация: математическое обеспечение и автоматизация информационных систем. Дипломный проект на тему: «Дистанционное программирование контроллеров и микропроцессорных устройств на основе плана объекта» А если проще, связка из Raspbery Pi, VDS, двух Node.js приложений, общающихся между собой и с браузером через socket.io, и SVG.js для управления умными домами.