Sunday, July 13, 2014

Switching to working from home (and expecting a baby pretty soon)

As you probably already know, Lana and I are expecting a baby boy next month. We wanted to be closer to family, so a couple of weeks ago we moved back to Ann Arbor and I started working from home full time. People at Tribune supported my decision, and I feel really grateful for that.

So how do I like working from home, you may ask? It is amazeballs. And this is why:

I am way more productive. There are less interruptions which allows me to focus solely on the task at hand. In technology, we are constantly presented with new problems, and according to the research done by social psychologist Robert Zajonc, people who perform non-trivial tasks are less productive when surrounded by other people (even though I’m an extreme extrovert I can confirm that his findings are absolutely true for me).

No commute. In other words, I have more time for work and fun, and I stress less because I don’t have to worry about traffic or weather.

Ergonomic setup. I’ve always been trying to make my work station as comfortable as possible, especially since sedentary work often leads to lower back pain. When I worked from the office, I used Microsoft Natural Ergonomic Keyboard 4000 and Logitech Wireless Trackball M570, but I couldn’t replace the chair I had. Now I’m free to use whatever chair I like, and in this case I use Steelcase Think and I feel really confortable even when I sit for prolonged periods of time.

I can sit by a window and enjoy the nature and the sunlight. Sunlight wakes me up and makes me alert and instantly puts me in a good mood! Bonus points for switching timezones and having the sun set 45 minutes later.

It is cheaper and easier to eat at home. What’s more convenient than having access to your own fridge? It is also healthier: I care about what I put in my body, and if I make my own food I know exactly what goes in it. In addition, it is easier to eat more frequently. Smaller, high quality meals sustain your blood sugar levels and provide you with a constant source of energy.

So far this has been a wonderful experience for me with absolutely no drawbacks. Technology allows me to video chat or share screen easily if I need to. To ensure that everything runs smoothly, I upgraded my internet to the 50/10 speed, and bought a new modem (Motorola Surfboard 6141) and router (Linksys WRT1900AC). And so far, this setup has been rock solid (knocking on wood).

Wednesday, June 18, 2014

Correlation does not imply causation

The correlation between two things doesn’t imply that one causes another. Knowing one variable may allow us to predict the other one, but it doesn’t tell us why there’s a connection.

For example let’s consider the following statement (regardless of whether it’s actually true):

Most programmers are male.

What this statement means is that a person who writes code is more likely to be a man than a woman. But this doesn’t mean that being a male causes people to become programmers (and definitely doesn’t mean that being a programmer causes people to be male).

It tells us what to expect, but it doesn’t reveal the mechanism that influences these factors. In the previous example, the correlation may be high, but the relationship is not causal.

What may be happening under the hood is the presence of a third critical factor.

Consider the situation where the people who regularly take the vitamin X have less heart problems than the people who don’t. That can lead you to believe that the supplement has a positive effect on the heart’s health, but there is a flaw in that logic.

What if the vitamin X costs a lot of money, and its consumers are mostly wealthy people, who generally tend to eat healthier?

The numbers don’t lie. But be very careful when you interpret them.

Monday, June 16, 2014

Meaningful Social Network

Many people go on social networks to seek attention and approval. If their tweet, photo or status update doesn’t receive any love and support from the people in their network, they may be tempted to create a post similar to their friend’s one that did.

Too many women post pictures with too little clothes on, and too few men post great things about other men. And too many men and women post photos of their food or get obsessed about celebrities who they don’t really know and probably never will.

People adapt so they can be more likable. People like people who are like them.

Humans are social animals and it’s a well known fact that our behavior depends on both our genetic make-up and our environment. The external forces shape our behavior and our beliefs.

And therefore, in our attempt to be accepted and valued, many of us are willing to sacrifice our authenticity, doing things that others expect us to do, talking about things other people talk about, afraid that our real selves aren’t worthy enough.

Social networks are not a popularity contest. People who compare themselves to their virtual friends can get depressed because they compare the highlights of somebody else’s life to their normal, everyday life.

People sometimes forget that the social networks are basically just a communication tool. So if you care about the quality of your relationships, you need to have deep, meaningful conversations.

This means more direct messages, more comments and less likes and favorites.

It is too easy to like something on Facebook. That’s why a Facebook like doesn’t mean much.

Prior to Facebook, there was MySpace. For those who remember and are old enough, there was no like button on MySpace. And in my experience, the conversations were richer and more meaningful.

And now it seems like… Ain’t nobody got time for that.

Wednesday, May 7, 2014

Most Valuable Person

Yesterday, Kevin Durant won the NBA MVP award. He gave a very emotional acceptance speech, that displayed Kevin’s greatness and at the same time, humility.

He said: “Basketball is a platform in order for me to inspire people.”

Stop and think about that for a moment. No matter what you do, your actions affect other people. Achieving excellence through hard work inspires others to believe their dreams can come true, too.

But to be able to inspire, one must be inspired.

Kevin Durant was inspired by his teammates who were always supporting him and believing in him even when he himself didn’t.

But his biggest inspiration was his mother. Despite being very poor she would always make sure that her sons have food to eat, which sometimes meant that she would go to bed hungry.

"You are the real MVP" - he told her. While he was saying those words, his mom couldn’t stop herself from crying.

Not everybody gets a fancy reward for the things they do. But some actions you take, things you stand for and sacrifices you make shine brighter than any trophy or gold medal ever could.

And he knows that. I applaud you, Kevin Durant.

Tuesday, May 6, 2014

Quadruple Constraint

In project management, there is a model called Triple Constraint.

What this model represents is the relation between speed, scope and budget. For example, if you wanted to increase the speed at which the project is delivered, you could either hire more people (increase the budget) or decrease the scope. Similarly, if you wanted to increase the scope, you could either push the deadline back or again, add more people to the project.

What this model is missing is quality.

Many companies could deliver a product fast and cheap. The question is: Is the product going to be reliable, maintainable, available and safe?

Monday, May 5, 2014

Chasing Happiness

We’ve been lied to. We were told that if we do well in school, we’ll be able to get a good job, and if we work hard enough, we’ll be happy.

We’ve been conditioned that our happiness depends on external factors. We’ve been misled, falling for the promise that said that the happiness would come with the realization of our goals.

Have you ever wanted to achieve something really bad, and then once you did it, you felt confused, asking yourself what now? An ambitious person that keeps telling herself that the reason why she’s unhappy is because she hasn’t reached her goal yet is in for a world of pain. She can’t win. The goal is outside her reach, and if she stretches just enough so she can grab it, she doesn’t suddenly become and stay happy. No, she’ll change her expectations and start wanting something that’s even farther away.

Have you ever wanted something really bad, and then once you got it your excitement faded after only a few days? Maybe it was a new toy, computer or a video game, new shoes or clothes, new car, new house, whatever it is, here’s the question: Why didn’t the fact that you finally got what you wanted create a bigger impact on the quality of your life? Here’s why:

Happiness comes from within. You choose to be happy. Fact: There are many people who are much worse than you right now, and at the same time much happier than you.

If you realize this, and truly think about it, not just say “Yeah, I already knew that!” you will realize this as well:

Many people are motivated by their insecurities. They live in fear, thinking they are incompetent, fearing losing their jobs, fearing failure, rejection and exclusion. They feel like impostors, pretending that they are somebody else, acting the way other people expect them to act, and at the same time fearing that deep down inside they are different, less knowledgeable, less perfect and less worthy. They are afraid of other people finding out who they truly are, and seeing through their “fake it till you make it” strategy.

They either work really hard at trying to make up for that negative self image, which leads to workaholism, or they just keep pretending, staying miserable either way.

We all know of a saying “Enjoy the journey”, but what does that really mean? This is what it means:

The happiness is a choice and an attitude. No one else can make you happy if you refuse to feel happy yourself. Being driven by the positive contribution you can make and self-actualization is a much more fulfilling experience than constantly trying to prove your worth to yourself and others by achieving and acquiring things.

Sunday, May 4, 2014

Readability Matters

The computer might be able to understand your code, but what about your co-workers? Or you, a few months from now?

Put effort in making your code readable and understandable.

The first draft might pass the tests, but it is often cryptic and inelegant.

When a programmer starts building a functionality, she doesn’t know what classes, methods and variables she’ll end up with. She’s learning as she goes.

Eventually, the code will start working, but it will look like a brain dump. The code that “just works” is confusing and difficult to maintain.

Instead, spend some time refactoring the code. Imagine that you’re seeing the code for the first time - would you understand it?

Pay attention to naming. Make sure the intention is clear. Put comments where needed, or better yet, create readable, self-documenting code.

The tests are your safety net, so don’t be afraid of breaking stuff - be creative! Once you’re done, show the code to a coworker and ask for feedback. This way you’ll ensure that the code is high quality.

Saturday, May 3, 2014

Don’t Neglect Your Body

We all know that physical exercise is really important. And it is especially important for people with sedentary jobs.

We all know this and still many if not most of the people I know and work with don’t exercise at all.

Lack of exercise can definitively affect the way you look, but I’m not talking about aesthetics here. What’s even more important is that neglecting your physical wellbeing can actually lead to multiple health problems.

Sitting for eight or more hours a day causes an imbalance in the strength and flexibility of your muscles. Your back muscles become overstretched and your hamstrings shorten. Muscle imbalances lead to injuries. If you injure the disks in your spine, the pressure on the nerve will cause pain and can make your legs feel numb.

Many people in technology are young and they don’t appreciate and understand the importance of being and staying pain-free.

So what can you do?

To prevent or correct the imbalance, first and foremost, you need to create a habit of stretching and strengthening your core and leg muscles regularly.

Your workouts don’t need to be intense, but they do need to be regular.

Educate yourself on the anatomy of the human body. One of the apps I highly recommend is iMuscle. iMuscle allows you to view and select a muscle on a skeleton and see what exercises you can do to target that muscle.

Also, don’t go overboard with weights. Start with light weights that you are comfortable with, and slowly increase the weights over time. If you push yourself too hard, you can get injured while exercising, which would be against the point. Patience pays off.

Friday, May 2, 2014


Opinions without context are usually wrong.

When talking about what’s better, regardless of whether we’re talking about software development processes, patterns or some other principles, it is very important to be clear on the parameters.

Just like the Newton’s first law is valid only in vacuum, every opinion requires certain assumptions to be true.

The problem arises when these assumptions get neglected as a factor, and a generalization takes place.

If a tool is slowing you down, and there is no progress, it’s possible that you’re using it wrong, but it’s more likely that you’re using the wrong tool.

Thursday, May 1, 2014

Change vs Progress

Changes are guaranteed, but progress is not.

A programmer who looks at her old code and realizes how inefficient or clumsy it is should be proud of herself. She has obviously improved a lot, but until this point that might not have been so obvious.

The progress always happens slowly, and never by accident.

The fact that her code wasn’t perfect didn’t stop her from writing more code. And being consistent paid off.

Instead of doing that she could’ve said: “I don’t have what it takes. I’ll never be a decent programmer. I’m not good enough.”

We say (or think) these things to protect ourselves from failure and embarrassment. But our self worth is impossible to measure. It doesn’t include just our being, but our becoming too.

Programming (and many other things) can be learned no matter what your previous experience is and what your diploma says.

Even the experienced programmers need to keep their skills up-to-date to stay relevant. The world is moving fast and the technology keeps evolving, creating new possibilities and opportunities, as well as changing the rules and expectations.

It is a revolution that abandons the old and embraces the new. Being able to learn quickly and adapt to the changes has never been more important.