Principal Software Engineer @ Vay, previously worked at Uber and VMware
Welcome
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 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.
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 [1].