Follow boring advice

Most of the advice leading to great results in life is boring. Also, it’s free and has forever been so.

In my twenties, I believed that successful people hold secret knowledge leading to their success. I obsessed over “self-help porn”: books, videos, and blogs promising to reveal little secrets that would make me successful one day, too.

But when I started observing and talking to people I consider successful, I noticed they don’t do anything extraordinary. In fact, they do quite the opposite. They follow “boring” advice I already heard a million times in proverbs, religious and old philosophy stories, and even from my grandma.

And it makes sense!. It has already been figured out for thousands of years! There is nothing new a Brian can write in his next New York Times bestseller while sipping a $9 latte that I didn’t hear before. All I ever had to do is to act on that well-known advice.

You know it in one form or another, too! Here are a couple of examples:

Read More

Error handling with Monads in Ruby

“Anything that can go wrong will go wrong.” - Murphy’s Law

Illustration by icons8


Many modern languages, including Ruby, use Exceptions as the primary method of error handling.

In this blog post, I will walk you through the history of error handling.

I will briefly describe popular options but will mostly focus on the pros and cons of Exceptions before demonstrating how monads might provide a better approach in some applications.

Read More

How to make your team miserable

Fascinated by the phenomenon of teams and companies of truly smart and talented people unable to work together, turning almost every day of their work into just another step to inevitable failure, I’ve been collecting tips and recipes for creating miserable teams.

All characters and tips in this post – even those based on real people and events – are entirely fictional, except ones I proudly committed myself on many occasions.

I split those tips into two categories: for leaders of all types and for regular team members.


Read More

Effective learning for software engineers

Illustration by icons8

I’ve been learning since before I can remember: first, learning to read, then, reading to learn.

Ironically, what I never focused on until very recently was learning to learn.

In the world of software engineering, learning effectively is one of the most crucial skills one can possess, yet it’s one of the most underdeveloped ones.

As technologies and frameworks evolve and change, the ability for an effective self-education helps keep many doors open, to diversify and regularly invest in one’s knowledge portfolio.

Effective self-education is marked by learning concepts, ideas, thoughts, and truths effectively.

But what does it really mean to learn a concept effectively?

Read More