kostya-olshanikovkostya-olshanikov

Константин Ольшаников

CTOБэкенд разработчикФулстек разработчик
Не ищу работу
Возраст: 32 года
Опыт работы: 12 лет и 7 месяцев
Регистрация: 14.09.2011
Последний визит: 3 месяца назад
Местоположение: Россия, Москва
Профессиональные навыки: GitSQLPythonNginxAsyncioElasticsearchMongoDBLinuxDockerJava
Войдите, чтобы посмотреть контакты пользователя

Обо мне

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

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

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

Опыт работы

  • Продуктовая разработка web и mobile приложений, Computer Vision систем в сфере спорта и беттинга
    МоскваОт 10 до 100 сотрудников
    Руководитель разработки
    Сентябрь 2016 — По настоящее время (6 лет)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Достижения:

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

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

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

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

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

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

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

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

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