Context
I worked on the DSP side of VK’s advertising platform, developing components involved in ad serving and auctions.
Identity and user-state processing
I worked on moving the ad-serving daemon from device-specific advertising identifiers to cross-device identifiers, including changes to user-state lookup behaviour.
Auction-object caching
I developed in-memory caching for auction objects. I also independently noticed a memory-use problem and manually reconstructed the complex runtime dependency graph to identify unnecessary object loading.
The optimisation helped the service fit within smaller container memory budgets as part of the platform’s sharding work.
Advertising gateway
I implemented a gateway for distributing requests to backend shards, combining their auction results, and enriching responses with information from external services.
Container-platform adaptation
I adapted the ad-serving daemon for the internal container platform. This included readiness and liveness probes, changes to CPU-affinity assumptions, and resource-limit configuration.
My role within the team
I collaborated closely with owners of neighbouring services and proposed possible solutions to management. I contributed the implementation and optimisation work described here; I did not own the overall sharding architecture.
Results
The work improved the service’s readiness for sharded, container-based operation. The memory investigation is a particularly useful example of my approach: reconstruct the relationships, locate avoidable work, and make a targeted change.