Опыт работы
Июнь 2016 — по настоящее время (1 год и 5 месяцев)
Express
Elixir developer
Москва
Январь 2016 — Май 2016 (5 месяцев)
Original Group
Erlang developer
Москва
Обязанности и достижения
Разработал адаптер для устройства к OBD. Устройство получало данные с автомобиля и отсылало их на сервер в собственном бинарном протоколе, далее следовал слой бизнес логики для обработки этих данных и в зависимости от услойвий я их прокидывал дальше по цепочке в RabbitMQ и Redis, собирал статистику и прочее. Адаптер написан на Erlang, устойчив к нагрузкам и готовый к масштабированию. Внедрил стек ELK для централизованного логгирования, sensu для мониторинга и сбора метрик с компонентов системы. Написал небольшое HTTP API на Golang для построения разного рода отчетности.
Июнь 2015 — Декабрь 2015 (7 месяцев)
RCNTEC
R&D
Москва
Обязанности и достижения
Писал систему онлайн консультирования для веб-сайтов (на подобие jivosite и chatra). Система изначально разрабатывалась распределенной. Использовал Elasticsearch (требование) для хранения данных, RabbitMQ для общения между нодами и Ruby (EventMachine, ROM) для обработки WebSocket сообщений. Операторскую часть клиента писал на ES6 (babel) и React, внутри которого была своя база данных (baobab). Часть, которую встраивал на сайты, написал на чистом JS (ES5), использовал конпилирующиеся вьюшки (для скорости) и старался минимизировать размер дистрибутива, в итоге он занял всего 36кб (логика, вьюшки, стили, svg). Разработал систему для сбора и отображения логов с мини компьютеров (Raspberry Pi) и прикрутил браузерный VNC клиент для каждого из компьютеров, количество которых постоянно меняется. Во время работы в этой компании написал два адаптера для ROM — Redis и Elasticsearch и попал в комманду разработчиков ROM. Продвинул на работе ansible, rom, couchbase. Консультировал по распределенным системам и постоянно спорил про основное хранилище для системы онлайн консультирования.
Сентябрь 2013 — Март 2015 (1 год и 7 месяцев)
Lapka Inc.
Back-end Engineer
Москва
Обязанности и достижения
Занимался разработкой HTTP API для устройств Personal Environment Monitor и Breath Alcohol Monitor, налаживал деплой приложений в DigitalOcean, писал маленькие штуки для анализа бизнес-метрик на Ruby (в том числе и Rails), Go и Erlang. Написал им карты на MapBox (Leaflet), которые собирали и обрабатывали данные, а затем рисовались на карте в виде heatmap, choropleth и т.д. Для этих карт был написан простой DSL и интерфейс к нему на React, чтобы описывать так называемые cases (выбор региона или нужной области по точкам, период, тип измерений, как визуализировать и прочее). Разработал протокол авторизации OAuth 2.0 на Erlang, для доступа к API сторонних разработчиков. В начале 2015 года начал разработку архитектуры микросервисов, в виде CoreOS и Docker контейнеров, по окончанию хотел перенести все API на Erlang, но задумка так и не дошла до конца.
Март 2013 — Сентябрь 2013 (7 месяцев)
t-human
Ruby/Rails, Elixir developer
Москва