We don't have a solution



This is one thing our generation will have to wrestle with. The world moves, people make decisions, we complain. But when it comes time solving the problem, we are stuck.

I've been thinking about Facebook, and all the political and social problem that came of it. It's easy to turn around and say that Zuckerberg is evil. Maybe he is planing for world domination, and getting people addicted to Facebook. But when he started building his social network, I'm pretty sure he didn't expect to be standing before congress explaining what the like button does. What's the solution? How do we fix social media?

With plastic killing animals and poisoning the environment, it's easy to shun anyone who isn't recycling. But then China refused to buy American plastic, we realize that all the plastic we were putting aside was just getting burned elsewhere. What's the solution? What do we do with the plastic?

We need cars for transportation. We need ships for trade. We need planes to travel. We need the oil to power them all. Along the way, each of those pollutes the air and steadily warms the planet. What's the solution for transportation, trade and travel?

We are in a pandemic now. We know that staying home, washing our hands often, and social distancing can help stop the spread of the virus. But how do you stay home when you can't afford food anymore. How do you keep a hygiene when you can't afford basic necessities. How do you stay home when you are getting evicted?

Blaming someone is the quick and easy way to make noise. But solutions are rarely offered. If you have a complex problem, the solution is often just as complex. If the solution can fit in a tweet, it probably didn't consider a thousand different real world scenarios.

Our generation has a big problem to wrestle with. We don't have tested solutions for most of our problems and we have a hard time admitting it.

You need two types of programmers



As any application matures, we need two types of programmers to maintain it. If you stick to just the veteran programmer that has years of experience, don't be surprised when they start saying No to every single request. If you only hire people fresh out of college, don't be surprised when your code becomes unmanageable one month down the line. You need both to have success.

It's important to have someone with experience to curb the enthusiasms of adding new technology. I've once worked at a place where the manager had replaced the entire team. He then embraced Microsoft Silverlight as the power behind their website. Six months later, most people on his team had quit. He needed to hire new people to convert the Silverlight project with something more traditional.

If he had any senior developer in his team, they would fight tooth and nail to prevent this.

After working for years on a project, I try very hard not to change any code. If it works, don't fix it. If it is not easy to add a new feature, I ask, is adding this feature worth it? This is where having new programmers help. They are not attached to the project as you are. They don't have feeling over the code you wrote. They are OK with making changes to core principles. This helps projects move forward despite us old geezers holding them back.

The power of Bureaucracy



Bureaucracy is a bad word. No one uses it in a positive sentence. But Bureaucracy is something that appears into any organization that grows large enough. It can become a huge pain point that prevents any work from getting done. But it can also be the reason any work is getting done.

Have you ever wondered how some organization look so bad and wasteful, yet they manage to survive in the worst of economies? The answer is bureaucracy.

Let's consider this question. How do you bring a whale home? I don't mean it figuratively. How do you get out of the house and come back with a full-grown adult killer whale? The simple answer is it is impossible. No one man can do this feat. Yet, that's exactly what they did to have Orcas at SeaWorld.

It all starts with filing for a permit. This single filing triggers a thousand different jobs each triggering other sets of paperwork to file. Eventually, maybe years later, a ship is set to sea to capture a whale. Once the whale is captured, other permits needs to be obtained to navigate through different seas and transport the mammal.

No one man can bring a whale home. But gather enough people, glue them together with bureaucracy, and you got yourself a whale at your doorstep.

Black Lives Matter



Every time a new video surfaces the same conversation happens. A black man is killed, and we have questions. It almost feels normal at this point, but I am still enrage. We get to debate. We get to decide what to do with the situation. We get to have a say. But the victim is dead.

It's as if we have to sacrifice a life just to have a discussion. Stop this madness. Don't shoot another black man again. Don't shoot another black woman again. Don't fucking shoot us again. Let's have the debate first.

The biggest decision in your life



Do you want to be a doctor, a lawyer, or a programmer? You have to answer this question now and live with the consequences for the rest of your life.

One thing that we fail to admit, is that an 18-year-old is too young. He can't to understand the consequences of this decision. Most students are courting student debts, when they are just coming out of middle school. We won't let a 14-year-old go out on her own, but we are OK with making her take massive decisions and putting herself into debt.

You can't blame the parents either. If your parents never went to college, why are they expected to understand the massive undertaking college is?

At some point we ask ourselves: Should we go to college? Now that I am over 30, I can say with confidence that I don't regret dropping out of college. I've avoided massive debt. Many of my colleagues regret their computer science degree. It's not the degree is not useful, it sure is, for someone who wants to work as an academic.

When we make the decision to go to college, we usually want to please our parents, or follow what the crowd is doing. But we rarely consider it as an investment. College is an investment and should be treated as such. You wouldn't put your money in a company going bankrupt, would you? Then you shouldn't invest in an education that doesn't have a clear return on your investment.

When the degree degrades



When they learned programming using punch cards, students didn't think their skill will go obsolete. Punch cards are the punch line of jokes today. But they were the bleeding edge of technology at some point.

Not only that the method has gone obsolete, the modern computer paradigm makes that sort of programming meaningless. I experienced this when my then employer interviewed a candidate who had worked in the 70s at IBM. He was a computer science graduate with a top GPA and a minor in electronic engineering. He was so knowledgeable. He even knew the meaning of the color of each cable on the motherboard. The only problem was, he was interviewing for a front-end position.

Front-end work still involves programming, but it's a different sort of programming. He got the job, he worked for a couple of months, then he left. It was hard to map the knowledge from one domain into another, even if related.

A friend of mine who had a degree in medical billing and coding, found herself obsolete at her job. After working for three years at a startup, the company grew and they purchased new medical billing software. In a month, they trained the entire staff, and there was nothing left for her to do. All the work was automated and it didn't take long for her employer to kick her out of the company. It was as if her four years degree was no longer worth the money.

The prestigious degree of one generation, becomes irrelevant in the next.

Don't ever work for someone if you want to be rich



The web is filled with motivational speakers who urge you not to work for someone else. The only way to achieve true wealth is to get out there and make a name for yourself. You have to have hunger, and hustle until you make something you can be proud off. Usually these people will throw in a few names like Bill Gates, Steve Jobs, Warren Buffet, and a few other names we are familiar with.

These names are supposed to exemplify people who followed nontraditional paths and became wealthy. It is true, if you put your self out there, you might just strike fortune just like those famous names. But, for every Bill Gates, there is Steve Ballmer, Satya Nadella. For every Steve Jobs, there is a Tim Cook. There is a Sundar Pichai, a Lisa Su and many more name of successful people. What these people have in common is that they are not company founders. They are employees. Yet, they hold the same prestigious titles.

There isn't one path to riches. Starting your own thing will most likely result in failure. It's not necessarily a bad thing, but it is something we dismissed. It could turn into years of struggle, and failure, and most likely, never becoming rich.

Instead, think of your time as investment. How much time does it take to achieve a certain financial success through self employment versus a regular job. If financial success is the goal, the shortest time is always better option. Remember, a job can be less stressful than starting your own company. And it can pay just as well. See the names of people I listed above, they chose the career path.

The real job of a programmer is understanding people



The first time I wrote a computer application, I saw the computer do exactly what I was asking it to do. I started to believe that if I wanted to become a programmer I'd have to learn as many commands as possible to make the computer do everything I wanted.

But, I grew up. I worked in every kind of companies. From fortune 10s to the small start-ups with a handful of employees. I realized that my job as a software engineer didn't only involve computers. A huge part of the job was talking with people. Trying to understand people.

I went to countless meetings. I'd seat with a manager in a small room and a white board where we would talk for hours. I'd join conference calls where I would listen to a team of non-technical people talk for long stretches. I was still a programmer, but my job was not to play with the latest technology, do some code golf or hackatons. My role was to understand what problem people where having, and then come up with a solution.

Programmers love programming for the sake of code. But the real power of programming comes in extracting requirements out of a non-technical conversation, fundamentally understanding the problem, and coming up with a solution. Only then, should we write code.

How to stop working when you work from home



Working from home, it's easy to find yourself checking your email at 10 in the evening. The workday started when you were in bed checking email. When the day ends, you are again in bed and the email as right there on your phone. Instead of going to sleep, we check it one more time.

It's hard to create this boundary when work and home share that same rooms. When we leave our physical offices, we perform a routine. At the end of the day, we start packing, shutting down computers, and we drive home. This performance switches our brain from work mode to normal mode. But when home is our work, we never make the switch. We find ourselves tempted to work throughout the day.

Create a routine when you finish working from home. At the end of your work day, perform it to get out of work. Whether it is cleaning up your workspace, shutting down your computer, or putting your laptop away in a closet. I have a clean up routine that last 15 minutes. Unless I do this, I'll find myself reaching for my work computer to do more work.

The same can be done to start your day. Instead checking your email the first thing in the morning, start your by going to your home office. Even if it is the same room. Clean up, have breakfast, wear some work clothes.

We need the mental switch to make better use of our time. Otherwise work takes over our homes.

Laugh Tracks



Humans are bound to follow the herd. When you see everyone running out of the building, the instinct is to run out of the building. When everyone is looking up in the sky, the instinct is to look up in the sky. When everyone is laughing, we don't try to get the joke first, we laugh with the crowd. Only later we ask why we do it.

Show runners have exploited this psychological traits by queuing a laugh-tracks in their shows. Every time there is a joke, the crowds laugh, and we follow suit. And it works! TV shows are funnier. But then, we are in a Pandemic and TV shows can no longer have live audiences. The laugh tracks has been silently killed.

It's like a veil has been removed. The lack of laugh tracks revealed how unfunny some shows are. And then, it showed that some shows can do just fine without a laugh track.

When the quarantine end and the live audience comes back, we will never look at TV shows the same. Those who are unfunny without a laugh track, will have to come up with a new trick.