How to successfully fail at everything

Published:

by

To fail at everything you want to do, take a moment and think about the thing you want to do. It can be anything. A presentation, launching a product, or even taking a class. Great.

Now, imagine one thing that can go wrong. Maybe your slides get accidentally deleted and you can't continue your presentation. Right after you launch your product, you discover a similar product with a similar name, and a better offering. Or the class turns out to be too hard and you don't understand a thing. Great!

This future you are imagining is really not working for you, and would likely be embarrassing. So the next step is to take that future and bring it into the present. Be embarrassed by your speech today. Be frustrated about the product today. Feel inadequate about your class today.

You will feel the stress and emotions of these failures today and chances are you will give up right away.


I hope you are not actually following my advice, these are terrible things to do. But that's a pattern I see everyday. I see people feeling inadequate at their job before they do something inadequate. I see people skipping class because they think they won't understand it anyway. I see people wanting to quit their job because they think their boss is going to fire them anyway.

These problems come from imagined scenarios that will most likely never happen. But we are consuming all the frustrations that come with the problem well before the problem occurs. Do not prepare to be hurt. In fact, there is no such thing as preparing to be hurt. It's not like you will feel better after.

Only prepare for things you can change. If you think someone might have the same product, do some research before you build the whole thing. If you think some technical issue might happen during your presentation, do a mock presentation, rehearse. If you think the class might be too complicated, look through the prerequisite, learn the material first. Prepare for the things you can change.

Avoid trying to predict a future. In fact, if you want to be wrong, try predicting the future.

But if you really want to fail, then suffer the consequences of imagined scenarios today.

When she stepped on the stage

Published:

by

A presentation among friends. A presentation to share insights about the company. A presentation to help us make better decisions as leaders. This was the theme when the engineering managers gathered around for a few days to help propel the company into a better future.

I couldn't help but notice that there was only one woman in the room and she fit in like a hand in a custom made glove. She conversed with everyone, laughed at jokes, and teased the new guys.

One at a time, the managers stepped on stage and made their presentation. They called each other names, dropped f-bombs, sprinkled jokes left, right and in between slides. The audience was asking silly questions. It was fun, it was entertaining, but I can hardly tell you what the meat of their presentation was.

Most were friends before they joined the company, they knew each other outside of work. They were comfortable. They played well together. They were friends. But then the girl stepped on stage. The one and only girl in the room. Was she going to follow in the same tradition? Was she going to be entertaining? After all, she was also friends with everyone. She was part of the crew.

The moment she stepped on stage and opened her laptop, her eyes narrowed. Her facial expression dropped like she had been wearing a mask all along. The crowd was silent and focused as she made her exposé. She was interrupted a couple times with questions, but handled them with grace. She broke down the problem, repeated the argument, then explained how it can be solved with the method she was presenting.

In other words, she killed it. Unlike her colleagues, she was not trying to test her comedy routine on us. She didn't make a single joke. It was entertaining because we learned a lot from her. It was fun because she offered a solution to a problem we were facing as managers. It was professional because she didn't feel the need to drop f-bombs.

In the past, I've spoken about the challenge of being the only black person in every team I join. I recognize that women also face their own set of unique challenges. Especially in Tech. But I was grateful for this change of pace, for this simple yet new take that my colleague offered. While all of us were used to the comedy routine presentation, a fresh take brought us back to basics. If everyone in your team looks and talks just like you, it may be time to start changing your hiring process.

Ethics in tech

Published:

by

When I hear ethics in tech, I'm reminded of movies where the stakes are high. If the protagonist makes the wrong move, the whole planet will pay the price. The right move means being selfless and sacrificing all the riches in the world for the sake of humanity.

Reality is more subtle. Violating all the moral ethics in the world means adding two pesky lines of javascript in the code. It means creating a field in your database called “delete”, but never deleting the user data. It's not as dramatic, yet just as unethical.

Ethics is a few lines of JavaScript, a database query, a third-party SDK. And it boils down to one thing: Revenue.

Disappointed

Published:

by

There is magic in not understanding software. How does it understand what we say? How does it answer our questions, how does it know who my friends are? Whether it is AI or a simple program, it can leave most of the world fascinated. Diving deep into computer programming and AI can only leave you disappointed.

Disappointed because the computer doesn't really understand you. It turns your voice command into text and passes it to a classifier where the intent is extracted. Then a predefined action runs with the argument you provided.

The computer doesn't actually see you. It takes a sample of the image data coming from the camera then runs it in a convolution network. Then it compares the result to the data it has in its database.

The computer doesn't know who your friends are. It calculates the likelihood of you being friends with someone by comparing both your GPS locations and your respective friends list.

It's like watching a magician reveal his trick. Before he reveals it, you are fascinated. Once you know the trick, you lose a little bit of yourself. But you still can't do the trick yourself. One of the biggest open secrets in the magician community is that no one thinks a magician will work this hard to fool you.

In software, knowing the trick does not equate to being able to replicate it. Most of the work done in software engineering goes unnoticed to the end-users. Scaling to make an application available in milliseconds is never celebrated. Making sure emails are delivered is boring. Fixing a small bug that only affects a subset of users is unnoticed. Knowing how software works is kinda boring. But building software is certainly fascinating.

The last person to learn

Published:

by

When I was learning JavaScript in class, I felt like I was already behind. It was 2008 and everyone and their grandmother knew how to use document.all. There were new frameworks coming out everyday and every job was requiring years of experience with each one. I had to learn them all if I wanted to make a living writing code.

What I didn't know at the time was that the software world has always been like that. In fact there was an advantage to being the last person to pick up the book. You couldn't possibly learn everything, and most things become irrelevant quick enough. Remember Silverlight?

By the time I started learning about AI, all the resources were already available. Any time something was obscure to me, someone had already gone through the same issue. They had the time to write a detailed blog post with interactive figures that helped me better understand. When I followed videos on YouTube, the entire class that had been uploaded over the course of two years was available to me. I could watch it everyday rather than wait for a week or two for the next installment.

I went on to complete programs from Deeplearning.ai in a month instead of the 3 to 4 month recommended. The last person to start gets to learn from the pitfalls of those who paved the way. They don't have to spend the time working on tech that was only a fad. I'm the last person to learn, but I won't be too far behind in knowledge.

It hardly looks intelligent.

Published:

by

I often set out to learn about Artificial Intelligence. I must have been 12 or 13 when I decided I wanted to build a humanoid I can talk to. It might have something to do with the fact that I was fighting with my brothers everyday. It could also have been intellectual curiosity.

In my mind, this machine would start as software. I'd program it to listen, then to talk. Then I'd add a webcam and teach it vision. I'd slowly teach it to do things until it becomes better than me. While it was practicing intelligence, I'd learn robotics and build a humanoid body to encase it. Then I'd have to decide if it was a male or female. While my brothers were playing their video games, these were the thoughts that kept me up at night.

But when I sat at the computer, I had no idea how to get started. In the early 2000s, there wasn't a lot of material to go from on the web. Plus the little that was there was in English. One article I remember translating through yahoo's babelfish had one idea that stuck with me. It said something like "It's hard to say a person is intelligent if you look at them through a microscope." The building blocks of a living being are simple. They perform small simple tasks that can be programmed in a computer. But zoom out and these small components add up to become intelligent beings.

That's just what you see when you explore neural networks, the idea behind the state of the art AI today. They are small simple components that hardly look intelligent. In fact, they are simple math equations. Yet, put them all together and you have face recognition, machine translation, and self-driving cars.

I didn't build my humanoid, turns out I don't need to talk to computers that badly. But that experience has sparked an interest in computer intelligence that I continue to practice to this very day.

The best way to...

Published:

by

What is your best way to write? What is your best trick to take note? What is your best productivity advice?

You might have answers to these questions. If those tricks actually work for you, it's because you have something that is usually missing from the equations. You had material to work on.

Unless you have material to work on, there is no reason to read about the best trick to anything.

One day, a friend convinced me that we should both write. This was after we completed our English 1A class, we both got As. I was so excited that I could hear generic ideas bubbling in my head. But before I put the first word on paper, I went online to read about writing advice.

The first thing I found was people recommending Strunk and White, the Element of Style. That's the book we used in class. I didn't understand why people were swearing by that book. It wasn't helping me get started at all.

I spent some time reading about the Oxford comma, then about a space or two after a punctuation, and finally passive and active verbs. It still didn't help me get started. Everyday I would spend an hour reading about writing, preparing for that thing I was going to write one day. It's only today, more than a decade later that I remember this story. We forgot all about it. I had read so much about writing but it didn't materialize into anything at the time.

I was doing what schools usually teach students. Learning about a subject in a vacuum. I learned all about writing, yet I never practiced it. What I should have done instead was write. Write anything whether it was good or bad. Once I had material, I could look for advice to help turn it into something readable and understandable.

I can say this with confidence because this is how this blog came to be. It was two years after I had dropped out of college that I decided to start this blog. I didn't read anything about writing, blogging, or programming before I started. I wrote a few articles, and eventually I built a framework to display it on the web.

There is no best way to start anything. You do it, and eventually you improve it.

You are not getting the better one

Published:

by

Every time Apple releases a new iPhone I can't help but feel bad for all the competition. The specs alone show that when it comes to performance Apple is miles away from the 2nd place. The physical design gets copied by everyone else. I can clearly see that that hardware is superior, the software is coordinated, the experience is pleasant. Yet, I don't think I will ever buy an iPhone.

I can say so because after using the iPhone for work for the past decade, I prefer Android. No, it's not because android is better either, I just like my current phone.

I often watch the hundreds of YouTube reviewers reviewing new devices and I find it useful to know what new phones are capable of. But so far, they haven't lead me to buy a new phone. In fact my phone is 4 years old now.

I don't use this Windows machine because it's superior to the Mac. I like typing my blog posts on this minimal text editor.

I don't use my Linux machine for development because it's superior to my Windows machine. In fact, my Windows machine is way more powerful. But I like developing under Linux.

I don't use PHP for my personal projects because it's the most amazing programming language. In fact, it has a lot of quirks compared to other languages. But I like using it for my personal projects.

Mac users don't stick to Apple because it is the better product. They just like it. Macs are probably good machines, but that's not the deciding factor.

We don't get the better product. We get the one we like.

Missing the point

Published:

by

When my niece was two years old, there were some defining moments where her brain graduated from infant to toddler. Suddenly she was able to observe the world and make deductive reasoning. On one of those days, she was going around the house observing each of us, then there was a spark!

She ran to my room with all her strength, pushed the door out of her way, and knocked the laptop out of my lap. I didn't get the chance to protest, the look in her eyes told me this was an emergency. She held me by the arms and yelled "Tonton!" I am tonton.

— Tonton! shajo baba mamy yaki deeda [long redacted list] daddy ihi white!

Now, I could have done two things. One I could have taken the time to understand what she was trying to say. Some of those words above were her way of calling each of us. Shajo is Sadio, Mamy is her mom, deeda is Kadija etc. Clearly, all these people had something to do with "white". She had a poor vocabulary at age two, but that's not uncommon. It's unrealistic to expect a 2 year old to speak with perfect clarity. So I could have asked follow-up questions to clarify.

Instead, I went with option two. That is, laugh at her incoherent rambling. It was cute and funny. I laughed on her face. I couldn't stop. And I kept repeating "something something white!" and laughed some more. She wasn't laughing.

When I wasn't stopping, she gripped my arms with the strength of a grown up and said: "Quiet!" I fell silent. There was a short pause before she pointed her finger at the corner wall of the room. And in the tone of a well read authoritative figure she added: "Tonton time-out."

I was ashamed. I missed the point. She was making an observation, possibly for the first time, and she wanted to share it with her Tonton. I made fun of her instead. It's like someone discovering a new moon on Uranus, and we laugh because she said your anus.

I will never know what she was trying to say. She is a big girl now and don't even remember that event. I missed the point. How many times have I laughed instead of listening? My own kids are about to turn two now. Before I laugh, I need to listen.

Coco

All the time I have wasted

Published:

by

Early in my career, I experienced the most impostor syndrome when I was left with nothing to do. I would come to work like a dock worker, waiting at my manager's desk, to see if she had any work for me. She would shuffle around her email to find something. Anything! Anything that she could give me to keep me busy. When the task was to adjust some CSS, or change the text on the website, I felt useless.

But it didn't take long until I figured out that down time was my most valuable time. First of all, it meant that we had achieved our goals. We had finished all our tasks on time. Something to celebrate. And it also meant, I had free time. Time I could use to experiment. Time I could use to explore.

This free time would prove valuable in learning new things. I was a front-end programmer, but in my down time, I familiarized myself with C. It allowed me to read the PHP source code and learn to better use the language.

In my down time, I read books like Game Programming Patterns by Bob Nystrom. It allowed me to explore new ideas rarely encountered in the Web programming world. It even helped me when I built applications for embedded devices later in my career. It allowed me to work on writing better documentation. Finding effective ways to describe a program that allow people to use it.

My down time became productive time. So much so that I would never complain when I finished all my other tasks. This time that my employer couldn't justify was when I learned new things that benefited myself and the company. At first, it felt like wasted time, but now I see that it is the experience that made me a competent programmer.