Getting ideas

Last update 07/12/2018

I still remember the first days when I wanted to learn to code…

I wanted to code so I can make things. I love building things, and I still do. I believe I had that maker mind from the start. Now, years later, “making things” si the best advice you can give to someone learning to code. For me, I think I was fortunate, or maybe lucky, to have it from the start.

Even with this eagerness to create something new, I struggled to get new ideas for something I can build with code. That thing should to be 1/ easy enough for me to practice my coding skills 2/ don’t take too much time, but also, 3/ solves a problem.

So I started thinking about all this, then came up with some bad ideas at first. But the more I was thinking about getting them, the more I started getting good ones.

Thinking about it now, I believe that in our head, there is a muscle responsible for getting ideas. This of course isn’t scientifically correct, but used for metaphor only. I like to call it the muscle of ideas.

Like any muscle in our body, we need to train it to make it stronger. The only difference here is we’ll train it by producing ideas and not by some kind of workout. Those first ideas will probably be bad, really bad. And that’s normal. If a muscle was resting for a long time, what was you expecting?

If you search online about this subject. You’ll find people talking about some hacks or some ways of getting ideas. A lot of them even suggest coming up with at least 5 or more ideas every day.

It was different for me. I used another process and I’m still sticking to it so far. To train my muscle of ideas, I forced myself to think about a solution whenever I encounter a problem. And believe me, we encounter a lot everyday. We just need to be curious.

One day, I saw a girl in front of the door, looking up and waiting something to be dropped. Her mom was going to drop the door keys from the 4th floor. I still remember her yelling at the girl and saying “you better catch it, I don’t want that keychain broken”. This is a normal day in Morocco, and we’re used to this. But given that I trained my muscle of ideas to respond to this kind of stimulus. I started thinking about a solution to this problem.

My solution was: a simple keychain that works like a parachute. When the keys are falling, the keychain will open like a parachute and decrease the keys speed. So anyone can catch it without being hurt. I’m not sure if this product exist, or if it’s even possible to do it. But for me, it was a solution to that problem. A way of training my muscle of ideas.

Another day, I was doing the groceries. And the problem with groceries is there is a lot of brands. For things I use frequently, I know which brands to pick, because basically I tested a lot of them. But for other things you buy once in months, how I’m supposed to pick?

I started thinking about a solution, and it was very clear that you need input from other customers. A way of displaying all products and make people vote for the best. So when you want to shop next time, it’s easy to choose.

These kind of situations can happen every day. And I’m sure everyone can pick a problem to think about at least once everyday. In the commute, the grocery store, or in home. We just need to be curious.

So if you want to get ideas for your next project, your next talk or your next book. You need to train your muscle of ideas. There is no shortcut. And there is no hacks. There is work. Picking what idea to work on from all those ideas you come up with is a different story. And that’s for another time…

Saving my life in the last minutes

Back when I had to choose my last internship for my electrical engineering degree, I had two options: An internship in the electrical field, doing what I’m supposed to be doing. The other one was an opportunity I was offered in software development.

By now you probably know my choice, but I wanted to give you an idea about how it all started:

Electrical Engineering

Choosing Electrical Engineering was a mistake I made by listening to people and not doing what I want to do.

I’ve chosen it based on my rank in an test where high ranked choose either Civil, Industrial or Electrical Engineering. I was basically just following the mass. And that, was the biggest mistake I made so far. A mistake that nearly costed me my whole life.

One week is all what took me to discover that electrical engineering wasn’t for me… Nothing seemed interesting in it and I couldn’t imagine myself working in it in the next 5 or 10 years.

I tried switching my major. The administration said “No you can’t”. And that lead me to two conclusions:

  1. You need to study the minimal things to pass exams and get your diploma
  2. You have 2.5 years to figure out what you’ll do about this mess

The positive side is I had plenty of time to learn something on my own.

Software Development

Disclaimer: This is a love story

My crush for software development started when I got my first computer with an internet connection. I used to play with some basic HTML and CSS to create websites and web interfaces. Then we got an Algorithmic course in school with some basic programming with C. And my love for software development started from there.

So when I screw up by choosing Electrical Engineering. I wanted to correct my mistake by learning something I love this time. And this thing was called: Software Development.

I spent my engineering school years reading books, watching programming videos and programming on the side. In the weekends, or sometimes during a boring lecture of some electrons traveling a wire.


Now, back to the initial problem: Accepting an internship in software development or doing what I’m supposed to do, electrical engineering.

Choosing the first one means I’ll work on something I love and I’ll be happy to do it for at least the next 5 to 10 years. But my resume will be Electrical Engineer with an internship in Software Development… Not a good thing.

Choosing the second one means I’ll work on something I hate in this internship (like 2 prior ones) and probably for the rest of my life.

As you probably know, I decided to choose the first option. I prefer to take a risk to live happily after. Or do what I’m supposed to do and live sad for the rest of my life.

After finishing my internship, I got an offer from the company and accepted it without thinking twice.

Nearly 2 years later, I’m happy with this path. I’m working on something I love every day, I’m learning a lot and I have no regrets. I’m thankful for people who trusted me and helped me do what I love.


It’s normal to make mistakes, we are all humans. What’s not normal is not trying to solve them.

It’s your life, take opportunities and live the way you want.

Do what you love.

What it feels like to launch an online business from Africa

When your country crashes you before even starting

3 Aug 2017, 10:27 PM: I was sitting on my couch scrolling Twitter, when I found this tweet:

I was always asked by my friends to review their resumes. They say I have an eye for quality, can catch errors and give ideas for amelioration. But the reality is, I’ve spent a lot of time writing, sending and correcting resumes that I can now spot errors and give “advices” or what they call ideas for amelioration.

So the first idea that came to my mind after reading Pieter’s tweet was: What if I can propose this as a service? You upload your resume, you pay some cash, 24h later you receive a complete review with advices to improve it.

That was my answer:

Shortly after, people started joining the conversation andgiving their feedback on the idea.

So without thinking twice, I started working on it!


3 Aug 2017, 11:40 PM: 1 hour and 13 minutes later, a prototype was ready for launch:

All it needs was verifying my Stripe account to start accepting payments online, no big deal! Well, I was wrong. Terribly wrong.

Stripe doesn’t support African countries. So being from Morocco, it was impossible for me to use it. Some folks on Twitter suggested to try other alternatives: PayPal? Nope. Braintree? Not even close…

I was exhausted, I checked every payment provider suggested and not a single one is supporting my country.

It’s time for bed…


4 Aug 2017, 3:28 PM: I spent all day thinking about a solution but couldn’t find one. So I asked on Twitter:

And then got a reply:

Looks like this is the answer, they are supporting African countries! But after checking their website, I found they are supporting: Nigeria, Ghana and Kenya.

However, they told me to contact them. According to their support, they may have something for me. After a few messages on Twitter, they wanted me to beta test a new product designed for Morocco, I said Yes. I’ve been told that a representative from San Francisco will call me. And then, they vanished, with no response. I’m still waiting Flutterwave…

After all this, I started to lose hope. Not in this project, but the idea of starting a business online. Why starting an online business while you can’t even charge your customers?


14 Aug 2017, 2:42 AM: Suddenly I got another response:

A roller caster of emotions started again. What if it’s the answer? What if I can finally make it?

After removing Bitcoin and PayPal from the list, I was left with two options, and as you’ve guessed: They are not working in Morocco.

One because they aren’t implemented in Morocco:

And the other because my idea is against their Terms Of Service… I still don’t know why:


3 Sep 2017: This is when I tried something I didn’t want to try in the first place: Checking local payment providers in Morocco. Not because I’m lazy or something, I didn’t want for one simple reason: The monopoly.

Monopoly kills the industry. When no one is trying to take your customers, there will be no innovation and no improvement.

Let me describe the payment monopoly in Morocco:

  1. Only one company is allowed to move funds between banks in Morocco. If you want online payments, you’ll use them eventually. I spent a lot of time on their website and I couldn’t find any information about how much they charge on transactions. Welcome to the dark world! After contacting them (they work with phone only, I sent countless emails), they charge 1.5% for local cards2.5% for international cards and in order to be able to use the service, you need between 1000$ and 5300$ as a deposit depending on the business. Now that’s a lot! In addition to this, this company is in charge of moving funds only. If you want online payment, you need to chose a payment provider
  2. 3 payment providers can help you add payments to your website, and of course, their website don’t have enough information either. So I took my phone and called them: First one didn’t responded, I lost hope after trying multiple times. MarocTelecommerce want a 120$ initial fee + 0.5% per transaction. FPay want a 0.5% per transaction, with no initial fee, but if you want to quit before 3 years, you need to pay 300$

So let me sum up for you:

You need between 1000$ and 5300$ as a deposit, 2% to 3% per transaction, some hidden fees and be ready for a lot of paperwork

And guess what, you need to do all of this for EVERY WEBSITE. Yes, this setup is related to every website you own. In other words: There is no place for makers here.


21 Sep 2017, 3:43 PM: As a last try I asked Marc if he knows a payment provider that supports Morocco and he tweeted about it:

One of the responses that got my eye was this:

Paddle business model is quite different from PayPal or Stripe. They aren’t a payment provider, they are technically re-selling your products and they take care of VAT and everything for you. But this comes with a cost, you can’t actually sell services, only digital products: Books, software licences, subscriptions…

My original idea was a service: reviewing resumes. But looks like I can’t use Paddle with it either!


25 Sep 2017: “I need to do it! I just need to launch it!” Those are the words that kept coming to my head every time I think about the subject.

The only solution that came to my mind was transforming my idea to an acceptable business by the newly discovered Paddle. What if I could write everything that I know in a book/guide and sell it online? That’s it! Even if it’s not the type of experience I want to provide to my customers, but I prefer to at least launch something.

I opened my laptop and started writing…


10 Oct 2017: Website looks good, my guide looks good, payment working, it’s time to launch.

I launched my product: Review my Resume as a step-by-step guide on how to redact and review your resume. You can find it on the official website.

EDIT (April 2nd, 2019): Site isn’t working anymore as I took it down, I sold one copy of the book 🙂

It took me more than 2 months to launch a product! Not because the product is hard itself, but because I need to deal with things I’m not supposed to deal with. Imagine what could happens if we lower the barriers? Imagine if we could only concentrate on our products instead of integrating payments, etc? Good things can happen, more and more people will make and sell products online and probably employ others.

I know that people from developed countries have these advantages. They can start selling online in minutes, but the majority don’t have this privilege!

So, I guess I’m not allowed to access basic services just because I’m born in the wrong country?

Ahmed

How to keep your interest

I had a problem, a problem I know a lot of people suffer from. I’m always excited to learn something new, but after some time, I lose interest. Searching online gave me almost the same answers: Be curious, start small, be accountable… I had all of that, this was not the answer I wanted! So I started analyzing what happened when I lost interest!

I discovered that, in every subject or skill you want to learn, there is always that part I call the least pleasing part. When you hit this part, you lose interest in what you’re learning and you just give up. In addition to this, we don’t share the same preferences, thus, the least pleasing part isn’t the same for everyone! In order to find it, you need to deconstruct what you’re learning and identify what the possibilities might be! (I’ll show you how to do that with some examples)

If you want to keep the interest, you need to identify the least pleasing part about what you’re learning and try to resolve it while learning. Yes, while, not before nor after. Don’t get distracted by it, resolve it while learning, and get over it!

To help you understand how this works, I’ll give some real world examples of how to deconstruct your subject and find the least pleasing part. I’ll share with you 3 skills I wanted to learn and how I applied this to them: Writing, Coding, and Cooking.

Writing

I always wanted to write, for me, it’s how you learn to express your ideas clearly and communicate with others.

To develop the habit of writing, I did what all writers tell you: write a lot! However, the least pleasing part about writing for me was finding ideas to write about.

So instead of not writing until you get a new idea, just keep writing, just put what you think about or what you did in that day in a text file. And while writing, sometimes you’ll get good ideas, or you’ll see that there is a connexion with what you wrote yesterday, you start to see patterns, and now you got a subject to write about!

When I get an idea, I create a new file for it with a small description of what I want to write so I can complete the writing later or stop everything and start working on it if it’s important.

This is how I fixed the problem while learning writing! Even this article started like that!

Coding

I’m a self-taught programmer, coder, software developer or whatever they call it nowadays. And while learning the art of programming, I started with: the basics, picking a programming language, doing side projects and small applications to apply my knowledge.

Learning the basics and picking a language was kind of easy. Watching online material and choosing the language depending on the platform you want to develop for. Things got out of control when I wanted to do side projects! The least pleasing part of my coding journey was architecting my applications. Whenever I wanted to start something, I take a pen and paper and try to get an architecture for the app. But when I start coding, I hit some edge cases I didn’t think of, and now, my architecture is not working! I tried to solve the problem before, I was wrong!

I got frustrated at first, I taught I’m going nowhere, I was always wrong! But after some time, I just accepted the fact that it will never be good from the first try. So I started fixing it while coding. I start with the most basic architecture I can think of and whenever I hit a problem due to it, I stop, fix it, and continue coding. Just like that, a happy ending!

Cooking

When I want to cook something, this is how I go with it: Pick a recipe, buy ingredients (all of them or what I don’t have), cook, clean dishes (because no one likes dirty dishes).

For me, picking a recipe was easy, I just google whatever I want. Same goes for buying ingredients and cooking, you just follow steps. But the part when I need to clean dishes was hard! Whenever I think about cooking, I think about the dishes I need to clean and how I’ll lose a lot of time doing it. So I end up… eating out!

Once I tried** cleaning dishes while cooking, the frustration disappeared. The idea is to **clean anything you used in the preparation while waiting for your meal to cook. You’ll end up with one dish (the one used for serving) to clean after eating, which is less intimidating than cleaning the whole army of dishes.

This is how the idea is applied to cooking, clean while cooking! Let’s make cooking great again!

To sum up:

  1. Deconstruct what you want to learn and identify the least pleasing part about it
  2. Resolve it while learning, not before/after
  3. Repeat