You’re Wrong

I’m a critical person. I’m also a perfectionist. While this doesn’t mean I don’t make mistakes, it does mean I have an urge to fix mistakes when I see them.

One common place to find mistakes on is people’s posts, tweets and status updates. I used to correct them in a comment. I didn’t give it much thought, really. If I saw a typo, I’d comment on it. Bad use of the language? I’d comment on it.

It wasn’t until I saw someone else doing the same that it hit me. They corrected a person online. The person replied, saying they were dyslexic. They said the correction could have been made in private rather than public shaming them.

It hit me hard. For years, I was feeding my own ego at others’ expense. I was public shaming friends (and strangers) to show off my superior intellect. How poor a behavior this suddenly seemed.

From that moment onwards, I stopped. I would send friends a private message if they made a mistake. This gives them a chance to rectify it without the public shaming.

It changed how I do code reviews, too. I try to be softer in my criticism now. If I have harsh feedback, I send it to the person privately. It doesn’t mean I stopped flagging mistakes in code reviews, of course. But I always keep the lesson I learned in the back of my mind. I’m reviewing a person’s work. They have feelings, and they could get hurt.

My advice to you? If you are like me and are bothered by people’s mistakes, keep your feedback discreet.

You can read more about this approach in the highly recommended How to Win Friends and Influence People by Dale Carnegie. This is a book I recommended before but is worth mentioning again. It truly can change how you interact with people and how they respond to you.

I may get commissions for purchases made through links in this post.

So Much Cache

I’ve moved homes many times. Every time I moved, it seemed I had more stuff to move than the time before.

None of it was useless. Well, most of it wasn’t. More kitchenware. More furniture. More books. More clothes.

It all meant I needed a bigger place. Every time. Just so that I could live with all my stuff.

Some people are lucky enough to have a shed or a garage where they can store stuff they don’t need right now. None of my places had the extra storage space.

The last time I moved was especially challenging. There was a week’s gap between the time I had to vacate the previous flat and the time I could move into the new one. A week during which I had to put all my stuff somewhere.

So I rented a storage unit for a week. I was never aware this service existed before! Here’s what I learned:

– Storage units can be very affordable.

– Storage units can be huge.

Now, when I’m considering my next home, I can go smaller. I can store the things I don’t need immediate access to in a cheap storage unit. Why pay for an expensive property only to store stuff?

This is how cache works, too. You store the stuff you don’t need right now in a fairly accessible, fairly cheap storage space.

So if you’re anything at all like me, consider getting a storage unit. It’s an easy way to make your home bigger.

What Else?

As software developers, one tool at our disposal, in almost any language, is a switch expression. It comes in many forms: switch, case, when… They are all fundamentally the same. Given a value of an enumerated type, it defines the code behavior for each such possible value.

In Clean Code, Uncle Bob suggests we make sure to only switch over a value once. The idea is once you’ve determined the value, you can convert it to a class with the required behavior. From that point onwards, you can use that class, and not care why it behaves the way it does.

This advice is especially valuable when you need to add another possible value to your enumerated type (or change one of the existing ones). If you haven’t followed the above advice, you’ll end up changing a lot of switch statements. For each one, you’d have to figure out the new expected behavior.

What’s worse, you may not remember all places you need to update. This is because, even though a lot of languages give us some compile-time safety for switch statements, they also allow us to cover all cases we (currently) don’t care about using an else. With an else in place, the code is still valid after adding new values.

This is a problem, because we may want to handle those values differently. With the else in place, we get no warning. It’s amazingly easy to introduce new bugs this way.

So, long story short: if you’re using a switch expression, try to only do it once. Regardless of how many times you end up switching over your values, avoid else. Specify each value explicitly. If you’re lucky enough to have support in your language for grouping values, you can use that to tidy things up.

But no else. Or else…

I may get commissions for purchases made through links in this post.

Get Me My Toolbox

You probably guessed I love optimisations. It’s a fine art of tuning and tweaking. One thing I spend absurd amounts of time on is my operating system. Whether it’s Windows or MacOS, I will optimise it to death.

While some tweaks mean I have to use the terminal or edit files, others simply require using a utility. One such handy utility has been around from the early days of Windows.

It’s called PowerToys, and it’s a free set of tools that help you use your machine more effectively.

From defining keyboard shortcuts to batch renaming files, PowerToys are a huge time saver.

So if you’re a Windows user, give it a spin. I guarantee you’ll never look back.


When I was 20, I was able to pay myself a decent salary for the first time. I was lucky.

Never have been taught how to manage my money, I spent it all. I mostly spent it on restaurants. There was no restaurant in Tel Aviv I did not know back then.

And then the time came when I had to shut down my company. My only source of income, gone. Getting back on my feet meant I needed time. And time cost money. Money for rent, money for groceries. And I had none. I had to rely on my girlfriend at the time.

It was a terrible feeling. I lost my freedom. I depended on others with every single decision. No more restaurants, that was obvious. But gone were even the nicer options at the supermarket. I swore I would never let myself end up in that position again.

The obvious conclusion was to never spend everything I earn. I started maintaining a reserve. For me, I find 3 months of expenses are enough. In times of uncertainty, I try to save twice that.

Preparing for a rainy day goes beyond just money. I also make sure to have digital copies of every important document. I try to have everything I can in reserves. As with money, the size of my reserve is proportional to the level of uncertainty.

What about you? What would you need on a rainy day? Have you made sure you’d remain independent?

Three Videos Of A Cat On A Roomba?

I remember times when data storage was extremely limited. Not only was it expensive, but it took up a lot of physical space.

There were days where data was stored on audio cassettes. I was quite young then. By the time I was actually doing anything meaningful with computers, we had had 5 1/4″ diskettes. You could initially store 360 kilobytes of data on each. That’s about a tenth the size of a single modern day’s photo taken by a smart phone.

In those days, every byte counted. So much so, that tiny text files mattered. You’d have to use multiple diskettes for certain apps or games.

Times changed. Soon we had hard drives. You could suddenly store a lot more on your computer. At the same time, what you COULD store also grew in size. Higher resolution photos, better quality videos and music. Richer and more complex apps and games.

It seemed like a zero-sum game. You could get more storage, but it would still fill up.

And so, data storage is as much of a problem today as it was back then, it’s just the scale that changed.

One way to deal with the problem is clean up apps. These usually delete temporary files and help you find duplicates. I use a few of those on my different devices.

For Windows, there’s NoClone and CCleaner. For Android, you have Google’s Files. For my Mac, I use dupeGuru (which is multiplatform and free). To free up some space on the cloud, read up on cleaning up Gmail.

We have a lot more space now. However, it is still limited. Use it wisely. Let these apps help. And enjoy all the extra free space.

Be Humble

I was about 20 years old the first time I managed employees. I had already been a developer and a business owner for several years by then.

I’ve always been acknowledged by everyone as being quite smart. Unfortunately, that made me a bit arrogant. I thought I knew everything there was to know about writing code. I was certain that even if I didn’t, there would be few who could teach me something new.

Luckily for me, I was humbled fairly quickly. I learned simple ideas such as early returns from junior developers I hired. This changed my perspective entirely.

I am now happy to admit my ignorance. I am open to learning from anyone. I no longer assume people with less experience can’t teach me anything. In fact, I find it very likely they can.

My point? You can be very good. You can be exceptional. You will still slow your growth if you don’t stay modest. Respect everyone. Be humble.

Be A Karen

When dealing with retailers, service providers, government offices and corporates I often feel small. They have plenty of manpower, automated systems, lawyers and seemingly unlimited resources.

So it’s easy for me to give up when they take my money where they shouldn’t, or refuse service. Forget about that £5 over-charge. Say goodbye to the £10 fee for an automated renewal you never wanted. Pay for a repair of a faulty product.

But it doesn’t have to be this way. If there’s something I learned from experience, it’s that you should never accept these injustices. Report the issue. Ask for a refund. If you’re not happy with the response, complain. Escalate to a manager.

Corporates and large bodies may have policies in place and some tolerance for pushback. So can you. Don’t let it go. The more of us who push back, the more careful they will be about pulling those stunts.

So yeah, it’d funny to see a Karen blow up. But Karen may have a point.

Get Off The Script

I just called a broker about a mortgage. The person on the other side of the line was extremely nice. We had a pleasant conversation, and I really felt I was getting a personal service. This was great.

And then, half way through the process, she started reading the marketing spiel off her script. About a minute’s worth of pure praise of their service, with statistics and random figures. The personal touch magic wore off immediately.

Now, I know it’s not her fault. She was instructed to read that speech to me. The problem is with whoever it was who thought that was a good idea. I’m sure they feel it’s important to convey their success rates to new clients. The problem is, this isn’t the way to do it.

Be creative. Give your representatives key points they should convey during the call. Don’t sabotage their efforts to give a good service. Let them be honest, and kind and sympathetic. A marketing script is none of that. Don’t kill the magic.

Help Me Help You

There are services we all use. Services such as Amazon, Netflix, Spotify and so forth.

All of these services spend tremendous efforts into giving us a personally tailored experience. An experience that would match our personal preferences.

Unfortunately, nothing comes for free. If we want an experience that is really a good fit for us, we have to put in some work.

All of these services rely on data they collect to make adjustments for us. We can modify much of this data to get better results.

So what should we do? Upvote content you like. Downvote content you don’t. Go through your activity history. Remove any items you are not interested in.

Pretty soon, you’ll start noticing the suggestions you’re getting become more relevant. Content will become less spammy.

A tailored experience is a better experience. Consider spending the time to make sure you get one.