Software Engineer @ Vay, previously worked at Uber and VMware
This blog is 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) in my engineering practice.
Agree or disagree – it doesn’t matter; if you feel inspired and you get useful ideas out of reading my blog (especially if those are your ideas), I’ve done my job well.
I am a software engineer at Vay, leading the development of a Golang-based distributed system that integrates with a deep tech stack to power the company’s driverless mobility business. Prior to joining Vay, I was developing the highly scalable invoicing system at Uber. Before that I was at VMware, where I had the chance to partner with huge enterprise customers on building private cloud solutions and magical developer experience.
I believe in engineering done right: in deliberate architecture design and well-crafted code focused on solving the customer’s problems. In my teams I always nurture thorough code review practices (which is fundamental for sharing know-how and keeping a high quality bar) as well as good unit test suites to enable safe refactoring and cleaner code organization.
I also teach C++ and OOP in my alma mater – New Bulgarian University.
If you want to get in touch – LinkedIn would be my preference.
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. A Word about Golang Golang …
Have you ever had your head explode while trying to trace the execution of a use case through a complex codebase? Well, I certainly have. Sometimes the code I am trying to decipher is my own, marking the process not only painful, but shameful as well. In this article, I will explore the concept of …
Well, can you blame them? Code reviews might be the only thing in software engineering that is universally considered “good” and “the right thing to do”. Furthermore, it is one of the few things that are empirically proven to improve our software . And yet, I oftentimes hear particular about reviews. Nobody complains about the …