Мегапосты:
Мой круг становится Хабр Карьерой! Узнать подробности
Обо мне


Профессиональные навыки
Опыт работы
Toptal connects start-ups, businesses, and organizations to a growing network of the best developers in the world.
Senior Ruby Developer
Ноябрь 2019 — По настоящее время (2 месяца)
Международный SaaS продукт для автоматизации Facebook и Google рекламы
Ruby & Go Developer
Сентябрь 2018 — Ноябрь 2019 (1 год и 3 месяца)
Provectus (Crowdflower)
Сан-Франциско и район залива
Senior Ruby Developer
Март 2017 — Сентябрь 2018 (1 год и 7 месяцев)

Работаю только как, бэкенд разработчик. За все время работы на данной должности написал ~ 100 строк во фронтенде.

Чем я там занимаюсь:

Использование технологий: 

Ruby, Rails, Capistrano, Docker (Swarm, Compose), Postgres, Redis, ElasticSearch (небольшая часть), 

RabbitMQ, AWS (EC2, ECR, S3, Lambda), Jenkins, Kubernetes, Rspec, Jira, Confluence.

Разработка и проектирование REST API для использования пользователями, другими сервисами и фронтендом (только Веб).

Разработка и проектирование новых микросервисов, документация и развертывания (semaphore, docker, aws, Kubernetes). Активное внедрение RabbitMQ для коммуникации между микро сервисами (по возможности).

Активное применение TDD (в 95% случаев сначала пишем тесты, а потом код) и довольно активный Code Review (минимум 3 человека апрувят PR).

Разработка функционала для частей которые находятся под нагрузкой (~ 100k rpm, 50% write, 50% read) и его оптимизация (весь этот код проходит нагрузочной тестирование). Все это работает под нагрузкой ~ 100 млн запросов в сутки.

Работа с большим объемом данных в postgresql (есть таблица в более 1 ТБ), оптимизация и профилирование запросов к БД. Точно так же относимся к работе с редисом.

Поиск багов (одна из любимых моих частей, приложение огромное и очень много асинхронных частей, который сложно дебажить).

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

Частичное использованием понятий из DDD (entities, service objects, repositories), следование принципам SOLID и Rails Way.

Работаю на outsource из компании Provectus.

zencar
Казань
Ruby Backend Developer
Сентябрь 2016 — Январь 2017 (5 месяцев)

Компания занимается аггрегированием сервисных организацией по обслуживанию автомобилей.

Занимаюсь разработкой Rest API бэкенда для SPA и (IOS, Android) на ruby on rails.

Используется Trailblazer, Rails (ActionController, ActiveRecord), ActiveModelSeriazliers, Postgres, ElasticSearch, Dry-rb, Sidekiq, Docker (compose, machine).

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

Также в команде есть джуниор разработчик (обучение, code review).

За время работы в проекте полностью перешел на стек Trailblazer и Dry-rb, Docker.

Также были разработки на Elixir и Ecto, который используется для парсинга сайтов для получения лидов.

Govermedia
Казань
Backend developer
Июнь 2014 — Июль 2016 (2 года и 2 месяца)
Компания занимается разработкой социальной сети для бизнесменов, сервис включает в себя следующие возможности - полную интеграцию с банковской системой (платежи со счета на счет, выписки, платежные поручения, экспорт в 1С, эквайринг, рекарринг) - систему двухфакторной аутентификации на основе телефонных звонков (IPP) - полное юридическое сопровождение сделок (Создание договоров, цифровые подписи) - Социальная составляющая (видео, фото, чат) В этой компании я занимаюсь бэкенд разработкой используя следующий стек технологий Ruby, Rails, Sidekiq, Asynk (самописный гем), Puma, RabbitMQ, Redis, MemCache, ElasticSearch (используем для поиска и хранения сложных структур данных), Postgres (первичное хранлище), Nginx, Linux, Ansible (используем для развертывания нашей инфраструктуры). В качестве протокола общения между серверов и клиентами используется rest, http json api. Апи пользуются два клиента JS приложение, написанное на Angular и IOS приложение. В качестве хранилища используем свой кластер Riak CS (аналог S3, в продакшен так и не был выпущен). Сервис разбит на микросервисы, общение между микросервисами происходит используя протокол AMQP и брокер RabbitMQ. Для обработки amqp сообщений использовался гем Asynk (написан он мной, с использованием celluloid, bunny и capistrano для удаленного управления). Ссылка на репозиторий, https://github.com/konalegi/asynk. Первое время занимался разработкой JS, Angular, в течении 3-4 месяцев, потом полностью перешел на бэкенд разработку. Есть знания в языке JS, Angular занимался разработкой фронтенда в течении года. Очень плохо знаю HTML, CSS. При разработке придерживаюсь следующих принципов Domain Driven Development, SOLID, TDD, Design Patterns, Rest, CQRS, Event Sourcing. В процессе работы занимался руководством над небольшой командой разработчиков (9 человек, 4 мидла и 5 джуниоров). Гем над которым я работал в свое свободное время, для более детального изучения Ruby on Rails (https://github.com/konalegi/endive), пытался написать свой, на базе celluloid, reel. Был небольшой опыт разработки приложения для Android (приложение закрытое, для частного использования, могу показать при собеседовании).
Высшее образование
Казанский государственный энергетический университет
Казань
Факультет: Институт электроэнергетики
Сентябрь 2007—Июль 2011 (3 года и 10 месяцев)
Инженер математик