Обо мне

Начинал как backend Java-разработчик, после появления android перебрался в эту область. Какое-то время писал и поддерживал как android-приложения, так и сервера на java, когда-то больше занимался одним, когда-то больше другим. Много занимался в т.ч. эксплуатацией серверных приложений, которые писал сам (или писала наша команда), исключительно на linux-серверах, поэтому в консоли чувствую себя спокойно и уверенно. Из технологий, с которыми работаю регулярно: docker, ansible, nginx, letsencrypt, teamcity, mongodb, python3 (aiohttp\asyncio), rabbitmq, devops. Но, скорее всего, что-то из того что я должен был бы тут еще перечислить, я забыл.

Люблю, чтобы все было структурировано, некомфортно чувствую себя когда не понимаю, как работает что-то, за что я отвечаю (начиная от кода, заканчивая процессами работы в команде).

Играю в ЧГК на любительском уровне, занимаюсь триатлоном на уровне ниже любительского, играю в футбол на уровне сильно ниже любительского.

Профессиональные навыки
GitSQLPythonNginxasyncioElasticsearchMongoDBLinuxDockerJava
Опыт работы
Разработка букмекерских веб-проектов, мобильных приложений и сервисов
Руководитель разработки
Сентябрь 2016 — По настоящее время (3 года и 2 месяца)

Компания занимается разработкой ПО для букмекерского рынка и смежных областей: мобильных приложений и веб-продуктов, проектов связанных с ML и CV.

В мою сферу ответственности входит

  • Поддержка части существующего серверного ПО и разработка небольших новых сервисов
  • Координация команды из ~20 разработчиков и исследователей, постановка и уточнение задач, контроль качества выполнения задач
  • Общение с системными администраторами, отделом эксплуатации и другими командами разработки во время запусков продукта, релиз-менеджмент
  • Настройка и поддержка в рабочем состоянии внутренних инструментов разработки (teamcity, dev-сервера, корпоративный vpn)
  • Разбор случившихся инцидентов и их исправление, частично - мониторинг состояния систем

За время работы вместе с коллегами мы

  • Перешли на стабильные релизы мобильных приложений раз в месяц-два, мобильного сайта раз в неделю-две
  • Внедрили и продолжаем придерживаться git-flow
  • Настроили CI для веб-проектов и мобильных приложений
  • Успешно пережили ЧЕ-2016 и ЧМ-2018
  • Научились обходить блокировки РКН до того, как это стало мейнстримом
  • Для одного из продуктов придумали метаязык, который бы описывал для приложения правила определенного вида спорта (для того чтобы клиентские разработчики занимались разработкой определенных абстракций, а не вникали в правила видов спорта, не понимая, почему в хоккее в какой-то момент после удаления игроков количество людей на площадке не меняется)
  • Провели очень много собеседований и расширили команду примерно в 1,5 раза
  • Запустили около 10 новых либо крупных обновлений старых проектов
Deep learning related products
Android-разработчик
Июнь 2016 — Сентябрь 2016 (4 месяца)

После выхода ios-версии приложения разработал первую версию Android-приложения. Получил опыт работы с NDK, работы с нативными библиотеками, обрабатывающими изображения.

Агрегация UGC, верификация контента на дубликаты, video summarization, LIVE-трансляции
Backend-разработчик
Май 2015 — Июнь 2016 (1 год и 2 месяца)

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

Вместе с двумя коллегами разработали, поддерживали и развивали набор микросервисов, на которых строилась платформа. Практически все они были написаны на Java\Scala изначально, но потом мы увидели, сколько оперативной памяти они используют, и для самых небольших компонентов перешли на Python.  У платформы было три потребителя,  среды для которых были изолированы. Используемые технологии: spring, playframework, docker, ansible, consul, mongodb, elasticsearch.

Также изредка занимался поддержкой android-приложений для клиентов.

Разработка мобильных приложений
Android-разработчик
Январь 2012 — Май 2015 (3 года и 5 месяцев)

Был одним из первых сотрудников компании. Разработал несколько приложений для различных стартапов, которые, к сожалению, уже закрыты. Однако один из них все еще жив, я писал для него android-приложение и backend-часть.

Проект, которым больше всего горжусь - Яндекс.Транспорт, android версию которого писал сам с нуля. 

По мере роста компании занимался собеседованием новых сотрудников: в android-команду в одиночку, на другие должности - вместе с коллегами.

Java-разработчик
Август 2010 — Декабрь 2011 (1 год и 5 месяцев)

Обязанности:

- Разработка android-приложений

- Разработка серверных приложений (java)

- Поддержка продукта после вывода его в производство

- Написание документации на разработанный продукт

Достижения:

- Написан сервер для мобильного приложения Fonbet, выпущен в market android-клиент, написанный в соавторстве с коллегой

- Написано около 5 игр (J2ME) для платформы "Мобильный мир Акция"

- Написан пул соединений с XMPP сервером для платформы "Мобильный мир Акция"

- Написал android-клиент и сервер для инстант-мессаджинга

Многопрофильный ИТ-холдинг
Ассистент консультанта по внедрению
Февраль 2010 — Август 2010 (7 месяцев)

Обязанности:

- Верстка шаблонов докуметов для системы автоматической генерации документации

- "Маппинг" старых XML-схем на новые (ручное наведение соответствия полей старой и новой схемы)

Высшее образование
Московский инженерно-физический институт
Москва
Факультет: Кибернетики; "К"
Январь 2007—Январь 2012 (5 лет)