73: Just ship it 🚢
The Wednesday before last, after ~12 hours of desperately trying to resolve a problem in my code, I decided to give up.
On Monday, I had stumbled across the "Oasis Bloom Hackathon" and thought it looked cool.
The hackathon had been running for almost month, but the final deadline was Thursday - 3 days away - so I thought to myself "challenge accepted".
I looked through the hackathon description and decided: I'm going to build the world's first "sleep to earn" app.
There's a trend right now in the blockchain / web3 space of "play to earn" gaming. The idea is that items or money you earn within games have real monetary value (because they're stored as 'tokens' on a blockchain) - and this can be used to make new and interesting game dynamics.
When I was in school, I poured my heart and sole into the online game Runescape (think World of Warcraft with terrible graphics). I probably spent more than 1,000 hours over the course of a year or two. But when I eventually decided to quit, there was nothing 'legit' I could do with the account. In the end, a friend helped me sell it via ebay (which was against the terms of service) for around £50.
The idea with play to earn gaming is that this will never happen again. My hours of hard work would at least have earnt me a bit of 'real' money, by selling items that I'd collected.
The 'sleep to earn' idea I had was:
you define how much you want to sleep
you put some money on the line
if you meet your sleep target, you get your money back with interest
The game mechanisms are simple, but I felt it would be an interesting real-world experiment. Would the stress of a 'challenge' stop you sleeping? Or would having money on-the-line help you stick to your desired bedtime?
So I started coding it. But... it was pretty hard. There were lots of moving parts: the smart contracts (to control the financial staking), the backend app (to get sleep data from Oura ring) and the front end (to provide the user interface). And I'm still pretty new to this.
I pushed on, though, and was making slow-and-steady progress, but then I ran into a problem on Tuesday I couldn't get over. Try as I might, I just couldn't get my front-end app to communicate in the right way with my blockchain smart contract. And it was damn hard to figure out where the problem was.
I toiled away on this for much of Tuesday and well into Wednesday. I'd fix one error, only to get another. I messaged friends for help and still couldn't get to the bottom of it.
I was getting fed up. And I knew that, even once I'd solved the bug, there was still a lot more of the app to build.
And so, I decided to give up.
...
But then I remembered something.
A month ago, I attended the Buildspace hackathon in Amsterdam.
Farza Majeed, the CEO of Buildspace, gave a kick-off talk. If I were to summarise it in three words, it would be: Just ship it.
It you commit to shipping something, it cuts through your usual mental blocks and perfectionist tendencies ("I don't know how to do that yet", "first I'll learn this, then do that").
It also helps you hone in on what the core elements are. Yes - it's possible that the fully-fledged version of whatever you have in your mind would take months. But is there a simpler version that could take days or weeks?
Remembering this talk gave me a second wind. I resolved in my mind that I would ship this project before the deadline no matter what.
I got down to work. I stripped away any unnecessary complexity that had snuck into the project, and raced towards building the simplest, working version of the app.
I realised that I didn't even need to solve the bug that had been stressing me out so much. I could just re-write my smart contract in a simpler way, and get a similar end result.
I stayed up late, woke up early - and didn't stop hustling until I submitted at 9.55pm - 5 minutes before the deadline.
And... there it was. I had shipped my first solo decentralised app. It was pretty djanky, it had a, let's say, 'minimalistic' interface, but... it worked.
It felt unbelievable to have pulled everything together in time. I'm not exaggerating when I say that this was my proudest moment so far of 2022.
(you can check it out here if curious - and give some DevPost love!)
Now, will it win the hackathon? Probably not. But that wasn't my true objective.
I learnt a ridiculous amount in a short space of term, with a long list of firsts (first deployment on Oasis blockchain, first time deploying on vercel, first time staking money in a contract, etc etc.)
So what's the takeaway? For me it's this: whatever you're working on, you should ship it.
Whether it's a new project, a job application, a blog post, a reach-out - just set a date when you'll ship it (preferably soon) and commit to seeing it through.
Making the commitment helps you cut through the fear, the desire for perfection, the excuses, the 'grand plans' - and just get it done.
Plus, it builds momentum. Since this submission (two weeks ago today), I shipped another app (which won >$22k), an email course on "how to read an academic paper” plus this email (if that counts?).
Is there something you can ship?
About Me
👋 Hi, I'm Chris Lovejoy.
I'm a medical doctor 🩺 -> machine learning engineer 👨💻 -> start-up founder 💡
I'm on a mission to improve how we manage our health - and share my learnings and experiences here, on my personal website and on YouTube.
I also throw in my favourite things from the internet, and the occasional joke (humour is work-in-progress).