What's your current role and what do you like about it?
I am a Dubai-based Software Architect at Dodo Brands. I lead the development of the architecture of Dodo IS, a system that underpins everything behind the Dodo Pizza and Drinkit brands, which are present in 27 countries and run over 1,700 restaurants. In my work, I like most that you can see the results of architectural decisions instantly in restaurants and coffee shops while the orders are moving at the scale of 720 orders a minute at a 99.9% SLA.
When Dodo was one of the fastest-growing pizza startups internationally, we often found ourselves in a situation where you try to rebuild the plane while flying it. We had to refactor systems, break the monolith and introduce upgrades while operating the business. And we had to find the balance between the product features that customers wanted immediately and technical solutions that would keep the system healthy the day after. Finding this balance by solving burning day-to-day problems without losing sight of the bigger picture is what I like most about my job.
How did you get into Programming?
My father is a programmer, and there was a computer at our home before I was born. Probably I had no chance to escape this destiny.
How did you get into writing about Programming?
I started writing out of business necessity rather than personal ambitions. At one point, we as a company embarked on a gargantuan task of growing our engineering team to 250 developers, which meant we had to hire 150 people in one year. What we needed was to promote our employer brand fast. We decided to do it through publishing technical articles, making speeches at industry conferences, and organizing tech meetups. So that’s when I started speaking at conferences and writing articles dedicated to my work. The company also gave out merch and pizza for doing it, which, frankly speaking, helped.
What's your earliest memory of you learning to code?
My earliest memory of coding dates back to my primary school, when I was learning BASIC on a Soviet BK, "БК" in Russian, which stands for “бытовой компьютер", or “home computer". Later in my school years, I learned C and Python and ran my own FreeBSD server, where I wrote scripts for an Eggdrop IRC bot. The learning process was built around attempts to fix what I had broken myself earlier!
When Elon Musk achieves his dream of getting us to Mars, what technology do you think would be important on Mars and why?
As a software engineer, I think Mars would need efficient and reliable self-contained systems. All resources on the red planet, like computing power, energy, bandwidth, and replacement hardware, would likely be limited, so using them carefully would be critically important. The same goes for failing safely when something goes wrong.
AI agents would be essential as well. They could help human engineers detect problems (especially with time zones, because Mars has its own, and days there are 40 minutes longer), adapt software and find an offline archive of human knowledge. I believe we would need to bring our encyclopaedias, textbooks, medical references, and engineering manuals with us in addition to computing power for using them. I’d also say that an offline copy of Stack Overflow deserves a seat on a spaceship.
What's a programming language that you would build EVERYTHING and ANYTHING in and why?
I mostly use C# or .NET because Dodo IS runs on them. If I had a choice, I’d still probably pick C#, with Rust being the only other programming language that could tempt me away. The advantages of C# include a strong type system, a developed ecosystem and an efficient runtime that keeps getting faster. It now also has NativeAOT for cases where startup time and deployment size matter. I also appreciate how the union types are being improved.
Despite Rust offering impressive safety and control, I believe C# would be more practical if I had to use only one language. With C# you can build almost anything: APIs, CLIs, desktop apps, and games.
My answer may not look very surprising because I use this language daily. But maybe that’s the point!
What's something you think Software developers do not do enough of?
They don’t spend enough time on reading documentation for the tools they use. Don’t learn TypeScript one LLM answer at a time! Read a good book on your tool from cover to cover, even if it seems to be time-consuming. But with a thorough understanding of the tool, you won’t be wasting time trying to solve the problem the tool solved a long time ago better than you could have.
What is your least favorite thing about programming?
The concurrency bugs and network problems that disappear as soon as you start debugging them top my list. They are followed by overengineering and missing documentation, especially coupled together. Having too much system and too little explanation is awful.
What’s a technology you’re currently learning or excited to learn?
I’m learning agentic programming, distributed SQL databases like Google Spanner and Rust. What I like about Rust is performance, memory safety, and low-level control. It has a strict compiler, which is excellent for agentic development because it allows catching mistakes before runtime. And distributed SQL databases are good because they have relational transactions and strong consistency with global horizontal scale.
What’s your favorite Programming story of all-time on HackerNoon?
My favorite HackerNoon article is * Celebrating 10 Years of War Robots and Reflecting From a Technical Perspective*, because it follows the evolution of a real system over a ten-year period. You can track down the history from peer-to-peer multiplayer to dedicated servers, microservices, Cassandra, and global infrastructure.
As my work mostly focused on web and mobile applications, I like engineering stories from other areas, especially game development. They help broaden my perspective by revealing ideas I might never encounter while working in my niche.
Time travel 10 years into the past or 10 years into the future? What does technology look like? Give reasons for your answer.
I’d go ten years into the future. The main trend would remain miniaturization! An agent will be in every phone, and everything will be better and faster.
Speaking of software, I believe that “code as text” is essentially a solved problem now. You can already “buy” code with tokens. Token prices will fall, models will improve, and generating code will become even easier.
But the new bottlenecks will emerge! Among them is review, for example. So far, you cannot fully trust code written by agents, so a human needs to review it. Agents are also not very helpful with databases and data operations (DDL). You can see it if you try asking an agent to change the type of a column in a two-terabyte database. So these issues we’ll have to solve together!