Daily Work

Published:

by

When the impostor syndrome kicks in, the first thing that comes to my mind is how terrible I am at my job. It is only a matter of time before I get caught. I'm a fraud. The work is too easy, and anyone can do it. I'll get replaced by a junior developer.

The syndrome occurs every time I have to explain to someone else what I do. The more I talk about my work, the less special I feel about myself. Yet, the person I am talking to seems amazed by it. The more we know about a subject, the more we downplay its importance.

Here is an expression that used to sound obvious to me: It's as easy as walking and chewing. What this implies is that walking is easy. Chewing is also easy. Walking and chewing at the same time require no effort. But then, I watched my two sons learning how to walk. Their little feet wobbled. They fell on their buns. They fell on their faces. When they managed to stand up, the littlest breeze or sound will knock them back down.

Walking and Chewing is easy when you have mastered both over a long period of time.

Now the question is, how do you master anything to the point that it becomes second nature. The answer to that is that you have to practice it every day. When you go outside, you rarely see any able person struggling to walk. It's because they walk every day. You don't see anyone sitting in a restaurant and fighting to chew their meal. They eat every day.

When I find myself typing code and ignoring everything around me, it's not because it's easy. It's because I practice it every day. To be good at anything, you have to practice it every day. Make it your daily work.

What do you want to be when you grow up?

Published:

by

Is this still a valid question? When I was five, I wanted to be a banker. I had once been in a bank and the clerk pointed at this giant vault. He said that this was where they kept all the money in the world. So naturally when I grew up, I became a tech support agent in a non-profit organization.

But then, I wasn't done growing up. A few years later, I was a web developer. And then a couple of years went by and I became an entrepreneur in online real estate. A couple of years ago, I started working as an AI software engineer. Now I'm contemplating writing.

I thought it could be a generational thing. I asked my mother what she wanted to be when she was a child. She answered, "a doctor." Instead, she became a history professor, then turned into an import/export businesswoman. My father was academically an engineer, so he worked as a diplomat all his adult life.

I asked my 8 year old niece, "what do you want to be when you grow up?" She answered: "I want to be a YouTuber right now!"

No one keeps the job the set out to have in the beginning. You can't trust the words of your younger self to guide your future.

As a big kid, I have no idea what I want to be. But I'm hoping for an interesting future.

Summer

Published:

by

summer ice cream

Does it feel like summer? I'm not sure what summer is supposed to be. On TV, they show people going to the beach, eating ice cream, bathing in the hot sun. I was born and raised in a desert. It has always been hot in my life. I've always lived a couple of miles from the beach. For some reason, I don't associate the heat and sand between toes with Summer.

My summer was that time you didn't go to school. You woke up, brushed your teeth, then went on to play. You didn't think about school or homework all day long. And your mother doesn’t have to chase you to come back home. It was summer.

Now that I am not a child and don't have to go to school, what is summer? My kids are one year old. They are happy if I take them to the balcony and play with them. They are not asking for much yet. But somehow I feel it. I feel like it is summer. I don't work as much right now. I don't even write on the blog anymore. It's like this inner feeling in me that makes me slow down with work and lets me enjoy my time.

It's not the sun, the heat, the ice cream. It's the free time I get.

It is summer.

Favors aren't win win by nature

Published:

by

When you read about success or entrepreneurship, you will inevitably read about favors. The common premise is to only do favors that will advance your own cause. Only give your time to those who can give you back something in return. Do something for them now, that will turn into a benefit for you later. These are the opposite of a favor.

A favor is something you do without the expectation of reward. Anything else is a paid service.

You do someone a favor to help them. You use your precious time to do something for someone else. You inconvenience yourself a bit for the sake of someone else. That's what a favor is.

When you do something for someone only when it is convenient for you, that's not a favor.

If you focus on the exceptions, you'll never program

Published:

by

You can't use regex to parse HTML. If you want to match all valid emails with regex, this is the most valid pattern:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

If you use the latest JavaScript features, chances are it will fail many devices.

If you want to properly display people's name, you'll have to support Unicode. If you plan to use toUppowerCase() or toLowerCase() to capitalize a name, you have to think about the names that are not written in ASCII.

If you want to support emojis, you have to update all the functions that check the length of a text. Does it support counting multi-byte characters?

If you write in Object Oriented Programming, will you switch to functional to save memory?

If your website runs slow with five thousand database records, how would you deal with 5 million records?

If your users turn off JavaScript, can they still use your website?

If you focus on all these exceptions and the many more I haven't included, chances are you will never start programming. The key is to build stuff anyway and face each problem as they come to life.

Honesty can only get you so far

Published:

by

The first time I was featured on BBC, I had hundreds of journalists contact me. Only a few decided to publish my words after we had spoken. I realized that many of them came to me with ready made quotes. They were hoping I would repeat those words so they can quote me:

  • Journalist: So would you say that "every company should avoid using AI like the plague?"  
  • Me: No, I wouldn't say that.  
  • Journalist: So what would you say companies should do about AI?  
  • Me: (long explanation about how we are all discovering this together and we are learning as we go)  
  • Journalist: I see, so they should avoid it at all costs because we don't understand it.
  • Me: ...sigh...  

Being honest and telling the truth is rarely dramatic. For example, if you correctly label some systems as Automated Systems instead of AI, few people will want to talk to you. The truth is more down to earth, it's less flashy, it is the truth. But the truth is not sexy.  

I wanted to avoid this mistake this time around. A new round of journalists called me after my latest article on BBC. But, what is the alternative? If I don't tell the truth, what do I say? Do I blatantly lie? What's the alternative to dry, yeastless factuality?

I found out that if you don't tell the truth, the alternative is not to lie. Rather than tell them that what they are referring to as AI, is merely a sophisticated stack of if-and-elses, I'd tell them about the utility of such software. With racial tensions, when they ask if I had been bullied as the only black programmer in my team, my answer is to explain the effect of being the only black programmer. There are many ways black people have been treated unfairly without getting lynched. In itself this is a much more interesting story then bullied vs not bullied.

When honesty can only get you so far, the alternative is to stop lying.  

How to spend a billion dollars

Published:

by

August 3rd, 1492. Christopher Columbus left Spain for what was an accidental journey to America. This was 528 years ago or 192,852 days ago today.

If you made $5,000 a day, every day, weekends included. Or $152,000 a month, Or $1.82 million a year for all this period of time. You would still be 35.7 million dollars short of a billion. That's 14 and a half times the lifetime income of the average household in the United States.

Yet, the population is rarely in favor of a tax on the ultra-rich. There are only 630 billionaires in the US. The odds of joining their ranks is 1 : 520,634. At the very least, we can say that the odds are not in our favor. In the US, the poor sees themselves as temporarily embarrassed millionaires.

We tolerate unfair treatment at work because we think it's temporary. We live with the stress of no health insurance because eventually we will make it big. We take two or three jobs because the end will justify the means.

What happens if things don't change? If your condition doesn't improve at work. If you never get health insurance. If you lose your job. Then what happens?

If you are a bank, the government hands you money so you can continue to operate. If you are an individual, you are on your own.

We are not temporarily embarrassed millionaires. We are at the butt-end of a system that will celebrate us, but never reward us.

Time to think

Published:

by

In 2032, a camera will point at an exit door in a small clinic, waiting for a patient to come out. The camera will be held by a friend of this self appointed news anchor on TikTok. He will stream it live to his followers who will be watching from all over the place. Some will be in bed. Some will on the toilet seat. Some will be in class ignoring the teacher in the distance.

The notable thing about this moment is that millions will watch, but it will be mostly ignored. Behind the clinic's door would be the first patient to receive a prescription from a renowned doctor in the field of mental health. When the patient exits through the door, the anchor will ask him, "What does it feel like to be the first to receive this prescription?" All over the world, distracted teens will listen eagerly for the answer. Though they might not stick to the end. Some will swipe the video and move on to the next.

The patient will answer, "I don't know... weird I guess?"

But then the anchor will continue talking to his invisible audience, never mentioning the patient again. Turning it into a soliloquy as he walks away.

The patient will walk to the next building where he will present his prescription to a lady behind the counter. She will hand him a box to place his phone, watch, glasses, and any electronic device. Then, he will receive a small cup of water and a red pill to swallow immediately. She will then escort him to a furnished room with a window overlooking a lake. For the next few weeks, he would have to come back to this room, put away all his electronic devices, and spend some time alone.

The purpose of this exercise is not to have time alone, but to have time to think. Every day, we get less and less time to ourselves for thinking.

Standing in line means putting on headphones and watching a video. Driving means listening to a podcast. Running means listening to music or another podcast. Going to the bathroom means catching up on twitter. Boredom means watching endless streams on TikTok. There is not a single second left to think.

Eventually, the world will feel this crisis. And doctors will prescribe a note that will give us the luxury of spending a moment alone. This will be the only time we will have left to think.

We don't have a solution

Published:

by

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

Published:

by

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.