The best way to...



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



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



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.


All the time I have wasted



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.

Interruption Driven Development



In theory, at a job, work is passed down to you. You don't have to figure out what to do next, your manager will line up your next task. In reality, we don't live in a vacuum. Developers are perfectly capable of identifying pain points in the application. They can make a case on why they should work on these issues.

I rarely find myself without anything to do at work. There is always a task in my mind that I know I can work on but don't have the time to. I currently work at a start up, and my queue is filled with things I should work on. Completing them would make our service more stable, improve team work, and most probably help us generate more money. But like most startups, my real work comes from the daily interruptions.

These are things that we have not anticipated. Customers reaching out and asking for a feature, misunderstanding in the way the product works, and unexpected bugs. We all want to create great product with amazing features, but as long as interruptions are still common, they are the priority.

The Job is your training



"School is where they teach you how to think."

I've tried to believe that statement, but I just can't. In college, every time the professor turned to us and said: "Any questions?" The question that followed was the same. A student will raise his hand and ask, "Is this going to be on the test?"

School is where you learn to get good grades. The moment I started to use real-world methods in class, I was accused of cheating. Since I haven't used any bubble sort and red and black trees in a real job, I spent my time learning about software.

The most underrated skill I learned on the job is installing software. In the beginning of my career, I would spend days if not weeks pestering the lead developer. We would spend time together trying to figure out how to get the project up and running. Installing tools and dependencies, setting up configurations and environment variables, and understanding the developer workflow. No class in school will prepare you for this.

Project tasks do not come as word problem format. Schools obsess over creating theoretical situations. "Jack and Jill each have a set of N numbers where 1 < n < 10^24. They are considering merging their two sets while ignoring all duplicate..." No task comes in this format. When they are coming from a manager, sometimes they just say "The top link on the homepage is broken"

You have to conduct your own investigation, replicate the problem and then solve it. To correct the maxim: Jobs teach you how to think.

When a fire ravages a city



When the fire is put out, the people who once lived in these ruins come back to assess the damages. They see their family home destroyed. They see their apartment and all its content leveled to the ground. And most importantly, they see each other.

When nature strikes, people have this unrelenting ability to stand up together. As a community. They can put their differences aside and work together to rebuild.

But what happens when the fire was not of natural cause. What if some people lit the city on fire. What if people died in the fire. All of the sudden, this spirit of community is gone.

The fire may have been put out, but the resentment stays. The city may rebuild in time, but suspicion stays. Trust is thrown out the window. Everyone knows that their next-door neighbor is capable of lighting the city on fire once more. The city will never be the same again.

This is what Donald Trump did to America. Even if he loses, he already lit people's mind on fire. He turned people against each other. He dismantled the trust people once had towards one another. He damaged the country's ideals for his own gain.

A Biden presidency may roll a few of the laws back, but the damage has already been done. You cannot make people forget. America lost a limb. All it can do now is learn to live as an amputee.

The Perfect Application



Every time I want to start a project, I look for the perfect project tracker I could use. There are hundreds of To-Do apps in the market, but I can never find the one for me. I tried using Trello but haven't logged in for more than a year. I've even tried Jira, I can't get myself to log in.

But I have managed to complete many projects without ever finding a solution to my problem. It is this time of year again, and I am finding myself returning to my same trusted temporary solution. I always end with "OK, I'll put everything in a text file until I figure out the best solution." After so many years, simple .txt files are what I have been relying on to track my time and projects.

Maybe someday I'll find the best tool for the job. But for now, I can rely on a simple text file that is easily searchable to track my time.

If you find yourself with the same dilemma, trust in simplicity. Some day you will find the right software, for now save your thoughts in a simple text file.

Daily Work



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?



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.