Search

Chronomatic: my side-project story

As a freelance software professional, I have to keep exact time of my work for different clients. When no existing SaaS solution was...

Beautiful Object Builders in TypeScript

A big part of testing is getting or creating data to input into our System Under Test. Good tests require varied data to test multiple...

dotenv considered harmful

The practice of using env files is so prevalent in the industry and few developers ever stop to doubt it, but in fact, accessing...

The Anatomy Of A Rotten Codebase

Code rots. Just like everything else in life. It's one of those analogies I keep coming back to. But rotten code isn't just a problem...

The woes of a Mac migration

Update, January 2022: Shortly after publishing this post the Mac failed to connect to the display. Through a friend who works at Apple I...

Your Software as a Kitchen

A while ago I was consulting with a startup where both co-founders were non-technical. They brought me in something like 6 months after...

Tzvika's Revenge's Revenge

In 1996, aged 16, I wrote a PC game called "Tzvika's Revenge", along with another friend who did the art. We stole the audio clips from...

Litany Against Fear of Change

Written 56 years ago, the Litany Against Fear plays an important part in the novel Dune, allowing the protagonist to overcome his...

Permanent Prototypes

When we start a new project - be it a newly formed startup, or a new project inside an existing company, we have to move fast, prove...

On Remote Pair-Programming

For the past few months I've been working with a startup building a mobile app using #ReactNative. I last used #React back in 2016, and...

It's all about the maintenance, dummy

I recently overheard two software engineers discussing a feature they were developing. They had two options: developing the feature...