A Stain For Life

From time to time, the unavoidable happens. I spill or splash something on my carpets, sofa, bed or clothes. Coffee stains, food stains, grease… As careful as I try to be, these things still happen.

For years I had to either learn to live with those stains or pay a professional to get them removed. It can get rather frustrating and pretty expensive.

And so, I was rather excited to discover yet another use for the internet: finding out how to remove stains. It turns out that for almost any stain type on almost any material, there is a solution.

All you have to do is Google “how to remove [stain type] from [surface type]”. Try it. Try “how to remove chocolate syrup stains from pillow” (don’t ask!).

Stains no longer have to stay with me for life. Thanks, Internet!

Like An Open Book, Part 1

I love books. I’ve loved books since before I could read. When I did learn how to read, I remember walking to the library while reading the last book I borrowed. I’d then read another book in the library and borrow one for my walk home.

I remember how exciting I found Joules Verne’s stories. I remember how enchanted I was by the Neverending Story and Watership Down. I enjoyed comic books as well. I mostly remember enjoying Tin Tin, Asterix and Obelix and Lucky Luke.

I read tens of books published by TSR. I read every Pratchett book. Zelazny, Frank Herbert, Douglas Adams… So many worlds to explore.

I later started exploring technical books. I learned programming languages, algorithms, architectures, new ways of working with people, managing my finances. I just could not get enough of books.

I’d read on my way to work. I’d read on flights. I’d read while waiting for an appointment or an interview. I would always have a book on me.

I still can’t get enough of books. The thing is, when you have hundreds of books, space becomes somewhat of an issue. It’s also a bit hard to carry around more than one at a time.

For my birthday, my wife bought me a Kindle Oasis. For years I was skeptical about e-readers. I couldn’t imagine parting with the feel of paper and flipping a page.

Because of my skepticism, it took me a while to start using it. Eventually I did, though. And what can I tell you – I’m a converted man.

There are several significant advantages to a Kindle:

  • The reading experience is pleasant, even in complete darkness.
  • I have tens of books with me at all times.
  • It remembers my progress in every single book.
  • Highlighting sentences is easy.
  • The built-in dictionary is a lifesaver.
  • What’s really cool is it has a lifetime free GPS connection.
  • E-books can be much cheaper than paper ones.

I still love my books. But now, every time I consider buying another one, I prefer getting an e-book. I think its time to turn the page.

Stay tuned for a follow-up if you got a Kindle too…

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

Don’t Go Breaking My Heart

At the risk of sounding like a broken record, I’m a software developer. If you aren’t one, you’d probably imagine us as sitting in a dark corner in front of a bright screen, typing away.

But really, I’d imagine pretty much like any other professionals, we spend a lot of time working with people.

Working with people introduces a whole range of new challenges.

I’ve worked with people who expected everyone else to be professional, and so respond well to all criticism. I’ve worked with others who got easily offended by constructive criticism. I’m sure I’ve been a bit of both myself, actually.

And this is the point. We’re humans. We have feelings, and ego. We should check them out at the door when we get to work, but it doesn’t work like that.

In my role as a consultant I try to remind my colleagues of both sides of this coin. When delivering constructive criticism, we need to remember we’re talking to a person. As professional as they may be, they still have feelings and can’t fully detach their work from their ego.

When receiving criticism at work, we need to remember it’s not personal. We can take it and try to grow and improve.

So give me your criticism, but don’t go breaking my heart. I’ll try and do the same.

Smile, Part 2

My hygienist always used to tell me off for not flossing. I couldn’t get myself to consistently do it.

Then we started buying dental floss. My wife placed them in convenient places around the house. Picking one up after a meal became so much easier. My teeth have never been cleaner. Or so I thought.

About a year after we starting flossing regularly, we were recommended a water flosser. So I started my own little research. I ended up with the Waterpik Ultra Professional Water Flosser WP-660UK.

It’s a bit of a mouthful (heh), but it really is great. It’s not the cheapest. It’s not cordless. However, compared to other flossers:

• It has a large water tank. This means longer flossing times.

• It has 10 pressure settings.

• Its nozzle is easy to rotate.

• It’s a countertop flosser, so no battery worries.

• It comes with 7 tip types for different types of cleaning.

• Which is why it’s great it also has an easy to access storage space for up to four tips.

I have to admit, the first time I used it I was shocked. How can so many tiny bits of food still be lurking between my teeth after all the flossing?

Now I can really say my teeth have never been cleaner. Which is great, because I really want to keep them around for a while longer. Say cheese! Now floss.

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

Maybe I Am Biased

I try not to spend too much time reading the news. I try to stick to just enough news-reading to be generally informed of trends that may affect me.

When I do read the news, I often find myself wondering. How is it that the world is so messed up? Almost every single person I know seems to be a decent human-being.

Then I realise I did a good job creating my echo chamber. Over time, I filtered out people who I thought were not decent. I got closer to people I thought were.

In general, I try to surround myself with people who lift me up. That is not to say people can’t have low periods, it’s the general attitude I’m after.

The down side to having this echo chamber is the sampling bias. Because I hand-picked the samples, the people I know don’t reflect my area. They don’t reflect London. They don’t reflect the UK or Israel and definitely not the world.

This is a tradeoff I am happy to make. It is important to be conscious of your choices, though. The world isn’t a great place, but there are plenty of great people in it. I’ll take the sampling bias, just give me decent people.

The Light At The End Of The Tunnel

Have you ever found yourself walking down a long passageway only to meet a dead end sign? How about completing a form, tapping submit and only then finding out some fields were mandatory? If you’re a developer, how many times have you ended up with data in a weird state?

What do all of these have in common, other than being incredibly frustrating?

In all of these cases, someone decided to wait until the last minute to tell you something was unexpectedly wrong.

Don’t be that someone. The solution is simple. Fail early. Inform people of issues as soon as you can. Don’t let them waste time and effort to find out.

Put the sign on the entrance to the passageway. Mark mandatory fields. Throw an exception as soon as you encounter an invalid state.

Few things are more disappointing than finding out the light at the end of the tunnel is a train.

Do Nothing

When buying or signing a contract, I am often pressured to make an immediate call.

Do I want to lock in the price? I have to pay now. Do I want that contract? I have to sign it now. Can I commit to this deadline? I have to do it now.

No, I don’t. There will always be another sale. Another contract. Don’t let your fear of loss decide for you. If it’s a good opportunity, it is likely to be there later, too. And if it isn’t – so what? A better one would come along eventually.

When faced with a demand to decide on the spot – I developed an automatic negative response. I will not decide now. I will think about it. I will sleep on it.

By accepting that I must decide now I am, in fact, relinquishing control. I am letting the other party decide. They have their best interest at heart, not mine.

An interesting TED talk stipulates that intelligence is measured by one’s ability to keep as many options open for as long as possible. In that sense, not deciding now is the intelligent thing to do.

So when forced to decide on the spot, I do. I decide to do nothing. I’ll get back to them later. Or not.

Promotion Is Not A Bonus

I work with managers of varying levels on a daily basis. CEOs, CTOs, team leads – I’ve worked with them all.

One emerging pattern I noticed is that many of them are simply terrible managers. They may have been very good at their previous role. They do not seem to be half as good at what they do now, after getting promoted.

This is a known and very common phenomenon. I mentioned it before. Its called The Peter Principle and it basically says that people rise to their level of incompetence.

Imagine someone who’s very good at their job. Her managers want to reward her for her contribution and success. What do they do? They promote her.

In many cases, that is an unfortunate mistake. First, because you stopped a capable employee from doing what they do best. Second, because you now have a mediocre manager at best.

Of course, this isn’t always the case. The individual may prove to be a great manager. What does the company do then? Promote her again. This keeps happening until she no longer performs well, and so won’t be promoted.

What’s the lesson here? Think twice before promoting someone to a managerial role. Are they fit for the role? Can you afford to lose them at their current role? Can you find another way of rewarding them for their contribution?

Just remember that a promotion is not a reward. A promotion is a business decision that should benefit the individual and the business. A reward would be recognition with a nice side of bonus. I’ll have that sandwich any day.

Grab Success By The…

I grew up believing my success depended on how hard I tried. That it depended on the number of times I fell and got up. That successful people had to go through the same.

I am older now, and understand statistics better. The numbers tell us about two thirds of the world’s billionaires are self made. On the other hand, it tells us there are 2,755 billionaires in the world. 2,755 out of 7.674 billion people. That’s one billionaire for 2.78 million people.

The only good news here is you’re more likely to become a billionaire than you are to win the lottery jackpot by a factor of almost 20 (see here). However, the odds are still incredibly low.

So, being realistic, I set my bar a bit lower. I would still like to be able to retire early and focus on my passions. Not an easy goal, but achievable. How do I go about achieving this goal?

I recently came across an interesting formula. Entrepreneur Jason Roberts suggests you can control your luck, to a degree. He suggests you can increase your odds of getting lucky by taking more action around your passion and sharing it with as many people as you can.

Roberts coined the term Luck Surface Area. It is the amount of action you take multiplied by the number of people you shared your passion with. Increasing any of these two factors improves your chances of success.

It makes sense, really. The more time you spend on your passion, the better you get at it. The more people you share it with, the more likely it is you’ll reach someone who can make a significant change in your life.

So, what are you waiting for? Go out there and get lucky!

Don’t Talk Just KISS

I love efficient code. There is an odd type of satisfaction to writing well-performing code. Faster! Shorter! Less memory-consuming! More power! MORE!

Well, it’s easy to see how quickly this gets out of hand. Before you know it, your code is a hot mess of high-performing, totally unmaintainable blocks. What started as a beauty ends up being hideous.

There is an extremely important guiding principle I learned to appreciate and adopt (almost religiously!):

Keep it simple, stupid (K. I. S. S). Always prefer clear code to optimal one.

Once your code works, see if it requires any optimisation. You may be surprised to find it doesn’t. Your easy to read, easy to maintain code may be good enough.

Keep your heavy guns for when you encounter performance issues. Try to contain the “smart” bits. Extract them to a clearly-named function. Assign them to a well-named variable. Don’t let optimisations destroy the readability and maintainability of your code.

And always, always opt for the simplest solution.

Lastly, I have to say this rule seems to apply to everything else in life. Don’t over-complicate things. In most cases, you will find the simplest explanation is the right one. The simplest way to perform a task is also the easiest.

Simple is easy. It’s easy to remember. It’s easy to repeat. It’s easy to explain. It’s… Just that simple.