Профессиональные навыки
Опыт работы
Август 2011 — по настоящее время
ИП Волобуев
Ростов-на-Дону
Обязанности и достижения

Ruby On Rails программист.

После прочтения в 2011 книги Agile Web Development with Rails ( Sam Ruby, Dave Thomas, и David Heinemeier Hansson) понял что Ruby и Ruby On Rails мое. С тех пор и начал развивать себя как ruby программист. Первым проектом был интернет магазин эмоций с разделеными правами пользователя (кабинет администратор, франшизодержатели, SEO и обычные пользователи). Далее устроился работать в офис. В 2012 решил попробовать тесты. Прочитал книгу Экстремальное программирование от Кента Бэка. В настоящее время TDD мой повседневный инструмент в разработки. Правда практикую его только для серверной части. Для клиентской части использую SpineJS фреймворк (MVC). CoffeeScript + SpineJS очень похожи на связку Ruby + Rails этим и обусловлен мой выбор.

В какой-то момент заметил что мне тяжело ориентироваться со сроками. Начал делать самоанализ рабочего дня, который помог решить эту проблему. Сейчас, в среднем, из десяти задач только для одной ошибаюсь со сроками. Кроме этого слежу и за частотой кода. Работаю над рефакторингом. Прочитал книгу Мартин Фаулер о рефакторинге, что помогло посмотреть на процесс рефакторинга с другой стороны. Как на инструмент упрощающий разработку, а не просто чистку кода.

Пробую разные подходы. Раньше читал все подряд в желании изучить как можно больше. Теперь изменил методику. Читаю только тогда, когда есть реальный проект где можно это попробовать. Последней такой книгой была Elasticsearch Server (Rafal Kuc, Marek Rogozinski). Появилась необходимость использование Elasticsearch в двух проектах. Что и заставило мне углубиться в него.

По такой же схеме изучал Scrum и Kanban (Scrum и XP Хенрика Книберга и Scrum и Kanban: выжимаем максимум Хенрика Книберга и Маттиаса Скарина). Находился в должности тех. директора. Внедрил Scrum в процесс разработки. А дальше, в следствии анализа и необходимости повышения производительности, команда перешла к Kanbanу. Кроме этого было выявлена необходимость создания отдела качества что в итоге и произошло.

В конце июня 2015 года завел блог - http://alexey-volobuev.info

С проектами, которые я делал, так же можно ознакомиться на моем сайте - http://alexey-volobuev.info/ru/works

Немного моего кода:

1) Была задача сделать историю для существующего проекта. История не аля гем audited. А чтоб можно было посмотреть состояние системы на заданную дату. Как в git. В итоге нашел самый быстрый путь. Написал модуль, который после save и destroy денормализует текущую запись. То есть все belongs_to, has_one, has_many и has_and_belongs_to_many преобразует в один документ Elasticsearch. Выбрал Elasticsearch, потому что он уже был подключен к проекту. Вот вырезки этого модуля:
https://gist.github.com/valexl/279cecf8d5026826704f

2) Организация поиска через ElasticSearch:
https://gist.github.com/valexl/75b4e3939cc25df88aa4

3) Простенький гем хлебных крошек - https://github.com/valexl/tasty_breadcrumbs

4) Пример использования тестов для авторизации (можно через логин/пароль а можно через Битрикс):
https://gist.github.com/valexl/251e303f67cab2229a2d
5) Реализация самих классов для этих тестов:
https://gist.github.com/valexl/082edeff275b92d3b604

6) Верхний уровень реализации realtime приложения:
https://gist.github.com/valexl/56225a8b2246fca1e268

Высшее образование
Сентябрь 2005 — Июнь 2010
ДГТУ-Ростов-на-Дону
Информатика и вычислительная техника
Ростов-на-Дону
Специализация и достижения

Математик-программист.