My First Invoice

When I started making things online, I still had the mindset of trading time for money.

The mindset of you had to be a certain place at a certain time for someone to pay you an hourly rate.

Last week I sent my first invoice as a solo entrepreneur to a client. When I worked out the hourly rate it was more than double I’d ever been paid at any previous job.

I completed the work from my bedroom on my own time.

It took me too long to realise I was the one holding myself back. I saw others making a living online and thought, ‘Wow, how do they do that?’

I overcomplicated it.

You have a business when you have a paying customer.

How do you get a paying customer?

Make something of value and charge someone who wants to pay for it.

How do you make something of value?

Develop a skill (this takes time).

But the internet has made it so you can. You can learn what you want. And you can create things with what you learn. Don’t let an old way of thinking hold you back from designing a new way of living like I did.

My latest video shows sending the invoice as well as why it might be my last one for a while.

Saying not doing

That’s my problem.

I’ve been saying to myself, saying to others I want to build things.

But I haven’t.

It’s called signalling. Talking about something instead of doing it.

It started with wanting build a YouTube channel.

Then I did it. And it felt good.

I wanted to write. So I did. Everyday. And it makes me happy.

Now I want to build apps. Build products which add value to the world.

Don’t make the same mistakes I did.

If you know what you want to do. Remember.

The fastest way to get where you want to go is to go straight there.

My latest YouTube video talks about two things I’m doing wrong in my business. One of them is signalling. The other is jumping from project to project rather than building something scalable (a product built on code or media).


Iterate and deliver

That’s all you have to remember.

When you first begin and when you keep going.

If you can pull those two off, you’ll be in a good place.

Whether it be making videos, writing articles, building projects, providing a service, pay attention to these two words.

That’s what I’m reminding myself.

My ability to stay in business depends on it.

Yours does too.

My latest video documents my second week running an online business. I also talk about lifetime value. One of the most important yet underestimated business metrics.


Don’t let perfection hold back published

School told me I wasn’t an artist. I believed it. My year 8 art teacher gave me a D for my drawing. All that effort. A green ninja turtle. Not the ones you see on TV, my own.

The next year I dropped art, music and drama. All of it. Anything that wasn’t maths or science.

In year 12 I got a C- for English. The stories I wrote weren’t good. Why not? I thought I ticked the criteria. I read the book, rewrote it in my words, told it how I understood it. Now I couldn’t write, draw, act. What was the deal?

There was one thing though. I was captain of debating. I could speak. Writing differently to speaking bored me. My English essay was good (to me, not the teacher) but it was a drag to write. I had to take time off gaming to get it down. We were the best Call of Duty team in Australia, that’s a full-time job.

Our debating team went to other schools and they came to us. We’d have a week with a topic a week to wrap our 17-year-old brains around it and form an argument, for or against. Sometimes there wasn’t a topic. Instead, we’d get there an hour early and get given the topic on the night. You had to think of a speech on the spot.

I was always third speaker. Which meant I had the job of summarising the first two speakers on our team and saying why the other team was wrong. I loved it.

While the other team were speaking I had to think of why they were wrong and write it down. I didn’t have time to write an essay. I had to write how I was going to speak it. Then I had to deliver. That’s what mattered.

We went through our final year undefeated.

Essays are still hard for me to write and there’s nothing worse than reading poor writing. One of the easiest ways to improve your writing is to write like you speak. If you can’t explain something with words, say it out loud as if you were telling your friend about it and then write that.

It took me 7-years out of school to start creating again. To start writing publicly. To start making videos. I still haven’t gotten back into drawing. But I will.

When it first went live it wasn’t good. My first 30 YouTube videos were me sitting in my car. There were gaming videos on another channel but they weren’t me. My first articles were over edited, ‘what if someone thinks this when they read that?’

Thankfully they’ve gotten better since. And I have no plans to stop improving, stop challenging myself. That’s the key. Be your own biggest critique. Make things you’d like to see and make them quality.

But after a while being your own biggest critique gets easy. Then you have to learn how to be your own biggest fan. Fan and critique at the same time.

I hit 10,000 subscribers the other day. Now we’re on the way to 100,000.

But that’s not the metric I pay attention to. The metrics you can game don’t matter.

What then?

Work published.

Was it published?

Did the idea turn into something?

Where is it?

Can I see it?

Not everything goes out into the world. It shouldn’t. But in order to get better, you have to publish.

That’s what I measure myself on.

It’s what led me to being able to leave my job as a machine learning engineer and pursue a journey on my own. Let’s see where it goes.

If you’ve watched my videos or read my articles. Thank you.

My first contribution to an open source deep learning library

GitHub still confuses me. But it's needed. You can create your own tools but the best come from collaboration.

The philosophy of open source is simple. Take the best information and knowledge from others and make it available to every one in an accessible manner and let them create.

It says, here's the thing we've built, you can use it for free but if you find a way to improve it, let us know but we'd appreciate it if you made the change yourself.

Most open source libraries have far more users than contributors. And that's a good thing. It shows the scalability of software. It means many can benefit from the work of a few.

Since starting to learn machine learning, I've used plenty of open source software but I'd never contributed back. Until now.

We've been working on a text classification problem at Max Kelsen. The model we built was good, really good. But it wasn't perfect. No model is. So we wanted to know what it didn't know.

Our search led to Bayesian methods. I don't have the language to describe them properly but they offer a solution to the problem of figuring out what your model doesn't know.

How?

In our case, we used Monte Carlo dropout to estimate model uncertainty. Monte Carlo dropout removes part of your model every time it makes a prediction. The Monte Carlo part means you end up with 100 (this number can change) different predictions on each sample all made with slightly different versions of your original model. How your 100 predictions vary, indicates how certain or uncertain your model is about a prediction. In the ideal scenario, all 100 would be the same. Where as, 100 different predictions would be considered very uncertain.

Our text classifier was based on the ULMFit architecture using the fast.ai deep learning library. This worked well but the fast.ai library didn't have Monte Carlo dropout built-in. We built it for our problem and it worked well.* Maybe others could find value from it too, so we made a pull request to the fast.ai GitHub repository.

With a few changes from the authors, the code was accepted. Now others can use the code we created.

A contribution to open source doesn't have to be adding new functionality. It could be fixing an error, adding some documentation about something or making existing code run better.

Still stuck?

Best to start with scratching your own itch. You might not have one to begin with, I didn't for 2-years. But now I've done it once, I know what's required for next time.

If you want to learn more, I made a video about the what, why and how of a pull request. And I used the one we made to the fast.ai library as the example.

*After a few more experiments, we've started to question the usefulness of the Monte Carlo dropout method. In short, our thinking is if you simulate different versions of your model enough, eventually you end up with your same model. So the pull request may not be as useful as we originally thought. You have to be skeptical of your own work. Doing so is what makes it better. Stay tuned.

Gradatim Ferociter | Ask a Machine Learning Engineer Anything May 2019

Harsath messaged me a year ago. He was getting into machine learning and data science and had seen some of my videos.

Every time I’d post a new video he’d be one of the first to comment. Something insightful, something kind. I’ve always been grateful to see his name pop up. There’s also Shaik, Hammad, Gregory, Yash, Paul and many more.

This time Harsath told me he got a role in the field. He’d been working hard towards it and was offered a job.

It came after sustained effort over time. Step by step. It reminded me of the saying, gradatim ferociter, it means step ferociously.

Big things rarely happen in one go. It takes many small steps, one at a time. And each step has to be taken with passion and ferocity.

Congratulations Harsath. Keep up the effort and keep learning.

In the May Ask me Anything, I answered your questions around studying online versus at college, how to get a job in the field, having a PhD versus self-taught, using Bayesian methods in machine learning, my intermittent fasting schedule and more.

As always, if you have any more questions, feel free to reach out.


Activity vs. Progress

“Are you making progress or completing activities?” he said, “That’s what I ask myself at the end of each day.”

“I’m writing that down.”

We kept talking. Not much more worth writing down though.

“Let me know what you get up to.”

“Okay, I will.”

“Talk soon.”

“Have a good day mate. Goodbye.”

Too many activities can feel like progress. That’s what he was talking about. You could be working yourself to the bone but the list never gets any smaller.

Maybe it’s time to get a new list.

One which leads to progress instead of a whole bunch of activities being checked off at the end of the day.

I catch myself when I’m writing a list each morning. On the days where there are only two or three things, write, workout, read, I go to add more add more as a habit. But would more activities lead to progress?

If your goal is to progress, you must decide which activities lead to it and which don’t. It’s hard and you’ll never be able to do it for sure but you can make a decision to. A decision to step back a decision to think about what does add to progress and cut what doesn’t.

In my latest video, I share how I got Google Cloud Professional Data Engineer Certified. I passed the exam without meeting any of the prerequisites. How? A few activities which led to progress. But the certification isn’t the real progress. The real progress comes from doing something with the skills the certificate requires. More on that in the future.







Ask a Machine Learning Engineer Anything | March 2019

Yesterday’s post was an April fools. The blog is still going and I have no intentions of stopping anytime soon.

That being said, sometimes it’s hard to think of new things. Thinking takes work. A lot has been done but there’s still far more out there we don’t know than we do know.

Writing is one of the ways to figure things out. Thoughts turn into words. Words turn into stories. Stories turn into explanations. Explanations turn into adventures.

One of the reasons I started learning machine learning was because I wrote about where I wanted to be in 3-5 years. I asked myself what was my ideal scenario. ‘If everything went my way for the next 3-5 years, where would I be?’

It’s a tough question to answer. And the answer changes slightly every now and then. I learn something new and it sways the ideal.

So what is it?

To create and learn at the intersection of health, technology and art.

I’m working towards it.

I love hearing the stories of others. How they did things. How they were faced with a decision and the reason why they did what they did.

What if I could steal some of their ideas and use them for myself?

I’ve spent the last 18-months studying machine learning online which eventually led to a job in the field.

I know there are many more people out there doing the same so every so often I host a live question and answer session on my YouTube channel. Where anyone can join and ask me anything live on the stream.

I don’t have the answer for every question (does anyone?) but for the small amount of things I do know, self-studying machine learning, learning online, maintaining health, I do my best.

And if you ever have a question I didn’t answer on stream, feel free to reach out anytime.

Keep learning.

The value of working on projects which might not work

‘Use a Molecular Biologist with programming experience to advertise for your Bioinformatics Specialization, not just a youtuber!!’

That’s the tail end of one of the comments on one of my recent YouTube videos.

It also mentioned the work I was doing wasn’t biologically or scientifically sound.

He was right. But it didn’t take the comment to make me aware. The video has a disclaimer at the start. The description has one too.

Maybe Reza didn’t see it. That’s okay, sometimes people miss disclaimers and no one ever reads the terms & conditions.

Not all projects you start are going to work.

But that doesn’t mean they’re a waste of time.

In my latest video, I use what I’ve been learning in the Coursera Bioinformatics Specialization plus the help of a genetic algorithm to mutate a DNA sequence until it changes into the right one. When it changes into the right sequence, a YouTube video loads of my best friend’s son hearing him speak for the first time.

The project works, the code runs. However, it’s not scientifically significant nor will it push the field of biology forward.

But I did learn a whole bunch about DNA, different genes, cell replication, computer science, algorithm design, hearing loss and how to research along the way. And now I know where I could improve, plus, I have a story. A story of how I built something.

When people reach out to me asking how they should learn machine learning (or anything else), I often recommend getting a foundation of knowledge and then starting to work on some projects of your own.

The next question is usually, ‘What project should I work on?’

To which my reply is usually, ‘Something which might not work.’

Why?

You’ve seen the reasons above from my personal project. But I’ve put together a few points on the benefits of working on things which might not work.

Getting comfortable with the unknown

Loss aversion is one of the main drivers of all decision making.

Losing something has six times the psychological effect as gaining something. Which means you'd have to win $600 to compensate losing $100.

This is hardwired into us. And it's a good thing. In the past, when we were hunter-gatherers and resources were scarce, losing something could mean the end.

But now, if you're reading this, you likely have more resources available to you than most people in history.

Yeah, you've heard this before. But what's the point?

Loss aversion keeps you in the known.

'I know this works so I'm going to keep doing it.'

Doing this over and over risks stasis. Followed by irrelevance. Followed by excruciating, painful decline.

All the best work comes from projects which might not work. The ones where the outcome isn't clear to begin with but instead is refined and found over time.

The next time you're avoiding the unknown, rather than think about what you're missing out on gaining, what are you afraid of losing?

The fear of loss is a far bigger driver of your decision making.

Get comfortable with the unknown.

Figuring out where you’re wrong

My bioinformatics project doesn't mean anything biologically.

The genetic algorithm I used wasn't as computationally efficient as it could be.

These are two areas I could improve on if I wanted to take it further.

Even if the project you're working on doesn't turn out to be as expected (they hardly do), at a bare minimum you'll figure out where you're wrong.

Now you know what doesn't work, you can use it as direction for what's next.

If everyone else is doing it, avoid

Projects don’t have to be what you see everywhere else.

Imagine you're in a job interview.

The other candidates have all worked on Project X.

The interviewer has heard the same story 6 times.

It's your turn. They ask you.

'What have you been working on?'

You reply.

'I've been working Project Y. It hasn't quite worked out yet but I think I know what I'm going to do next.'

'Oooo, Project Y, tell me more.'

This scenario is made up. But you get the point.

Having a project you've worked on is better than no project.

And having a project you've worked on that's different to what you easily find elsewhere is better than what everyone else has.

What can you do?

If someone has done it before, remix it with your own vibe. Combine one project with another and see what comes out.

The worst case?

You'll have a story about how you tried to mix X with Y. And it didn't work out. So you tried to add Z into the mix and then W was born. I ran out of letters.

Do the thing you've always done and you'll get the same results you've always got.

A chance to share your work

It's the story. The process. The thought process. The why behind each step.

Even if what you're working on doesn't turn out to be great. You'll still have this.

The process is as important as the outcome. The process is what will follow you to the next project.

Being able to describe your process to someone is teaching them to fish rather than giving them a fish.

The benefit of sharing your work, even if it doesn't work?

Someone else might be working on the same thing. They might want to come along and join forces.

‘Hey, I’m working on this too.’

The internet allows this kind of interaction.

Plus, people online are really quick to tell you where you're wrong.

‘Yeah, but where’s the practicality?’

If you're thinking about this, you're on the right path.

It's well and good to not be afraid of working on things which might not work.

But when does it turn into something really useful?

It's an iterative process. Ask, test, reflect, refine, repeat. There's no one answer.

It starts with making. Making something you're proud of. And then sharing it with others.

This post is an excerpt of the newsletter I send out once a month or so. If you’re interested in reading more posts like this, you can sign up for updates.

My formula for YouTube

A few people have asked me recently what are my tips for getting into YouTube.

I wanted to get into YouTube for a long time.

I made videos when I was 12 of homemade fireworks. They got taken down. 

When I was 16 I made videos of me playing RuneScape. They’re still online. 

When I was 19 my friend and I made a workout video. Our channel was going to be called From Your Bros. The video is still somewhere. 

I told my girlfriend. I want to start making YouTube videos. What of? Of what I do. Why? Because it will be fun. I was 22.

Then I started again. I started making videos I would like to watch.  And then I didn’t stop.

 

"How do you stay motivated whilst studying?" — Ask a Machine Learning Engineer Anything

Every month, I host a livestream on my channel where I answer some of the most common questions I get, plus as many of the live questions as I can.

"How can I get a job in machine learning?”

“Where’s the best place to learn machine learning?”

“How do you manage your time?”

“How do you stay fit whilst studying?”

“What do you think of Coursera, EdX, Udacity and Udemy?”

“Should I go to university to study data science?”

Read More