Portfolio¶
Production work, newest first. Personal projects are on the Projects page.
-
Vacation Cafe Simulator, Alice Games, 2024 - now
Tech lead on a 4-player co-op cafe sim on Steam, Very Positive. Rendering, multiplayer, architecture.
-
VR-Labs, Vizex, 2019 - 2024
Started the physics laboratories line that grew to 20+ labs and 2.8M+ users on PC, mobile and WebGL. Custom solvers, a patented electrodynamics engine, the 2D drafting and 3D modeling editors.
-
Digital twins and GIS, Vizex, 2016 - 2019
City-scale 3D twins from vector maps, Skia brought in through SkiaSharp as the tile rasterizer, gigabytes of data streamed to Windows, Linux, iPad and Android.
-
AR coloring books, Toonidee, 2016
Camera-driven AR on Unity and Vuforia for preschoolers, three magazines in under a year.
Vacation Cafe Simulator, Alice Games, 2024 - now¶
| Role | Tech lead of a cross-functional team of about ten with three to four engineers. Technical direction and delivery |
| Years | July 2024 - now, remote |
| Platforms | PC on Steam, Steam Deck Playable |
| Stack | Unity, HDRP, Netcode for GameObjects, UGS Relay, Lobby and Auth, Steam Datagram Relay, Steamworks SDK, Jenkins, GitLab |
| Result | Released 20 August 2026, Very Positive with 700+ reviews, demo #26 of 3,400+ at Steam Next Fest |
A 4-player co-op cafe sim on Steam. I joined Alice Games in July 2024 as tech lead and own the Unity architecture, the rendering and the multiplayer client. The game was released on 20 August 2026 and holds Very Positive with 700+ reviews.
Rendering and the frame budget¶
HDRP custom shaders, lighting, Volumes and post-processing, plus runtime procedural mesh generation. A profiling-driven refactor took worst-case frame spikes from over 30 ms to 11-12 ms, inside the 16.6 ms budget: batched network updates to cut RPC volume, culling, LODs, Addressables for asset loading, and the removal of managed-allocation spikes.
Multiplayer¶
Host-authoritative model on Netcode for GameObjects over UGS Relay and Steam Datagram Relay, with UGS Lobby and Auth and the Steamworks SDK. State synchronization, ownership and late-join in production, save and load of the networked world state, transactional inventory and progression. I fixed bugs in Netcode for GameObjects itself and rewrote the Steam transport implementation under it to fragment and reassemble large messages.
Gameplay systems¶
A modular mini-game framework (state flow, sessions, scoring, content hooks) so design adds content without engineering. Under it: character controller, NPC AI with navigation and state machines, inventory with validation and transactions, quests, leveling, economy, open world and in-game transport, async scene loading.
Engineering standards¶
Validation moved to Editor time, so artists and level designers catch asset and data regressions before CI. Test coverage on critical paths, code generation, CI/CD on Jenkins and GitLab. Generative-AI asset pipelines for 2D/3D content on ComfyUI and Gradio, a Gemma 3 translation plugin for localization, and day-to-day work in an AI-assisted setup: Claude Code agent workflows for generation, refactoring and review, Unity CLI automation for scenes, prefabs, tests and builds.
VR-Labs, Vizex, 2019 - 2024¶
| Role | Started the R&D line, promoted to team lead, led cross-functional teams of up to ten |
| Years | January 2019 - March 2024, Moscow, remote from 2020 |
| Platforms | PC, iOS, Android, WebGL (screen-based despite the name) |
| Stack | Unity, URP, PhysX with custom solvers, Burst, Job System, Zenject, UniTask, Roslyn source generators, TeamCity |
| Result | 20+ laboratories, 2.8M+ users, 4K inside a 33 ms frame budget on integrated graphics, a patented electrodynamics engine |
In 2019 I started a new product line at Vizex: real-time physics laboratories for schools. It began with a virtual electrodynamics lab. The electricity simulation engine was rewritten several times until it matched real-world measurements, and that version is patented. My own Experimenters solves the same class of problem today, with its own circuit solver on Burst.
The line became the company's flagship, with 20+ laboratories and 2.8M+ users. I was tech lead or team lead on about ten of them, running cross-functional teams of up to ten.
Electrodynamics, magnetism, electrostatics¶
The first project in the line. The company was moving into virtual physics laboratories for schools and the technical demo had three months.
| Tech demo, 2019 | Shipped lab |
|---|---|
![]() |
![]() |
WebGL was required: the labs embed into the web platforms of electronic schools. The target was 4K inside a 33 ms frame budget on a 7th-gen Core i3 with integrated graphics, the school interactive panels.
That target drove the line for the next five years, 2019 to 2024: CPU, GPU and memory profiling, lower memory use and runtime asset loading, a migration from the Built-in pipeline to URP with custom render features, custom shaders and procedural mesh generation. 4K held inside 33 ms on the school panels. On iPads and laptops the labs ran under 16.6 ms.
On WebGL, assets that could not run on the single-threaded runtime were replaced and the old input system was wrapped for touch events.
Mechanics and Archimedes¶
A series of labs on mechanics, hydrostatics, pulleys, friction and Archimedes' principle. PhysX is the core, with custom solvers built around it.
Hydrostatics. The piston solver works on impulses transferred between colliders and accounts for the pressure of vertical water columns.
Pulleys and ropes. Rewritten from vertical force distribution for suspended objects to arbitrary rope and pulley configurations.
Buoyancy. Submerged volume, center of mass, Archimedes force, with solver stabilization for extreme density ratios (wood in mercury).
Communicating vessels. A solver for liquid level equalization across connected containers, first for one liquid, then for liquids of different densities with pressure gradients between containers and explicit handling of numerical stability.
Silaeder: 2D drafting and 3D modeling¶
Two editors for the school curriculum.
2D drafting. A vector editor that feels like a raster tool. Intersection detection and snap search over spatial indices, intersections of arcs, Catmull-Rom splines and segments, SDF-based vector rendering.
3D modeling. A child-friendly 3D editor for spatial thinking. Bezier curves, kinematic operations (lathe, extrusion, contour following), Boolean operations on a custom attribute mesh with smoothing groups, ray casting against 3D splines, dynamic spatial grids with distance-independent line thickness.
Other labs: consulting and project rescue¶
Surrounding World. An educational game for elementary school with more content than its schedule allowed: dialogs, 3D models, logic branches and mini-games. I joined, re-scoped it around its core features, and it shipped on time.
Molecular physics, inorganic chemistry, optics. Shaders, particle systems and the core interaction logic.
![]() |
![]() |
|---|---|
![]() |
Logic circuits, robots, robo competitions. I ported the electrical circuit simulation library into the project, took over the circuit and connector logic, and consulted the team on PhysX, URP, Input System and Shader Graph.
Digital twins and GIS, Vizex, 2016 - 2019¶
| Role | Unity software developer |
| Years | December 2016 - January 2019, Moscow |
| Platforms | Windows, Linux, iPad, Android |
| Stack | Unity, SkiaSharp as the tile rasterizer, GIS vector-to-mesh, REST, WebSockets |
| Result | 3D digital twins of a city healthcare network and of municipal utility infrastructure, gigabytes of real-time data on desktop, tablet and mobile |
Big data analytics and visualization for banks and large enterprises: situational centers and digital twins.
Situational centers¶
Dashboards over real-time data. Two examples: EMIAS and GIS Housing and Utilities.
EMIAS (Unified Medical Information and Analytical System). Healthcare management: doctor appointments, accessibility of medical facilities, real-time doctor availability. I built the 3D digital twin of Moscow with medical facilities from vector maps: cache validation and versioning, tile-based data storage optimization, and the same performance on Windows, Linux, iPad and Android.
The application processed gigabytes of real-time data. Dashboard widgets were wired to data marts with the analytics and backend teams, a Unity mapping service rendered geolocation-based indicators, and iDVP let users build their own widgets over data marts.
![]() |
![]() |
|---|---|
![]() |
![]() |
![]() |
GIS Housing and Utilities. A digital twin of municipal utility infrastructure for real-time monitoring and management. Same stack and the same cross-platform requirements as EMIAS.
What I built¶
- 3D digital twins from vector maps, and a GIS vector-to-mesh tool that generates building geometry for spatial analysis.
- Map rendering moved from raster tiles to vector tiles, with Skia brought in through SkiaSharp as the rasterizer, rendering tiles into textures, which cut bandwidth for 3D building visualization.
- Cache validation and versioning, tile-based storage optimization, the data processing pipeline and the interactive visualization layer.
- Client-server communication and data pipelines over REST and WebSockets.
- Existing desktop products migrated to Unity for cross-platform delivery.
![]() |
![]() |
|---|---|
![]() |
AR coloring books, Toonidee, 2016¶
| Role | Unity software developer, team of a producer, two developers and three artists |
| Years | February 2016 - December 2016, Moscow |
| Platforms | iOS, Android |
| Stack | Unity, Vuforia |
| Result | Three AR magazines in under a year: Super Rescuer, Super Rescuer 2, Paperworks |
Toonidee is a studio at Amedia that made TV shows about games for the 2x2 channel. I built AR games for preschool children there on Unity and Vuforia.
Interactive AR coloring books¶
A child colors a page, points the tablet camera at it, and the camera recognizes the drawing and plays an animated cartoon or a mini-game over it.
Children used markers instead of crayons, went outside the lines and added unrelated marks. The tracker I built reconstructs the picture from the intact reference regions.
Tie-ins to Paper Tales (Bumazhki) and Be-Be-Bears (Mi-Mi-Mishki).
![]() |
![]() |
|---|---|
![]() |
What I built¶
The color recognition algorithm for the coloring pages and real-time recoloring of 3D objects from camera input. The mini-game logic (match 3, object matching, mazes), the asset loading and versioning system, shaders, the core application logic, and ports of existing products to Unity for iOS and Android.
![]() |
![]() |
|---|---|
![]() |


























