Anything you want by Derek Sivers. Extended book resume

Anything you want by Derek Sivers, is one of my all-time favorite books. It’s a short book you can read in an hour and contains 40 lessons Derek learned while building and selling cdbaby.com, a platform for independent musicians to sell their albums.

The following is a summary of the 40 lessons. This is an extended summary where I try to not leave a lot of information from books. Read why here.

1. Ten year of experience in one hour

CDBaby.com is a little hobby that accidentally turned into a business from 1998 to 2008. Derek’s way of building a business is a little bit unconventional to what we currently see in the media or read about in books. That’s why he explicitly mentions that you shouldn’t follow his ideas and approach blindly. What worked for him may not work for you, so keep this in mind while you read the remaining.

2. What’s your compass?

The second lesson is about knowing your compass, or what you are trying to achieve. Most people don’t know why they’re doing what they’re doing. They imitate others, go with the flow, and follow paths without making their own. They spend decades in pursuit of something that someone convinced them they should want, without realizing that it won’t make them happy.

In life, you need to know your personal philosophy of what makes you happy and what’s worth doing. Then do it.

3. Just selling my CD

Derek’s was a musician. He created his own album and started selling it at his concert. In total, he sold 1500 copy and wanted to sell online.

At that time, the only way to get your album online is to sign with a record label company. But Derek was against the idea of selling his soul to a label. He wanted to stay independent.

So Derek decided to build his own online store!

But this was in 1997, and PayPal didn’t exist. He contacted his bank and paid 1000$ to setup a merchant account, and spent three months doing paperwork. He then got a programming book and started copying examples in order to build his store. After some time, the Buy Now button was live on the site.

After telling his friends, everyone started asking Derek if he can sell their albums. He said yes to all of them. And quickly it turned to 50 musicians wanting to get on the site.

4. Make a dream come true

Derek wanted to sell his album, but he’s spending more time setting up albums for his friends. It looks like he accidentally started a business!

Given he didn’t want to start a business in the first place, Derek took a utopian approach and wrote down what he wanted his company to do, from a musician perspective. In a perfect world, he wanted a company that:

  1. Pay me every week.
  2. Show me the full name and address of everyone who bought my CD. (Because those are my fans, not the ditributor’s)
  3. Never kick me out for not selling enough. (Even if I sell only one CD every five years, it’ll be there for someone to buy)
  4. Never allow paid placement. (Because it’s not fair to those who can’t afford it)

That was the company’s mission, and it kept Derek motivated to work on it.

When you make a business, you get to make a little universe where you control all the laws. This is the utopia Derek is talking about.

5. A business model with only two numbers

When you accidentally start a business, you don’t really know what’s your business model. And that was true for Derek too.

His approach is funny, but effective. Derek visited a record store and asked the woman at the store: “How does it work if I sell my CD here?”. The woman responded: “You set the pricing at whatever you want. We keep a flat 4$ cut. And we pay you every week”.

So Derek went home to his online store, and wrote: “You set the pricing at whatever you want. We keep a flat 4$ cut. And we pay you every week”. The reasoning was if it’s working for that store, it should work for him too. And given he spent 45 minutes adding a new CD to the site, he started charging a one time fee of 25$ per album and then raised it to 35$.

And that was the business model the whole time. A 35$ setup fee, plus a 4$ cut. A business plan should never take more than a few hours of work -hopefully no more than a few minutes.

6. This ain’t no revolution

After CD Baby’s success, the media said it revolutionized the music business. But that term is usually used only when you’re successful. Before that, you’re just a quirky person who does things differently.

People think revolution always involves loud provocations, fists in the air, and bloodshed. But if you think a great relationship looks like Romeo and Juliet, you’ll overlook a great relationship that grows slowly.

When you’re into something great, it won’t feel like revolution. It’ll feel like uncommon sense.

7. If it’s not a hit, switch

For the first time, Derek made something that people really wanted. Before that, he spent 12 years trying to promote his different projects with different marketing approaches, networking, pitching… But now it was different.

Once he got a hit, all the locked doors were open. People loved the product so much that it’s promoting itself.

When you present a project to the world and it’s not a hit, don’t keep pushing it as is. Instead, get back to improving and inventing. Present each new idea or improvement to the world. If multiple people are saying: “Wow, yes I need this! I’d be happy to pay you to do this!” then you should probably do it. Otherwise, don’t pursue it.

8. No “yes”. Either “Hell yeah!”. Or “no”

You can also use this to personal matters. If you find yourself saying something less than “hell yeah!” to something, then just say no.

We’re all busy. We’ve all taken too much. Saying yes to less is the way out.

9. Just like that, my plan completely changed

CDBaby was seen by Derek as a credit card processing service. Somewhere musicians can say, go buy my CD online. But one day, a customer sent him an email: “Any new releases?”. Derek didn’t understand the request and asked for more details. “Oh, sorry, I thought it was a store” said the customer.

A store? That’s an interesting idea. Being a store will be helpful for artists as more people can stumble upon their work. And just like that, the plan completely changed, and CDBaby was transformed to a store.

Five years later, Apple asked CDBaby to be a digital distributor. And just like that, the plan completely changed once again.

Anytime you think you know what your new business will be doing, remember this quote from serial entrepreneur Steve Blank: “No business plan survives first contact with customers”

10. The advantage of no funding

Having no funding is an advantage. Spending less time in investor meetings, talking about LOI, ROI, IPOs and all kinds of things that also had nothing to do with helping your customers.

None of your customers will ask you to turn your attention to expanding. They want you to keep your attention focused on them. It’s counterintuitive, but the way to grow your business is to focus entirely on your existing customers. Just thrill them, and they’ll tell everyone.

11. Start now. No funding needed

Watch out when anyone (including you) says he want to do something big, but can’t until he raises money. It usually means the person is in love with the idea of being big-big-big than with actually doing something useful. For an idea to be big-big-big, it has to be useful. And being useful doesn’t need funding.

12. Ideas are just a multiplier of execution

Ideas are worth nothing, unless they are executed. They are just a multiplier. Execution is worth millions.

To make a business, you need to multiply these two components: ideas and execution. The most brilliant idea, with no execution is worth 20$. The most brilliant idea takes great execution to be worth 200.000.000$.

That’s why Derek don’t want to hear people’s ideas. He’s not interested until he sees execution.

13. Formalities plays on fear. Bravely refuse.

Do you passionately love the “Terms & Conditions” and “Privacy Policy” on other websites? Have you even read them? If not, then why would you go putting that garbage on your website?

Never forget that there are thousand of businesses, like Jim’s Fish Bait Shop in a shack on a break somewhere, doing just fine, without corporate formalities.

As your business grow, don’t let them suck you into things you don’t need. They’ll play on your fears, saying that you need this stuff to protect yourself against lawsuits. The’ll scare you with horrible worst-case scenarios. But those are just sales tactics. You don’t need any of it.

14. The strength of many little customers

When you build your business on serving thousand of customers, not dozens, you don’t have to worry about any one customer leaving or making special demands. If most of your customers love what you do, but one doesn’t, you can just say good-bye and wish him the best, with no hard feelings.

15. Proudly exclude people

When CDBaby got popular, record labels tried to add their artists there. But since the start, CDBaby was only for indie musicians and those record labels were politely excluded by Derek.

It’s a big world, you can loudly leave 99% of it. Have the confidence to know that when your target 1% hears about you excluding the other 99%, the people in that 1% will come to you because you’ve shown how much you value them.

16. Why no advertising?

This goes back to the utopian perfect-world ideal of why we’re doing what we’re doing in the first place. In a perfect world, would your website be filled with ads? When you’ve asked your customers what would improve your service, has anyone said “Please fill your website with more advertising”?

Nope. So don’t do it.

17. This is just one of many options

When creating your business plan, you can’t pretend there’s only one way to do it. Your first idea is just one of many options. No business goes as planned, so make ten radically different plans.

Same thing with your current path in life:

  • Now you’re living in New York City, obsessed with success. What’s your plan?
  • Now you’re a free spirit, backpacking around Thailand. What’s your plan?
  • Now you’re married and your kids are your life. What’s your plan?

18. You don’t need a plan or a vision

Do you have a big visionary master plan for how the world will work in twenty years? Do you have massive ambitions to revolutionize your industry? Don’t feel bad if you don’t because you don’t need one. Just stay focused on helping people today.

19. “I miss the mob.”

Never forget why you’re really doing what you’re doing. When you get big, you’ll have MBA types asking you: “What’s your growth rate? What’s your retained earnings rate as a percentage of gross? What are your projections?”. Those all unnecessary metrics.

They’ll try to push you to optimize your business even if it’s already making money. They’ll say you’re leaving money on the table. But never forget: Are you helping people? Are they happy? Are you happy? Are you profitable? Isn’t that enough?

Given the story behind the “I miss the mob.” is long, I decided not to include it here.

20. How do you grade yourself?

We all grade ourselves by different measures:

  • For some people, it’s as simple as how much money they make. When their net worth is going up, they know they’re doing well.
  • For others, it’s how much money they give.
  • For some, it’s how many people’s lives they can influence for the better.

For Derek, it’s how many useful things he creates. Songs, companies, articles, websites, or anything else.

How do you grade yourself? It’s important to know in advance, to make sure you’re staying focused on what’s honestly important to you, instead of doing what others think you should.

21. Care about your customers more than about yourself

One day, someone from the audience asked Derek: “In the future, when artists can spin up their own online store, what would happen to CDBaby?”. To which Derek responded: “Honestly, I don’t care about CDBaby. I only care about the musicians. If CDBaby is not needed in the future, I’ll shut it down and get back to making music.”

He was shocked. This is the first time a business owner says he didn’t care about the survival of his company. But that was common sense to Derek.

A business is started to solve a problem. But if the problem were truly solved, that business would no longer be needed! So the business accidentally or unconsciously keeps the problem around so that they can keep solving it for a fee.

This is also true for pharmaceutical companies or online productivity subscription tools. Any business that’s in business to sell you a cure is motivated not to focus on prevention.

That’s why, if the problem isn’t around anymore, your company should be willing to die for customers. Care about your customers more than about yourself, and you’ll do well.

22. Act like you don’t need the money

Banks love to lend money to those who don’t need it. Record labels love to sign musicians who don’t need their help. People fall in love with people who won’t give them the time of day. It’s a strange law of human behavior. It’s pretty universal.

If you set up your business like you don’t need the money, people are happier to pay you. When someone’s doing something for the money, people can sense it, like they sense a desperate lover. When someone’s doing something for love, being generous instead of stingy, trusting instead of fearful, it trigger this law. We want to give to those who give.

23. Don’t punish everyone for one person’s mistake

Several years ago, one guy tried to light his shoes on fire on a plane. Now, and for all future time, millions of people a day have to queue up to take their shoes off at the airport – because of that one dumb moment.

As a business owner, when you get screwed by someone, you might be tempted to make a big grand policy that you think will prevent you ever getting screwed again. One employee can’t focus and spends his time surfing the Web. Instead of firing or reassigning that person to more challenging work, the company installs an expensive content-approving firewall so that nobody can go to unapproved sites ever again.

When one customer wrongs you, remember the hundred thousand who did not. Resist the urge to punish everyone for one person’s mistake.

24. A real person, a lot like you

When we yell at our car or our coffee machine, it’s fine because they’re just mechanical appliances. So when we yell at a website or a company, using our computer or phone, we forget that it’s not an appliance but a person that’s affected.

It’s too overwhelming to remember that at the end of every computer is a real person, a lot like you, whose birthday was last week, who has three best friends but nobody to spoon at night, and who is personally affected by what you say.

Even if you remember it right now, will you remember it next time you’re overwhelmed, or perhaps never forget it again?

25. You should feel pain when you’re unclear

CDBaby had about two million customers.

When writing an email to everyone, if it wasn’t perfectly clear, at least twenty thousand confused replies will get back to CDBaby. Which will take staff at least a week to reply to, costing at least 5,000$ plus lost morale.

Unfortunately, people writing websites don’t get this king of feedback. Instead, if they’re not clear, they just get silence. Lots of hits but no action.

A lot of new websites are trying to look impressive, filled with hundreds of puffy, unnecessary sentences. The people creating these website haven’t felt the pain of trying to email something to thousands of people, to directly see how misunderstood or ignored it is.

26. The most successful email I ever wrote

When you make a business, you’re making a little world where you control the laws. It doesn’t matter how things are done everywhere else. In your little world, you can make it like it should be.

When starting CDBaby, Derek wrote an automated email that goes after each shipping: “Your order has shipped today. Please let us know if it doesn’t arrive. Thank you for your business”

One day, Derek felt the email is too serious and wanted to make it more fun. He took twenty minute, and came up with:


Your CD has been gently taken from our CDBaby shelves with sterilized contamination-free gloves and place onto a satin pillow.

A team of 50 employees inspected your CD and polished it to make sure it was in the best possible condition before mailing.

Our packing specialist from Japan lit a candle and a hush fell over the crowd as he put your CD into the finest gold-lined box that money can buy.

Our packing specialist from Japan lit a candle and a hush fell over the crowd as he put your CD into the finest gold-lined box that money can buy.

We all had a wonderful celebration afterwards and the whole party marched down the street to the post office where the entire town of Portland waved “Bon Voyage!” to your package on its way to you, in our private CDBaby jet on this day. Friday, June 6th.

I hope you had a wonderful time shopping at CDBaby. We sure did. Your picture is on our wall as “Customer of the Year”. We’re all exhausted but can’t wait for you to come back to CDBABY.COM!!


That one email, sent out with every order, was loved that if you search Google for “private CD Baby jet”, you’ll get almost twenty thousand results. Each from somebody who got the email, loved it, and posted it to his website and told all his friends.

When you’re thinking of how to make your business bigger, it’s tempting to try to think about big changes and projects. But please know that it’s often the tiny details that really thrill people enough to make them tell their friends about you.

27. Little things make all the difference

If you find even the smallest way to make people smile, they’ll remember you more for that smile that for all your other fancy business-model stuff.

An example of small things, is the outgoing emails from CD Baby. Every outgoing email has a “From:” name you can adapt. With one line of code, it was “From: CD Baby loves [first name]”. Customers loved this.

Even if you want to be big someday, remember that you never need to act like a big boring company.

28. It’s OK to be casual

When hiring new people, Derek’s method was unusual. He’ll go to his staff and ask: “Anyone have a friend who’s good with Linux? Yeah? Is he cool? OK, tell him to start tomorrow”. The thought was that it’s almost impossible to tell what someone’s going to be like on the job until he’s actually on the job for a few weeks.

Don’t try to impress an invisible jury of MBA professors. It’s OK to be casual.

29. Naive quitting

One day at his first job, Derek decided to quit in order to focus on being a full-time musician. But given this was his first and only job, he didn’t know what to do. So he did what seemed to be respectful and considerate thing to do; He found and trained his replacement.

When the days came, Derek walked into his boss’s office and said: “I need to quit now, but I’ve already trained my replacement. She’s great.”. His boss looked a little stunned, then said: “Uh. Well. OK. We’ll miss you”.

Ten years later, when Derek was running CD Baby, and for the first time, an employee told him he needed to quit. “Drag. Well. OK. I wish you the best! Who’s your replacement?” said Derek. The employee looked confused and said: “I think that’s your job.”.

Derek asked a few friends and found out he was right. People can just quit a job without finding and training their replacements. All these years, he just assumed what he did was normal.

There’s a benefit to being naive. Deciding from scratch what seems like the right thing to do, instead of just doing what others do.

30. Prepare to double

Given CD Baby needed warehouses for the CDs, Derek had to buy more shelving few times each year. Instead of trying to predicate how many shelves they needed, he buys the double each time. When they filled a 5,000-square-foot warehouse, he rented a 10,000 square feet one. etc…

Never be the typical tragic small business that get frazzled and freaked out hen business is doing well. It sends a repulsive “I can’t handle this!” message to everyone. Instead, if your internal processes are always designed to handle twice your existing load, it sends an attractive “come on in, we’ve got plenty of room” message.

31. It’s about being, not having

When you want to learn how to do something yourself, most people won’t understand. They’ll assume the only reason we do anything is to get it done, and doing it yourself is not the most efficient way.

But that’s forgetting about the joy of learning and doing. Yes, it may take longer. Yes, it may be inefficient. Yes, it may even cost you millions as your business will grow slower. But the whole point of doing anything is because it makes you happy! That’s it!

You might get bigger faster and make millions if you outsource everything to the experts. But what’s the point of getting bigger? To be happy, right?

When you sign up to run a marathon, you don’t want a taxi to take you to the finish line.

32. The day Steve Jobs dissed me in a keynote

I left this intentionally as couldn’t find a way to summarize the story without writing all of it 😦

33. My $3.3 million mistake

Four years before starting CD Baby, Derek wanted to borrow some money to buy studio equipment. His dad said “Instead of me lending you money, start a corporation. Then the family business can buy shares in your corporation”. And that’s what Derek did.

Four years later, he got the first check addressed to “CD Baby”, but there was no company called “CD Baby” at the time. So he went to the band and told the teller “I need to set this up as a new business, so let’s open a new business account”. But she told him “Oh you don’t need to do that. You can just make it an alias on your Hit Media account”. It seemed a little strange because CD Baby was an independent business, but it saved ten minutes and 100$, so he said OK.

Four year later, CD Baby was doing really well: a few million dollars in sales, half a million in net profits, and Derek paid his dad back the money he borrowed.

Derek called up his accountant in January to ask if they can file the taxes early that year. “Oh, you don’t need to file. CD Baby is just a line item on your dad’s company’s tax return.” said the accountant. “What?”. “You didn’t know that your dad’s company owns ninety percent of CD Baby?”. “Uh… What?”.

Yes, it looks like the money Derek borrowed eight years earlier was done by selling 90% of his company to his dad’s company. And all these years, CD Baby wasn’t his company. He only owned 10%.

What made it even worse is that he couldn’t just buy the business back for the original 20,000$. The only way was to pay full market value, as determined by an outside valuation company. Which ended to be $3.3 million dollars.

34. Delegate or die: The self-employment trap

Most self-employed people get caught in the delegation trap. You’re so busy, doing everything yourself. You know you need help, but to find and train someone would take more time than you have. So you keep working harder, until you break.

The same went with Derek when working with CD Baby. In 2001, he had eight employees, but he was still doing everything else. Working 7AM to 10PM, seven days a week.

Every five minutes, an employee got a question for Derek. It was hard to get anything done while answering questions all day.

After hitting his breaking point, he took some time to think and decided he should make himself unnecessary to the running of his company.

Now whenever he got a question, he stopped everything, called everyone, repeated the question, and then provided an answer. But more importantly, he explained the thought process and philosophy behind the answer.

He asks if everyone understood and then asks someone to take a note in a newly created manual for these questions.

After two months of this, there were no more questions. Now he was totally unnecessary.

There’s a big difference between being self-employed and being a business owner. Being self-employed feels like freedom until you realize that if you take time off, your business crumbles. To be true business owner, make it so that you could leave for a year, and when you came back, your business would be doing better than when you left.

35. Make it anything you want

After your business has been up and running awhile, you’ll hit an interesting crossroads. Everyone assumes that as the owner of the company, you’ll be the traditional CEO, having high-powered lunches with other high-powered CEOS and doing all the business deals. But what if you don’t like doing that? What if what you love the most is the solitude of the craft? Or talking to customers?

Never forget that you can make your role anything you want it to be. Anything you hate to do, someone else loves. So find that person and let her do it.

If you do this, you’ll encounter a lot of pushback and misunderstanding, but who cares? You have to just do whatever you love the most, or you’ll lose interest in the whole thing.

36. Trust, but verify

In 2005, CD Baby’s main business was doing digital delivery music to all the digital music retailers: iTunes, Amazon, Napster… This role was life-or-death important to the company and was the main reason most of the new clients signed up.

Derek built a system that did most of the work, but it sill required someone to connect the drives, and ship them to retailers. And he hired a guy to do just this.

He explained how this mission is critical and that the job requirement was: Every album, to every company, every week, not matter what. The guy signed on the contract and started working.

A few months later, lot of complaints were falling on CD Baby. It appears the music wasn’t sent to the digital music retailers in months!

Derek called the guy in charge to ask what’s happening. He said, “Yeah, I’ve been really backed up. It’s been really busy”. Derek flew to Portland and let him go as this was an extreme matter. He then decided to do the job himself for some time to catch up on things.

The lesson in this story is to trust, but verify. Remember it when delegating. You have to do both.

37. Delegate, but don’t abdicate

Delegation doesn’t come naturally to any of us. But Derek was trying hard to be good at it. When the employees asked how they should organize the rooms in the new office?, Derek said “Any way you want”. When they asked, which health-care plan should we go with?, “You decide” said Derek.

Six months later, the accountant called Derek and said: “Did you know that your employees et up a profit-sharing program?”. “Yeah, why?” said Derek. “Did you know that they’re giving all of the profits of the company back to themselves?”. Oups.

Derek canceled the profit-sharing program, and became the very unpopular guy. In the weekly company meetings, the general message from the employees was “We need to get Derek out of here, so he stops telling us what to do. We don’t need to answer to him! He needs to answer to us”.

That’s when Derek realized there’s such a thing as over-delegation. Derek considered firing everyone and hiring a whole new crew. He also considered shutting down the company since he wasn’t enjoying this anymore.

In the end, he did what was best for the customers: He retreated into solitude and focused on programming some major new software features. He never saw or spoke to his employees again, never saw the office.

During this, Derek learned an important word: abdicate. To abdicate means to surrender or relinquish power or responsibility; this word is usually used when a king abdicates the throne or crown. Lesson learned too late: Delegate, but don’t abdicate.

38. You make your perfect world

Business is as creative as the fine arts. You can be as unconventional, unique, and quirky as you want. A business is a reflection of the creator.

  • Some people want to be billionaires with thousands of employees. Some people want to work alone
  • Some want as much profit as possible. Some want as little profit as possible.
  • Some want to be in Silicon Valley with Fortune 500 customers. Some want to be anonymous.

No matter which goal you choose, there will be lots of people telling you you’re wrong. Just pay close attention to what excites you and what drains you.

39 and 40: Selling CD Baby and donating everything

Derek never thought he would sell CD Baby but in 2008, he was trying to plan for the years ahead. Every plan needed a huge effort for little reward, but all required for future growth. He broke the work into about twenty project of two to twelve weeks each, and he wasn’t excited about any of them. Derek took CD Baby far beyond his goals, and he realized he had no vision for it being much else.

That’s when Derek started thinking about the idea of selling. After talking with some of his friends and mentors, he was encouraged to sell.

Before selling CD Baby, Derek created a charitable trust and transferred all CD Baby assets to the trust. When Disk Maker bought CD Baby, they bought it from the trust and not from Derek, turning $22 million cash to benefit music education.


If you liked this article, there are other extended book resumes in the books category.

Do not miss my next post! Drop your email in the box below and get it straight to your inbox:

Remote.ma: from a blog to a platform

It’s been two years since I started remote.ma, but I didn’t share why I started it before. So today, I’m going to share this with you. It all started when I wanted to work remotely:

The story

I applied to Automattic for three reasons:

  • I wanted to work on something with an impact. And for someone who loves writing, working on WordPress is a dream.
  • I wanted to take ownership of my tasks. I hate micro-managing.
  • I wanted to work remotely.

Few interviews and code tests later, I got the job.

Up to that point, I had no idea how I was going to do this legally, but I knew there should be a solution. I’m not the first one working remotely from Morocco right?

So I did what every millennial do: I searched for answers on Google. And to my surprise, there was nothing! I couldn’t find a single blog post, article, or forum speaking about this.

It was that time when I decided that once I figure out how to do this, I’ll write about it. And that’s how everything started.

Few meetings with an accountant, and a few weeks of preparation, I got everything sorted out. That’s when I wanted to write about it. But I only had this blog.

At first, I was going to use this blog for them, but then I thought this should be a separate blog about remote work. There is none in Morocco anyway! And this is when I started looking for domain names.

I remember I was excited when I searched for remote.ma domain and it was free. I bought it right away. I also bought make.ma the same day.

That’s it. I got the domain and I started writing.

Fast forward to now, those legal blog posts helped a lot of people. I still respond to questions about them to this day. It’s crazy how an evergreen post can still serve years after its writing.

What’s next?

I have plans for remote.ma. Yes, it started as a blog, but it shouldn’t be like that forever. I want it to be home for anyone working from home. Remote workers, freelancers, entrepreneurs… There are few of them now, but I believe we’ll see a surge shortly.

remote.ma will be a platform for training, jobs, consulting, a closed community… Some of this is already live like the job board. And others are in the work, like the closed community.

Some of this will be surely paid to support the growth, but more on that later 🙂

Is it bad practice to choose your own document ID in Firestore or a NoSQL database?

What if you’re left to choose the IDs of your documents on a NoSQL database like Firestore? Will you use a random string for your IDs, or try to use a combination of your document fields?

Let’s take books for example. A good candidate for a unique ID is the ISBN, it’s a book identifier and is supposed to be unique. Until now, using the ISBN as an ID looks promising. But what happens if you start supporting self-published (e)books? Or local books? Or old books with no ISBN? Well… things can be tough!

Whenever you use a document property, like ISBN, book title, etc… as a unique id for your document, you’ll quickly hit some edge cases down the road. This without talking about what happens if you change a property due to a typo for example? Will you go and change the ID everywhere?

All this sounds like you should never use a document property as a unique ID, and it’s true. But what should you use instead? A random string? It may sound strange, but that’s the safest option.

Using long, random strings, make IDs independent from the document itself. This will help you avoid a collision (two documents or more sharing the same ID) and you’ll not need to update the ID if you change something in the document.

How to choose unique IDs?

Well, you can choose a random ID if you want. But if you’re using Firestore, you can let it do the work for you. By default, Firestore can create strong unique IDs for your documents if you don’t force your own IDs. When creating a new document, just insert it directly to the collection of documents. This will automatically create a new ID for it:

// This is how it looks with Firestore for the Web
const res = await db.collection('books').add({
  name: 'The Book Of Good Dogs',
  country: 'Morocco',
  isbn: '123456890',
  price: 0
});

// To get the id of the document
console.log( res.id );

Other examples for other platforms can be found in the official documentation.

If you still want to generate a random ID yourself, you will need to use doc() before:

const randomId = generateSomeRandomId();
const res = await db.collection('books').doc( randomId ).set({
	name: 'The Book Of Good Dogs',
  country: 'Morocco',
  isbn: '123456890',
  price: 0
});

That’s it! Next time you’re tempted to come with a way of creating new IDs for your document, stop what you’re doing, and use random strings.

Do not miss my next post! Drop your email in the box below and get it straight to your inbox:

Acquiring my first Internet project: okjob.io

A few months ago, I acquired my first project ever: okjob.io, a remote jobs board.

The following is a recap of why I acquired it instead of building it myself and how I’m planning to use it. But first…

Why the heck a job board?

It’s been a while since I wanted to build a remote jobs board. Yes, there are thousands out there, and I’m not trying to compete with them, but I wanted to build a board for Moroccans. Why? Because not all remote companies hire from Morocco.

Some companies only hire from the US, Europe, Canada… For Moroccans like me, it’s hard to find a remote job. You need to manually check companies to see if they hire from Morocco.

Most job boards include a “Global” filter, which supposedly, should show you companies hiring “worldwide”. But given most companies call themselves “worldwide” if they hire outside of the US (but not necessarily everywhere), that filter doesn’t work for the majority of cases.

Why acquiring?

I wasn’t thinking of acquiring to start with. But when the opportunity presented itself, I reached out to the maker and we worked out a price.

It was a win-win situation. For the seller, it encourages him to focus on other projects. And for me, the project is built with technologies I’m comfortable with (Node.js, Express, and Next.js), was fairly priced, and helped me move quicker with my idea.

What to expect next?

I didn’t change much on the okjob.io site itself, but I took the same technology and started using it for the Moroccan Remote Jobs board: jobs.remote.ma.

The list of companies is hand picked for now. That way, I know for sure they are hiring from Morocco. The project is currently in the testing phase but will be officially launched in the next few weeks.

Curious about entrepreneurship and building things on the Internet? Follow me for more stories:

Show Your Work by Austin Kleon. Extended book resume

A new way of operating.

This is one of the books every creator should read. It is full of information for those trying to build an online audience. In this new world where information is abundant, it’s hard to be spotted. How to get people to notice your work? How can you get your stuff out there? And how you can get an audience?

Austin starts by this quote:

Be so good they can’t ignore you.

Steve Martin

And while it’s true, it’s not enough to be good. In order to be found, you have to be findable. This book goes into details on how sharing your work with the world can help you build an audience. The same audience that will help you get your word out once you’re ready.

The book helps you think about your work as a never-ending process and how to share it in a way that attracts people who might be interested in what you do.

You don’t have to be a genius

We see a genius as an individual with superhuman talents, free of the influence of a precedent, and with a direct connection to God. When inspiration comes, it strikes like a lighting bolt and then he spends the rest of his time in his studio turning this idea into a masterpiece.

But that’s not true.

Creative work is done in a group. All group members are contributing ideas, stealing from each other, copying, etc. It’s not about how smart you are, but about what you have to contribute, the ideas you share, the quality of connections you make, and the conversations you start. Austin calls this group a scenius.

Find your scenius, and be a good contributor.


Austin then moves to talk about being an “expert”. He explains how the world is changing at such a rapid pace that it’s turning us all to amateurs. So instead of fighting it, embrace being an amateur.

An amateur is someone following something in the spirit of love. Because they have little to lose, amateurs are willing to try anything and share results.

In the beginner’s mind, there are many possibilities. In the expert’s mind, there are only few.

On the spectrum of creative work, the difference of mediocre and good is vast. But mediocrity is still on the spectrum, you can move up in increments. The real gap is between doing nothing and doing something. Amateurs know that contributing something is better than contributing nothing.

The best way to start in the path of sharing you work is to commit to learning in front of others. Find a scenius, pay attention to what others are sharing, and then start taking note. Look for voids you can fill with your own efforts, no matter how bad they are at first.


On doing what we love, Austin explains how we’ve always been told to find our voice, but we never really know what this means. You can’t find your voice if you don’t use it. So talk about the things you love. Your voice will follow.

When talking about your work, make sure you do it online. In this day and age, if your work isn’t online, it doesn’t exist. We all have the opportunity to use our voices, to have our say, but so many of us are wasting it. If you want people to know about what you do and the things you care about, you have to share them.

Think process, not product

In a pre-digital world, the only way an artist could connect with an audience was through a gallery show or art magazine. But today, with social media, an artist can share whatever she wants, whenever she wants, at almost no cost. By sharing her day-to-day process, she can form a unique bond with her audience. Take people behind the scenes.

People really want to see how sausages get made

Become a documentarian of what you do. Let your audience see the person behind the products.

A lot of us go about our work and feel like we have nothing to show for it at the end of the day. But whatever the nature of your work, there is an art to what you do, and there are people who would be interested in that art. If only you presented it to them in the right way!

How can you show your work even when you have nothing to show? You need to make stuff (also see my post on how to create a public portfolio when your work is private). No one will give a damn about your résumé, they want to see what you have made with your little fingers. Start a journal and write your thoughts, or speak in an audio recorder. Take a lot of photographs of your work at different stages. Shoot videos. etc. This is not about making art, it’s about simply keeping track of what’s going on around you. When you are ready to share, you’ll have a surplus of material to choose from.

Share something small every day

Every success needs decades worth of hard work and perseverance. But thankfully, you don’t need that time all in one big chunk. And speaking about chunks, forget big chunks. Forget years, months, weeks… Focus on something small. Focus on days.

Once a day, after you finish your work, go back to your documentation and find one little piece you can share. If you’re just starting, share your influencers and what’s inspiring you. If you’re in the middle, share your process or methods of work. If you completed the project, share the final result. If you have multiple projects in the wild, report how they are doing or share stories about how people are interacting with your work.

The form you use for sharing doesn’t matter. Blog, tweet, video, it doesn’t matter. There’s no one-size-fits-all plan for everybody. Pick what works for you, and stick to it.

Produce and share a lot. Theodore Sturgeon, a fiction author, states that 90% of what we produce is crap, the other 10% is good work. But the problem is we don’t know which is which until we share it with others. So make sure to share a lot, but keep in mind anything you share will be there forever. So don’t share something you don’t want your boss or mom to see.


You daily updates will construct what Austin calls the Flow. But you need another part to achieve results, and it’s called the Stock. If the flow is the daily stream of updates, the stock is the content that will be still interesting in months and years from publication.

Stock is what people discover via search. It’s what spreads slowly but surely, building fans over time. And the magic formula is to maintain your flow, while working on your stock in the background.

Your stock is made by collecting, organizing, and expanding upon your flow. Social media is a public notebook where we share our ideas and invite others to share their voice with us. But the thing with notebooks is you need to revisit them in order to make the most out of them.

Social networks are good, but they come and go. If you’re really interested in sharing your work and expressing yourself, nothing beats owning your own space online, a place that you control. Buy a good domain name, and create your blog.

A blog is the perfect machine to turn flow into stocks. One blog post is nothing on its own. But publish a thousand blog posts over a decade, and it turns into your life’s work. This sounds technical, but a few Google searches will show you the way.

Open your cabinet of curiosities.

If you happened to be wealthy and educated in the 16th-17th century, chances are you had a cabinet of curiosities. A room filled with rare objects that served as a kind of external display. Books, skeletons, jewels, shells… were all part of the cabinet.

Before we are ready to take the leap of sharing our own work with the world, we can share our tastes in the work of others. Where do you get your inspiration? What do you read? Do you subscribe to anything? What movies do you see?…

When you share this online, always credit people and include a link pointing to the website of the creator. The number one rule of the Internet is people are lazy. If you don’t include a link, no one will bother searching.

Tell good stories

You might think that the pleasure you get from a painting depends on its color, its shape, and its pattern. And if that’s right, it shouldn’t matter if it’s an original or a forgery. But our brains don’t work like that. When shown an object, a face… people’s assessment -how much they like it- is deeply affected by what you tell them about it

Paul Bloom – Psychology Professor

Words matter. Your work doesn’t exist in a vacuum. Whether you realize it or not, you’re already telling a story about your work. Every email you send, tweet, video, comment… they are all contributing to the narrative you’re constantly constructing. If you want to be more effective when sharing yourself and your work, you need to become a better storyteller. You need to know what a good story is and how to tell one.

To tell a story, you need structure. But sadly, our life is messy. A good pitch has 3 acts: The first act is the past, where you’ve been, what you want, how you came to want it… The second act is the present, where you are now, how you’ve worked hard and used up most of your resources. The third act is the future, where you’re going, and how exactly is the person you’re pitching can help you get there.

Whether you’re telling a finished or unfinished story, always keep your audience in mind. Speak to them directly in plain language. Be brief. Learn to speak. Lear to write. Use spell-check…

Teach what you know

Think about what you can share from your process that would benefit your audience. What are your techniques? Are you skilled at using certain tools/materials? The minute you learn something, turn around and teach it to others. Share your reading list. Point to helpful reference materials. Create some tutorials and post them online. Use pictures, words, and videos. Make people better at something they want to be better at.

Don’t turn into human spam

There is a category of humans called human spam. They’re everywhere, and they exist in every profession. They don’t want to pay their dues, they want their piece right away. They don’t listen to your ideas, they tell you theirs. You should feel pity for those people because at some point, they didn’t get the memo that the world owes none of us anything.

If you want fans, you have to be a fan first. If you’re only pointing to your own stuff online, you’re doing it wrong. You have to be a connector. An open node. You’ll get by giving. Shut up and listen once in a while. Be considerate. Don’t turn into human spam.

Do not worry about how many people are following you online and start worrying about the quality of who follow you. If you want more followers, be someone worth following. Make stuff you love, and talk about it. You’ll attract people who love that kind of stuff.


Working on your projects and sharing them online requires energy. This is where Austin introduces a test called: the vampire test. If after hanging out with someone you feel worn out, that person is a vampire. If you hangout with someone, and you still feel the energy afterwards, that person is not a vampire. This test works on jobs, hobbies, places, etc… Vampires can not be cured. If you find yourself with a vampire, avoid it completely. Do not try to fix it.

When you put your work out there, you’ll run into your fellow brotherhood. People doing the same as you and ready to help. These are your real peers, the people who share your obsessions, your mission… There will only be a handful of them, but they are important. Do what you can to nurture your relationships with these people. Invite them to collaborate. Show them your work before you show anybody else. Call the on the phone and share your secrets. Keep them as close as you can.

Making friends online is awesome. But meeting them in real life is even better. Make sure to take coffee with your friends.

Learn to take a punch

When you put yourself and your work online, you have to be ready for the good, the bad, and the ugly. The more people come across your work, the more criticism you’ll face.

The first step in evaluating feedback is knowing whom it came from. You want feedback from people who care about you and what you do. You should be extra wary of feedback from anybody outside of that circle. A troll is a person who’s not interested in improving your work, only provoking you. You’ll gain nothing by engaging with them. Don’t feed them. They’ll usually go away.

Here’s a checklist for feedback:

  • Take a deep breath and accept whatever comes from a feedback
  • The more criticism you take, the more you realize it can’t hurt you
  • Keep moving. Every criticism is an opportunity for new work
  • If you have some sensitive work, do not post it. Keep it secret. But keep in mind if you spend your life avoiding vulnerability, you and your work will never truly connect with other people
  • Remember that your work is something you do, not who you are

Sell out

Everybody says they want artists to make money, but when they do, everybody hates them for it. Don’t be one of those fans who stop listening to a band just because they had a hit single. Don’t be jealous when the people you like do well, celebrate their victory as if it’s your own.

When an audience starts gathering for the work that you’re freely putting into the world, you might want to take the leap and turn them into patrons. The easiest way is to ask for donations. If you have something that requires upfront investment, platforms like Kickstarter and IndieGoGo can help you with fund-raising. It’s important to note that these platforms work best when you already have an audience. And the last option is making something and selling it for money. Then ask your followers to support you by buying the things you’re selling.

Whether you ask for donations, run a crowd-funding campaign, or sell your products, asking for money in return for your work is a leap you want to take only when you feel confident that you’re putting work into the world that you think is truly worth something.

Even if you don’t have anything to sell right now, you should be collecting email addresses from people. Email is decades and decades old, and it’s nowhere close to being dead. Unlike blogs, social media… when you send an email to someone, it will come to her attention. She might not open it, but she definitely has to go to the trouble of deleting it.

There are people running multimillion-dollar businesses off their mailing lists. The model is very simple: They give away great stuff on their sites, they collect emails, and then when they have something remarkable to share or sell, they send an email. You’d be amazed at how well the model works.

Put a little widget on every page of your website. Write a bit of copy to encourage people to sing up. Be clear about what they can expect, whether you’ll be sending daily, monthly, or infrequent updates. Never add someone’s email to your mailing list without her permission. The people who sign up for your list will be some of your biggest supporters. Don’t betray their trust and don’t push your luck. Build your list and treat it with respect.

Be ambitious. Keep yourself busy. Think bigger. Expand your audience. Try new things.

Stick around

Every career is full of ups and downs. Never quite, either when you have an up or a down. Chain your projects, one after the other. This means you avoid stalling out in your career by never losing momentum.

Chaining your projects is a good way to stay busy. But with time, you can easily burn-out. It’s good to take a sabbatical to recharge and get your ideas. But given a sabbatical isn’t possible for the majority, here are some ideas for mini-sabbaticals:

  • Commute: A moving train or subway is the perfect time to write, doodle, read, or just stare out the window
  • Exercise: Using our body relaxes our mind, and when our mind gets relaxed, it opens up to having new thoughts
  • Nature: Go to a park. Take a hike. Dig in your garden. Get outside in the fresh air. Disconnect from anything and everything electronic

When you feel like you’ve learned whatever there is to learn from what you’re doing, it’s time to change course and find something new to learn. You can’t be content with mastery; you have to push yourself to become a student again.

Sometimes, you need to have the courage to get rid of work and rethink things completely. The thing is, you never really start over. The lessons you’ve learned before will sleep into what you do next. So don’t think of it as starting over. Think of it as beginning again.


Hope you enjoyed this extended resume. Let me know how did you find it in the comments. Do you want to see more of these in the future? Was it too long or too short?

That said, if you want to hear about new posts, consider subscribing to this blog. I usually write once every week 🙂

Or you can follow me on Twitter if you prefer.

Why developers hate Ruby on Rails

Hey I’m Ahmed, a self taught software engineer. In my path of self learning, I tried multiple languages and frameworks; and one of them was Ruby on Rails.

That was at least 5 years ago, and I hated it. I didn’t know why, but it just felt different in a bad way at that time.

A few years after, exactly 3 months ago, I started learning Ruby on Rails again. But this time I was shocked! Why didn’t I learn it before? Look at how things are easier here? Why are we spending so much time in other frameworks while this is working out of the box?…

The hobby phase

As a developer, you start your coding journey as a hobby. You discovered code and how you can turn your ideas to life. Now, you’re hooked. You spend a lot of time coding and working with technology! In fact, according to this StackOverflow survey, 80% of developers code as a hobby.

Before the technology boom, people used to hate their day job. It was a source of income so they can do other things on the side. But for code, it’s different. It’s a hobby and a daily job.

It’s a no brainer that, we as developers, tend to over-architect things, build things from scratch, re-invent the wheel, etc… It’s a hobby and we want to experience the most out of it. And as a fresh software engineer discovering this new hobby, you want languages and frameworks giving you more flexibility to create, architect, and play with technology.

You can spend hours trying to make two frameworks play nicely together. Create the perfect build process. Architect your todo app. Deploy your simple app to a multi-region cloud provider, etc. And in the end, you feel happy. You don’t feel like you wasted time, because it’s your hobby! And we don’t waste time on hobbies. They are a source of happiness.

You’re in the hobby phase.


The get-things-done phase

As you get more experience in the field, you’re more likely move out of the hobby phase. This is due to different causes, and some of them are:

  • You don’t have enough time outside work to play with code (family, children, other new hobbies…)
  • Your past experiences show it’s not worth it to spend so much time early on trying to optimize
  • You’re now happier to see a product launch more than the technology behind it
  • You have a broad knowledge about the product inside your organization
  • And others…

As you reach this new phase, you do not care about frameworks and languages anymore. You want what gets the job done as your objectives are greater than the technology. You want a set of frameworks that plays nicely together and get the job done as quickly as possible. And that’s when you’ll find something like Ruby on Rails.

Ruby on Rails is a set of tools and frameworks that plays nicely together as long as you use what’s given to you. You don’t have the freedom to use new frameworks or build things the way you want. But if you abide by the Ruby on Rails rules, you’ll move faster.

You’re in the get-things-done phase. Being on the get-things-done phase is a prerequisite to liking Ruby on Rails. No one likes something that limits their “creativity” if they are still in the hobby phase.

According to the same StackOverflow survey, 67% of developers have less than 9 years of experience (40% have less than 5 years). That means, 67% are likely to be in the hobby phase. And this is one of the reasons why a lot of developers hate Ruby on Rails.


Skipping the hobby phase

Being on the hobby phase isn’t bad. In your journey as a developer, you’ll start in the hobby phase. And with time, you’ll move slowly out of it. The timing it takes depends on each individual however.

But can you avoid it altogether? Yes, there are some exceptions. These are people coming from other disciplines. They are marketers, sales, and other non-technical people who discovered they can do more with code. Their primary objective isn’t to code. It’s to get help from code.

They are less likely to pick up new technologies or frameworks. They just want something that works and helps them in their job. They are more likely to pick something like Ruby on Rails. Or better, no-code tools.


I’m Ahmed, a software engineer from Morocco talking about technology, and entrepreneurship. You can follow me on Twitter.

Do not miss my next post! Drop your email in the box below and get it straight to your inbox:

The day I accidentally built a nudity/porn platform

I didn’t know that my next project will turn into a nudity platform and a home for spammers. But it did happen while I wasn’t paying attention. And here are the details.

For the next 5/10 years, I’ve decided that my mission will be: “Can a Moroccan build an online business and make a living from Morocco?“. I currently launch multiple projects and give them some time to take off. My blog remote.ma, my jobs board okjob.io, and other projects are all examples of this. The project I’m talking about today, was also serving the same purpose in theory, but it was a flop.

That project is mylink.fyi, a personal and unique link for all your other links. I built it during my weekends given I already have a full-time job and it took me two months approximately. It’s like linktree and other competitors, but I tried to make it different. No ads, no logo, a clean interface, a 100% score in performance… My idea was: take a competitor product, remove all features you don’t need, and make it crazy fast. You have a 14 days free trial to test it out, but you need to upgrade your account afterwards.

I launched it in February 2020 with a completely different identity. I took my name, and thus my followers and my authority, out of the equation. I wanted to replicate “someone starting from scratch” as close as possible. I did use the service for my links (and remote.ma‘s links) but I never advertised the service on my personal account. You can see the Product Hunt launch, and the imaginary Twitter account I created.

Given how I built the app, I optimized it in a way I’ll only pay hosting fees when the site is having a lot of traffic. Like 1M+ visits per month. So I forgot about it, and kept an eye on the bills I get. Two weeks after launch, I had 100 users. No premium account.

Three months went by with 0$ bills. But in June, I received my non-zero bill, it’s exciting the app is taking off! I logged to Firebase (the infrastructure I’m using) and found a total of 1000 users! Wow, that’s a lot.

I took a look at the emails, and quickly saw that something was off. I’ve seen multiple accounts with the same email structure, something like emily123@gmail.com, emily456@gmail.com… I knew something isn’t right given there is a lot of them. So I decided to take a closer look and see the links they are sharing.

That’s when I discovered they were sharing porn and nudes links. These links aren’t permitted on social media, so they used mylink.fyi to “shadow” them. For these platforms, they are mylink.fyi links. But once you visit it, you’ll see a link for the banned site. There were hundreds of accounts doing this. And new ones get created every day. Once the trial period is over, they create a new email, a new account, and then repeat the same process. Oups!

I decided to remove all my links from the platform given it’s probably known for “porn and nudes” now. I logged to Instagram, and got a weird message: “Your profile link is not working“. I didn’t know what that means, but once I visited my profile, I’ve seen I can’t click on the mylink.fyi link. Wow, what’s that? I visited my other profile, and got the same message and the same problem! I later discovered that Instagram banned all mylink.fyi links from the platform. A customer also confirmed to me via email that Snapchat started blocking links. Heh, I’m banned by Instagram and Snapchat! From all scenarios I had in mind, this is not something I prepared for.

The first thing I tried is reducing the trial period from 14 days to 5 days. I was hoping I’ll make them stop. But nothing changed, I can’t outplay them. Damn it! Other solutions include: requiring credit cards for trial periods, ban all adult content from the platform… But they all require me to put extra effort in the project. And I don’t have time for that.

I disabled signups on mylink.fyi for now, and after all trials reach their end, I’ll take the service off. If you’re interested in acquiring the domain name, and/or the app, let’s talk.

That’s it for your daily dose of weird Internet anecdotes.

If you’re interested in stories about building online products and businesses, follow me on Twitter, or consider joining my mailing list 🙂

Do not miss my next post! Drop your email in the box below and get it straight to your inbox:

The green presence dot

Nowadays, every app with a chat feature has a presence indicator. It comes with different flavors, like a green dot, an “online” mention, or a “last seen” feature. But they all serve the same purpose.

It’s a trap.

Every one of them fights for your attention, trying to spend more time with you while using your friends as a weapon.

Beware.

No one wants to let their friends down. They want you to feel bad if you are seen “online” but didn’t respond in time. Feel bad about that message you didn’t read…

Fight back.

I still fail for this sometimes. But it’s good to have some reminders. And today, I wanted to share my reminder with you.

Online indicators are a trap. Beware. Fight back.

Article image drawn by me on an iPad using Procreate

Do not miss my next post! Drop your email in the box below and get it straight to your inbox:

Reversible decisions and tomato purée

We freak out when we hear “decisions”. We don’t want to make them. We prefer to avoid making decisions.

We think decisions are hard because they are irreversible. Once you make a decision, it will haunt you all your life. But the truth is, the majority of decisions are reversible. You can choose a path, and if something doesn’t work, you can change it.

From big life plans to groceries, reversible decisions are everywhere. We just need to better spot them. Make it a habit, and you’ll get good at spotting those. Here’s a grocery example: tomato purée.

You are getting groceries and you don’t know if you should pick that big bottle of tomato puree or two small ones. The problem is you know when you open the big bottle you need to use it in the next 3 days. And you are not sure if you can do it. But financially, the big bottle is less expensive.

Now which one you should pick? What’s the reversible decision?

What can happen if you pick the big bottle? If you use it all, that’s good. If you didn’t, you need to use it in the next 3 days, or you will throw it away. SO MUCH STRESS TOMATOES! Calm down.

If you pick two small ones and end up needing a lot of purée, you can use both. If you only need a small amount, you can open one and let the other for another time. No 3 days limit, no rush, no stress.

Picking two small bottles is always the best choice. Even if you don’t end up using the tomato puree, you are better throwing a small bottle than a big one. For the price difference, which is usually some cents, it isn’t worth the mental overhaul. If you can save your mind from thinking about this every time you are in a supermarket, just pay those extra cents.

This exercise is a good investment in the long run. And a good example of reversible decisions.

Next time you have a decision, take the reversible one. There is always one out there.

Do not miss my next post! Drop your email in the box below and get it straight to your inbox:

The timing is never right

For all the important things. Timing always sucks.

The stars will never align. And the traffic lights of life will never be all green at the same time.

The universe doesn’t conspire against you. The universe will not line up things for you either.

Conditions are never perfect. “Someday” is a disease that will take your dreams to the grave with you.

If it’s important to you and you want to do it. Do it. And correct course along the way.

Taken from The 4 hour work week book.

Do not miss my next post! Drop your email in the box below and get it straight to your inbox: