Hey, I'm Alex Kondov.

I write about software, philosophy and the things in between.

Comments - The Good, The Bad and The Ugly

July 06, 2020

Comments - a powerful feature of each programming language that we either abuse or avoid as the plague. Undoubtedly one of the everlasting…

Encapsulate What Varies

June 15, 2020

The only constant thing about requirements is that they change. As engineers we need to translate the complicated patterns of the real world…

Avoid Passing Booleans to Functions

June 01, 2020

Proper software design is a challenge in which functions play a critical part. They are the fundamental building block that groups and…

Leaky Abstractions

May 27, 2020

Abstractions are used to hide broad and complex concepts behind a single idea which is easier to understand. We use them to remove the…

The Cost of Wrong Abstractions

May 18, 2020

You join a new team and after a brief onboarding you are given your first task. It’s a simple one - you need to display an additional input…

Bikeshedding and The Law of Triviality

April 29, 2020

A team of engineers are sitting in a conference room discussing a new service. They quickly decide on the API and storage. Availability…

Art, Details and Abstractions

April 25, 2020

The single thing that made me a better software engineer is understanding the concept of abstraction. To illustrate it, imagine this…

What Is Complexity?

March 31, 2020

What do we mean when we say that something is complex? A system, a module, a class - they can all have that quality. When we talk about…

The T-Shaped Engineer

March 12, 2020

The choice between being a specialist or a generalist is debated by many engineers. Nowadays, the industry may need something in between…

Tabs or Spaces

February 25, 2020

I don’t remember when I found out about the timeless debate on tabs and spaces. I’m a self taught developer and I’ve missed some of the…

The Economics of Technical Debt

February 04, 2020

Technical debt - a tool used to negotiate a refactor for the mess you made 6 months ago. It is often mentioned in the company of other…

Legacy Code and Chesterson's Fence

January 20, 2020

Ah, legacy code. Two words that can strike fear in the heart of any developer. Two words that if mentioned in front of your developer…

The Philosophy of Software Development

January 03, 2020

Software development is considered a field ruled by logic. Every decision we make is guided by rules that we can follow and understand…

2019 Year in Review

December 30, 2019

When I sat down in January I had quite the ambitious goals of where I want to be personally, professionally and spiritually in December…

To UI Engineering and Back Again

November 01, 2019

This is going to be one of those once upon a time articles so buckle up and prepare for a story. When I wrote my first lines of code I wasn…

How Good is TypeScript?

September 05, 2019

You may be asking yourself if using TypeScript for a project is a worthwhile investment of your time. The hype around it is high…

How to Structure of Express Applications

May 06, 2019

When I started my first job I worked with PHP. We built WordPress projects - sites, ecommerce and the occasional plugin. After I did that…

Finding Long Term Motivation

April 30, 2019

In the past to be successful and accomplished you needed to have access to information. At first you needed it to understand your surronding…

The Lean Design System

February 08, 2019

In the scope of this article I will explain what a design system is, how it works and the benefits it provides even for small hobby projects…

Tracking DOM Elements with React

January 23, 2019

Everyone who has worked in web development knows how important it is to provide good UX for the users of your application. A big part of…

Jiu-Jitsu and Becoming a Better Developer

January 14, 2019

In the beginning of each year we start looking back at what we accomplished in the previous one and what we didn’t. We look back at the…