Технический лидер. Распределённые системы, управление доступом, инфраструктура.
arkhipov.ru LinkedIn GitHub Telegram vlad@arkhipov.ru
Двадцать два года разрабатываю распределённые системы. С 2018 года — управление доступом в публичном облаке Яндекса: миллионы запросов авторизации в секунду без права на ошибку. В последние годы — SIEM и CNAPP: превращаю поток событий безопасности в то, с чем может работать аналитик.
Умею строить надёжные высоконагруженные системы. Люблю аккуратный и эффективный код, который через десять лет всё ещё можно прочитать: расширение для PostgreSQL, написанное в 2013 году, до сих пор используют люди, которых я никогда не встречал.temporal_tables — версионирование строк по системному времени, как в стандарте SQL:2011. 1.0k ★, 52 форка.
Вернулся к активной разработке после менеджерского трека: проектирую и делаю сложные нагруженные системы в командах SIEM, Security Deck и Smart Web Security.
Облачный провайдер, который строился с нуля под GPU-нагрузки. Вёл в нём направление сервисов безопасности.
Две системы публичного облака: управление доступом и управление ресурсами.
Год, с которого началось управление доступом.
Java, потоковая обработка в реальном времени, ZooKeeper, MongoDB.
Java EE (WildFly, кластеризация и отказоустойчивость, Hibernate Envers), JavaFX, XSL-FO (Apache FOP), PostgreSQL.
Руководил тремя командами, десять инженеров суммарно, и не выпускал код из рук: ревью и написание критичных частей системы, работа с требованиями, обучение сотрудников и собеседования. Система представляла собой сложную распределённую ERP для крупного медицинского учреждения, написанную преимущественно на Java EE и работавшую на CentOS, WildFly, Mondrian BI и PostgreSQL, с веб- и JavaFX-клиентами поверх REST, JSON и WebSockets.Замена старого генератора документов на шаблоны XSL-FO позволила пользователям настраивать медицинские документы самостоятельно. Сложнее всего далась производительность на больших документах — и это был хороший повод вспомнить компьютерную типографику.
Работа в этой должности началась с замены устаревшей системы генерации документов на шаблоны XSL-FO, формирующие медицинские документы в PDF через Apache FOP и Saxon. Остальные проекты в основном касались обновления устаревшего интерфейса на JavaFX и ReactFX, рефакторинга доменной модели и интеграции со сторонними сервисами — включая онлайн-оплату через Сбербанк по SOAP.
До этого моя работа была почти исключительно технической; здесь пришлось научиться разбираться в людях не меньше, чем в системах.
Java EE (JBoss, Hibernate, WebSockets), OSGi, PostgreSQL (PL/pgSQL), JTAPI, SMPP.
Начал с руководства командой из двух человек: перевод базы данных с MaxDB на PostgreSQL. Общий объём — около двух миллионов строк прикладного кода. Технически задача осложнялась тем, что база должна была остаться битемпоральной: работать с данными, меняющимися во времени, и хранить историю всех изменений. Проект был завершён в срок, в декабре 2010 года.Требование хранить историю впоследствии и превратилось в temporal_tables.
Следующий проект — переход на новый сервер приложений с сохранением работоспособности старых приложений. Большая часть работы состояла из управления командой из двух-трёх разработчиков, обучения сотрудников, написания и оптимизации самых критичных частей и ревью чужого кода.
Помимо рутинных интеграций с SMS-провайдерами по SMPP и с JasperReports Server, мы интегрировали систему с телефонией Avaya (AES и WFO) через JTAPI. Самой интересной частью была система, собирающая события телефонной станции в реальном времени и раздающая их клиентам по WebSockets.Побочный проект — автоматическое планирование записи пациентов. В общем виде задача NP-трудна: оптимальные решения давал IDDFS на малых размерностях и имитация отжига на больших.
Участвовал и в обсуждениях перестройки процессов и архитектуры между командами. Подтолкнул команды к гибким методологиям, написал релизную политику и стандарты кодирования, сделал ревью и автоматическое тестирование частью процесса, а не дополнением к нему.
Java SE (многопоточность, JNI, Swing), C++ (DirectX, Video4Linux, ffmpeg), DICOM (dcm4che), MaxDB, Mondrian ROLAP (MDX).
Работал над разными задачами: внедрение ERP, хранилище данных, разработка программ видеозахвата для медицинского оборудования. До этого я не писал на Java и не делал ничего кроссплатформенного, так что осваивать пришлось всё сразу: и язык, и систему.
Затем я написал кроссплатформенное ПО для потоковой передачи и записи видео, отправляющее и сохраняющее видео с DICOM- и не-DICOM-модальностей на PACS-сервер. Оно должно было работать на разном железе, поэтому мы сделали две реализации — на DirectX и на Video4Linux/ffmpeg — и связали их с клиентами через JNI. Сложнее всего дались многопоточность и потоковая передача, так как не все кодеки покадровые.Плюс небольшое участие в клиентском портале на GWT и BI-сервере на Mondrian ROLAP и PostgreSQL.
Microsoft SQL Server (Transact-SQL), Borland C++ Builder.
Во время учёбы работал на полставки младшим C++-разработчиком в компании, выигравшей государственный контракт на информационную систему дорожной сети. Сначала отвечал за интерфейс на Borland C++ Builder, затем и за серверную часть на Microsoft SQL Server и Transact-SQL. К середине 2006 года мы реализовали алгоритмы минимизации стоимости жизненного цикла содержания дорожной сети — они в итоге и легли в основу дипломной работы и серии журнальных статей.
Ведёт историю изменений таблиц PostgreSQL. По изначальному назначению мы его так и не использовали — перешли на Hibernate Envers, — но другим людям оно пригодилось.
Даёт механизм разграничения доступа к данным через списки контроля доступа. Работает как с системой ролей PostgreSQL, так и с ролями и пользователями самого приложения.
Кроме того, эпизодически участвую в разработке ряда открытых проектов, в том числе WildFly/JBoss Application Server, PostgreSQL, Apache FOP и Hibernate.
Изолированные регионы вместо одного глобального IAM: каждый регион — самостоятельная инсталляция, организация выступает псевдоглобальным объектом поверх них, а межрегиональное доверие строится через workload identity federation. Это и позволяет хранить данные там, где того требует законодательство.Подробный разбор написал коллега: Мультирегиональные облака, блог Yandex Cloud, апрель 2026.
Диплом с отличием. Избранные курсы: программная инженерия, анализ сложности алгоритмов, теория баз данных, криптография, теория игр, дискретная математика.
Второй диплом с отличием, получен параллельно с первым.