💥 Ищем дата-инженера для участия в Публичном собеседовании на Хабр Карьере. Оставить заявку можно здесь → Участвую!
Антон Шурпин (ashurpin), 39 лет, Россия, МоскваАнтон Шурпин (ashurpin), 39 лет, Россия, Москва

Антон Шурпин

Stern Software EngineerБэкенд разработчикАрхитектор программного обеспеченияВедущий (Lead)
Не ищу работу

Контакты

Войти
Возраст: 39 лет
Опыт работы: 12 лет и 1 месяц
Регистрация: 18.02.2008
Последний визит: 1 неделю назад
Гражданство: Россия
Местоположение: Россия, Москва
Знание языков:

Обо мне

Контакт:


https://t.me/ashurpin



Специализация и профессиональные навыки и взгляды:


  • Текущим основным языком является Golang. Некоторые вещи знаю довольно глубоко, как то устройство планировщика и GC.
  • Ранее профессиональный Pythonista. Работал с RDBMS используя SQLAlchemy.  Хорошо понимаю работу асинхронной подсистемы async/await; не люблю asyncio, грущу, что Trio в продакшене не будет ). Апологет FastAPI, Pydantic и типизации данных. Делать что-то большое или высоконагруженное на Python более не готов. 
  • Храню данные в PostgreSQL. Знаю что такое bloat, как устроен MVCC и зачем нужен пулер. Пережил боли "MongoDB из коробки масштабируется" и "ой, при выборе мастера, что-то пошло не так"приверженец схем и строгих валидаций.
  • Для больших потоков данных люблю Kafka. Умею сохранить и обработать сообщения с семантикой  exactly-once.
  • Не боюсь Linux. Понимаю устройство и работу OS (процессы/потоки/подсистема виртуальной памяти).
  • Готов получить в k8s namespace и пасти свои сервисы в нём.
  • Люблю спать по ночам и Fault Tolerant дизайн систем. Большое внимание уделяю проектированию и архитектуре систем. Люблю задавать вопрос «А что будет, если X пойдёт не по плану?». Отказоустойчивость превыше фич.
  • Для себя и команды склепаю SPA админку на Svelte. Но фронт делать не стану, даже если наши админки будут лучше front'а.

Профессиональные цели:


Делать мир лучше и причинять пользу, выпуская интересные и полезные людям проекты.

Навыки

Внутри навыка можно посмотреть пройденные и доступные тесты
Golang
Linux
Высоконагруженные системы
Высокая доступность
Apache Kafka
PostgreSQL
Redis
gRPC
Создание архитектуры проектов
Проектирование информационных систем

Опыт работы

  • Команда разработки ведущего e-com в России
    МоскваБолее 5000 сотрудников
    Ведущий разработчик, руководитель подгруппы сервисов эффективности рекламы
    Февраль 2023 — Декабрь 2023 (11 месяцев)

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

    Курировал разработку MLOps подхода в команде и широком внедрении ML-моделей в продакшен.

    Выработка подходов к разработке и эксплуатации критичных компонентов.

    Старший разработчик в группе прайсмониторинга
    Декабрь 2021 — Февраль 2023 (1 год и 3 месяца)
    • Технический кризис-менеджмент полученных систем:
      • микросервисы с десятками миллионов сообщений, прокачиваемых через Kafka
      • решение проблем с deadlock'ами в Postgres
      • решение проблем экстравагантных решений типа 255 партиций
      • организация надёжной наливки данных в Clickhouse
    • Разворачивание и эксплуатация распределённой конфигурации Clickhouse.
    • Итог: вывод системы прайсмониторинга из состояния кризиса, инцидентов и массовой потери данных.

  • Мы tech-команда, которая создает сервис доставки из магазинов и ресторанов (ex СберМаркет) и делает это с любовью
    МоскваОт 1000 до 5000 сотрудников
    Lead Software Development Engineer at Search Team
    Март 2021 — Ноябрь 2021 (9 месяцев)
    • Проектирование и реализация поискового сервиса по каталогу продуктов и последующее его продуктовое развитие.
    • Golang, Python, Solr (Lucene, JVM), микросервисы, k8s. Проектирование, архитектура.
    • Разработка поиска, выдача которого нравится самим.
    • Отработка шардированной конфигурации Solr'а.
    • Оптимизация параметров JVM.
    • Реализация спеллчекера (расстояние Левенштейна).
    • Переработка пайплайна индексации.
    • Нагрузочное тестирование конфигураций кластера.
  • Ведущий платёжный сервис в России и странах СНГ
    МоскваОт 1000 до 5000 сотрудников
    Старший разработчик программного обеспечения
    Декабрь 2018 — Июнь 2020 (1 год и 7 месяцев)

    В основном серверная разработка с различными технологиями распределённых реестров (DLT).

    Участие в разработка backend'ов с использованием python и golang стеков

    Разработка тулинга, облегчающего работу с Ethereum (поиск транзаций, отлавливание форков, облешчение понимания почему же транзакция не коммитится и т.д.)

    Разработка CI/CD пайплайнов в Gitlab CI (использование Jsonnet). Оптимизация сборки до 2-3-4 мин до деплоя в stage окружение.

    Использование и настройка Kubernetes в GCP (Google Cloud Platform)

    Разработка C++ плагина к 1С, сохраняющего хэши документов в Мастерчейн (
    Ethereum).

  • Компания, которая развивает самую популярную в России поисковую систему и десятки других сервисов
    МоскваБолее 5000 сотрудников
    Разработчик программного обеспечения
    Февраль 2015 — Ноябрь 2016 (1 год и 10 месяцев)

    Участие в разработке внутренней общей CI-системы и хранилища артифактов.

    • Разработка инструмента онлайн-мониторинга загрузки дюжины серверов ядра системы (отвечать на вопросы какие ручки грузят, кто грузит, наши ли сервера или по API извне, по смыслу realtime GROUP BY с сортировками).
    • Разбор инцидентов и саппорт пользователей системы.
    • Разработка задачи по максимально синхронному снятию бэкапа с шардированной MongoDB (Использование Zookeeper в качестве координатора одновременного запуска удалённых воркеров и синхронизации их работы).
    • Python + MongoDB

  • Место встречи глобально мыслящих профессионалов технологического сообщества
    МоскваОт 100 до 1000 сотрудников
    Бэкенд разработчикPython разработчик
    Август 2013 — Январь 2015 (1 год и 6 месяцев)

    Участие в разработке облачной интерактивной медиа платформы NPTV,  «телевидения нового поколения».

    • Принял поддержку и дальнейшую разработку точки входа в облако (приём подключений от плееров, их авторизация, верификация и дальнейшая переадресация на балансер). Python + eventlet
    • Разработка для eventlet'а биндингов для новых сисколов - sendfile, inotify, etc.
    • Разработка Kafka-клиента, работающего с eventlet. Умная система буферизации и массовой отправки сообщений, что значительно повысило пропускную способность
    • Участие в формировании DevOps-культуры
    • Разработка proxy для поддержки клиентов, находящихся за NAT'ом
    • Доработки во внутренней CI-системе

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

  • ООО «E-commerce technology»
    Москва
    Ведущий Python-разработчик
    Июль 2012 — Декабрь 2012 (6 месяцев)

    Попытка сделать digly.ru. Мой неудачный опыт и понимание, что не все стартапы одинаково полезны.

  • ООО «Этерон»
    Смоленск
    инженер-программист
    Март 2011 — Июль 2012 (1 год и 5 месяцев)

    Участвовал в разработке системы управленческого онлайн-учёта для бизнеса «Большая Птица» (demo).  С момента первого коммита и до запуска публичной версии.

    • Проектирование и реализация частей back-end'а на Python (web-фреймворк Cherrypy, ORM SQLObject)
    • Проектирование базовых классов и 
    • Разработка интерфейса на JavaScript фреймворке Qooxdoo
    • Выбор и обоснование схемы хранения данных в PostgreSQL
    • Разворачивание тестового окружения на Ubuntu, Apache + mod_wsgi
    • Автоматизация некоторых процессов разработки на shell (первый "deploy.sh", его поддержка и эволюция)
    • SVN-хуки для предотвращения определённых коммитов
  • ЗАО «Научно-исследовательский институт современных телекоммуникационных технологий»
    Смоленск
    Инженер-электронщик 2й категории
    Апрель 2008 — Сентябрь 2010 (2 года и 6 месяцев)
    • проектирование аппаратной части радиоаппаратуры
    • разводка печатных плат (помощь разводчикам, консультирование по схемотехнике и расположению элементов)
    • написание прошивок для AVR и ARM микроконтроллеров
    • разработка частей и поддержка платформы Linux на Blackfin DSP
    • разработка управляющего ПО под Linux (C, posix threads)
    • внедрение Lua, как слоя конфигурирования основного ПО
    • разработка Linux драйверов для сопряжения с аппаратурой
    • поддержка U-boot, исправление ошибок в его сетевых драйверах
    • разработка технологии удалённого обновления ПО через Ethernet (загрузчик микроконтроллера и ПО для ПК на C#)

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

  • СФ МЭИ

    Смоленский филиал Московского энергетического института
    Смоленск242 выпускника
    Компьютерных Технологий и Электроники
    Сентябрь 2003 — Февраль 2009 (5 лет и 5 месяцев)

    Инженер по специальности «Вычислительные машины, комплексы, системы и сети»