Staff Software Engineer. Distributed systems, identity, infrastructure.
arkhipov.net LinkedIn GitHub Telegram vlad@arkhipov.net
Twenty-two years building distributed systems. Since 2018 — identity and access management for Yandex Cloud: millions of authorization requests per second, with no room for error. Lately SIEM and CNAPP: turning a firehose of security events into something an analyst can act on.
I build reliable systems that hold up under heavy load. I like clean, efficient code that someone can still read in ten years — the PostgreSQL extension I wrote in 2013 is still in use by people I have never met.temporal_tables — system-period data versioning for PostgreSQL, as in SQL:2011. 1.0k ★, 52 forks.
Back to hands-on engineering after the management track: designing and building high-load systems in the SIEM, Security Deck and Smart Web Security teams.
A cloud provider being built from scratch for GPU workloads. I led the security services track there.
Two platform systems: identity and access management, and resource management.
The first year of identity and access management.
Java, real-time stream processing, ZooKeeper, MongoDB.
Java EE (WildFly, clustering and HA, Hibernate Envers), JavaFX, XSL-FO (Apache FOP), PostgreSQL.
I led three teams, ten engineers in total, and kept my hands in the code: reviewing and writing the critical parts, working through requirements, training staff and interviewing candidates. The system was a complex distributed ERP for a large healthcare enterprise, written mainly in Java EE and running on CentOS, WildFly, Mondrian BI and PostgreSQL, with web-based and JavaFX front ends powered by REST, JSON and WebSockets.Replacing the legacy document renderer with XSL-FO templates let end users customize medical documents themselves. The hard part was performance on large documents — and it was a good excuse to brush up on computer typography.
My work in this position began with replacing the legacy document rendering system with XSL-FO templates, generating medical documents as PDF through Apache FOP and Saxon. Other projects were mostly upgrading legacy UI with JavaFX and ReactFX, refactoring the domain model, and integrating third-party services — including online payments through Sberbank over SOAP.
Until then my work had been almost entirely technical; this role tested my judgment about people as much as about systems.
Java EE (JBoss, Hibernate, WebSockets), OSGi, PostgreSQL (PL/pgSQL), JTAPI, SMPP.
I started by leading a team of two on the migration from MaxDB to PostgreSQL. The total scope was approximately two million lines of application code. There were significant technical challenges: the database had to be bitemporal, managing time-varying data and keeping a history of all data changes. We completed the project on time in December 2010.The history requirement is what later became temporal_tables.
The next project migrated the application server while keeping legacy applications operational. Most of the work involved managing a team of two or three developers, supervising and training staff, writing and tuning the most critical parts, and reviewing the code of others.
Aside from routine integration with SMSC providers over SMPP and JasperReports Server, we integrated the system with our Avaya phone system (AES and WFO) using JTAPI. The most interesting part was building a solution to aggregate and distribute real-time events from the phone station across clients over WebSockets.As a side project: an automated scheduler for patient appointments. The problem is NP-hard in general — optimal solutions came from IDDFS at small dimensions and simulated annealing at large ones.
I was also involved in discussions about restructuring process and architecture across teams. I pushed the teams toward Agile, wrote the release policy and coding standards, and made code review and automated testing part of the process rather than an afterthought.
Java SE (multithreading, JNI, Swing), C++ (DirectX, Video4Linux, ffmpeg), DICOM (dcm4che), MaxDB, Mondrian ROLAP (MDX).
I worked on a range of projects: implementing an ERP, building a data warehouse, and writing video capture software for medical equipment. I had never written Java and never built anything cross-platform, so the first months were a steep climb through both the language and the system.
Subsequently I created cross-platform video streaming and recording software that streams and stores video from DICOM and non-DICOM modalities to a PACS server. It had to run on a variety of systems, so we wrote two implementations — DirectX and Video4Linux/ffmpeg — and integrated them with the clients through JNI. Threading and streaming were the hard part: not every codec is frame-based.Also a minor part in the client portal built with GWT and the BI server on Mondrian ROLAP and PostgreSQL.
Microsoft SQL Server (Transact-SQL), Borland C++ Builder.
While pursuing my studies, I worked part time as a junior C++ engineer for a company that had won the government contract for the road network information system. I built the UI in Borland C++ Builder, then moved to the server side in Microsoft SQL Server and Transact-SQL. By mid-2006 we had implemented algorithms minimizing the long-term life-cycle costs of maintaining the road network — which eventually ended up in my master's thesis and a series of journal articles.
Maintains an audit trail of changes to PostgreSQL tables. We never used it as originally intended — we switched to Hibernate Envers — but other people have found it useful.
Provides a mechanism to control access to data using ACLs. Works either with the PostgreSQL roles system or with application-specific roles and users.
I also contribute occasionally to WildFly/JBoss Application Server, PostgreSQL, Apache FOP and Hibernate.
Isolated regions instead of one global IAM: every region runs its own installation, an organization acts as a pseudo-global object across them, and cross-region trust goes through workload identity federation — which keeps data resident where the law requires it.Written up by a colleague: Multiregional clouds, Yandex Cloud blog, April 2026.
With honors. Selected courses: software engineering, analysis of algorithms, database theory, cryptography, game theory, discrete mathematics.
With honors. A second degree, earned in parallel with the first.