I've always been fascinated by computers and started programming at an early age—probably before I was old enough to realize how much debugging was in my future. After earning my master’s degree in Computer Science, I moved to Canada and worked for various internet companies. I especially enjoy working with small to medium-sized startups, where the pace is fast, and every day brings a new challenge.
These days, I’m soaking up the sun on the Gulf Coast of Florida, enjoying a life that balances technology with adventure. My hobbies include hot yoga (because why not sweat voluntarily?), sailing (when I feel like letting the wind do the work), and long-range shooting (because precision and patience go hand in hand—just like coding).
Experienced web developer with a strong background in building scalable and high-performance applications using Ruby on Rails and Elixir, as well as Javascript. Proficient in developing real-time features with WebSockets, ensuring seamless, interactive user experiences. Adept at writing clean, maintainable code and optimizing backend architectures to enhance efficiency and reliability.
Skilled in technical design and architecture, with a strong understanding of TCP/IP and HTTP protocols for building efficient, scalable web applications. Experienced in designing high-performance database solutions with SQL, optimizing queries for speed and reliability. Proficient in event-driven architectures using PubSub patterns to enable real-time data processing and seamless system communication.
As a dedicated team lead, I excel at delivering projects on time while maintaining high technical standards. A true jack-of-all-trades, I thrive on diving into any technical area—whether backend, frontend, infrastructure, or debugging complex issues—to ensure success. I enjoy leading teams, fostering collaboration, and mentoring developers, but remain deeply hands-on with coding, striking the perfect balance between leadership and technical execution.
Technical Lead, Replay Gaming
Working as a Tech Lead for ReplayPoker.com, one of the top social poker sites worldwide. Headed the platform overhaul project to upgrade the gaming platform: a mix of Elixir and Ruby services connected via pubsub messaging.
Senior Developer, Technical Lead
Worked as a consulting Senior Developer / Tech Lead for a number of tech startups: Gilt, Ideeli, and some others.
Lead Developer @ pingg.com
Employee #1, hired and led the rest of the development team. Led design and development of the initial service prototype as well as the first public release. The startup was subsequently acquired by Celebrations.com.
Developer, Senior Developer, Architect @ Tucows.com
Responsible for architecture and development of Tucows' registrar services, including domain provisioning system (OpenSRS) and email/dns services.
Masters Degree in Computer Science
Urals State Technical University, Yekaterinburg, Russia
Bachelor's Degree in Computer Science
Urals State Technical University, Yekaterinburg, Russia
You deployed your brand new Phoenix webserver installation, or a data processing pipeline using Broadway - or any other piece of infrastructure running on the Beam VM, and it’s all working just great. Global interpreter lock and threads corrupting each other’s memory are but a faint memory, api request latencies are nice and predictable, production bottlenecks are a breeze to identify and fix, what else could one want at this point? Read more
Google Pubsub supports both REST and gRPC endpoints, and the latter is clearly the winner in terms of performance. For instance, it takes about 1 ms to receive a REST message with the pubsub emulator on my laptop but I can get out 50 of them via the gRPC endpoint in the same single millisecond (using HTTP 2 streaming over the same TCP connection of course so not a completely fair comparison but at the same time it’s not like I am forcing the REST endpoint to stick with HTTP 1. Read more
Server-Sent Events is an efficient way to stream data from a web server to client, supported by all modern browsers. It is a great fit for many use cases where one-way communication is sufficient, and is much simpler and has less overhead than web sockets: any sort of status updates, streaming quotes etc. This post will show how to use SSE with Elixir-based Phoenix Web Server. Demo I will demo an app with a single web page streaming server’s current time.
Read more