Welcome to my software engineering blog where I share my thoughts on building technology that solves customer problems, ranging from software engineering and architecture, to programming languages, engineering culture and effective teams.

I believe in writing from experience, so everything I put out I’ve seen working or failing spectacularly throughout my career.

Agree or disagree, but if you feel inspired after reeding my blog, me writing was not in vain.

Thank you and read on!

About me

I am a principal software engineer at Vay, leading the development of a Golang-based distributed system that integrates with a deep tech stack to bring the company’s driverless technology to end-customers as a door-to-door mobility service.

Prior to joining Vay, I was developing the scalable invoicing system at Uber. Before that I was at VMware, where I had the chance to partner with enterprise customers on building private cloud solutions and developer experience.

Over the last 12 years I’ve been working with different programming languages and technologies, ranging from C#, to Objective-C on iOS, to Java, JavaScript, Python and Golang.

I believe in deliberate architectural decisions and well-crafted code that is simple and effective at solving the customer’s problems. In my teams I always nurture thorough code review practice, which is fundamental for sharing know-how and keeping a high quality bar.

I also teach C++ and Object Oriented Programming in my alma mater – New Bulgarian University.

If you want to get in touch – LinkedIn would be my preference.


Unconditional Code for Mapping of Protobuf in Golang

Unconditional code is code that just works, without errors or exceptions, without funny edge cases represented with tedious IF statements. In this article I will share how this can be applied to situations in Golang where you need to map incoming protobuf messages to internal or external (i.e. outgoing) structures.