Staff Software Engineer at Yandex Cloud · Belgrade, Serbia
arkhipov.net LinkedIn GitHub Telegram vlad@arkhipov.net
I've worked in software development since 2004. At Yandex Cloud, I've worked on identity and access management since 2018, and more recently on SIEM and CNAPP. The authorization service handles millions of requests per second.
I design and build systems for the SIEM, Security Deck, and Smart Web Security teams. I returned to development after several years managing engineering teams.
I led the development of security services at Nebius, which was building a cloud platform for GPU workloads.
I led the teams responsible for identity and access management and resource management in the public cloud.
I led the team building the identity and access management service.
Java, real-time stream processing, ZooKeeper, MongoDB.
Java EE (WildFly, clustering and HA, Hibernate Envers), JavaFX, XSL-FO (Apache FOP), PostgreSQL.
I managed three teams with ten developers in total. I also reviewed code, wrote critical parts of the system, discussed requirements, trained developers, and interviewed candidates. We worked on a distributed ERP system for the diagnostic center, mainly in Java EE. It ran on CentOS, WildFly, Mondrian BI, and PostgreSQL, with web and JavaFX clients using REST, JSON, and WebSockets.
I replaced the document renderer with XSL-FO templates, using Apache FOP and Saxon to generate medical documents as PDFs. Users could then customize the documents themselves.Large documents were the main performance problem. This work also gave me a chance to brush up on computer typography.
Other work included updating the interface with JavaFX and ReactFX, refactoring the domain model, and integrating Sberbank's online payments over SOAP.
Java EE (JBoss, Hibernate, WebSockets), OSGi, PostgreSQL (PL/pgSQL), JTAPI, SMPP.
I led a team of two migrating the database from MaxDB to PostgreSQL. The application migration covered about two million lines of code. We had to preserve the bitemporal data model and the history of changes. We finished on schedule in December 2010.I later wrote temporal_tables to handle this kind of change history.
We then moved to a new application server while keeping the existing applications running. I managed two or three developers, trained staff, wrote and optimized critical code, and reviewed changes.
I worked on integrations with SMS providers over SMPP, JasperReports Server, and Avaya telephony (AES and WFO) through JTAPI. For the Avaya integration, I built a service that collected telephone switch events and sent them to clients over WebSockets.I also wrote a patient appointment scheduler. The scheduling problem is NP-hard in general. For small instances, I used IDDFS to find exact solutions. For larger instances, simulated annealing produced approximate solutions.
I helped the teams adopt Agile development, wrote the release policy and coding standards, and introduced code review and automated testing.
Java SE (multithreading, JNI, Swing), C++ (DirectX, Video4Linux, ffmpeg), DICOM (dcm4che), MaxDB, Mondrian ROLAP (MDX).
I worked on the ERP system, a data warehouse, and video capture software for medical equipment. This was my first job using Java and building cross-platform applications.
I wrote software to stream and record video from DICOM and non-DICOM equipment to a PACS server. We used DirectX on Windows and Video4Linux/ffmpeg on Linux, connected to the Java clients through JNI. Much of the work involved threading and streaming, including codecs that didn't encode frames independently.I also contributed to the GWT client portal and the BI server built on Mondrian ROLAP and PostgreSQL.
Microsoft SQL Server (Transact-SQL), Borland C++ Builder.
While at university, I worked part time on a road network information system under a government contract. I started with the interface in Borland C++ Builder, then worked on the server side in Microsoft SQL Server and Transact-SQL. By mid-2006, we'd implemented algorithms for minimizing road maintenance costs over the life of the network. I used that work in my master's thesis and journal articles.
I wrote this extension to keep a history of changes to PostgreSQL tables using system-period data versioning from SQL:2011. We chose Hibernate Envers for our own project, but other developers have used the extension.
Controls access to data through access control lists. It works with PostgreSQL roles or with the application's own roles and users.
I've also contributed to WildFly/JBoss Application Server, PostgreSQL, Apache FOP, and Hibernate.
Each region runs its own IAM installation. An organization spans regions as a pseudo-global object, with cross-region trust established through workload identity federation. Data can stay in its region.A colleague described the architecture in Multiregional clouds, Yandex Cloud blog, April 2026.
With honors. Selected courses: software engineering, analysis of algorithms, database theory, cryptography, game theory, discrete mathematics.
A second degree, with honors, completed alongside my mathematics degree.