Lately I have found I have to fight against my own self, at different levels.
Life design
Like so many people out there, I just want to be happy.
Trying to build a portfolio of products for myself is one way for me to reach that goal:
I get to work on my own ideas, from start to finish.
I get to create again by imagining new products, coding them, writing about them… Creating has actually been missing from my life for a while and it's a real driver for me.
Ultimately, I'm working towards financial autonomy and thus a lifestyle that I can fully control.
It's actually quite nice, and I feel privileged having the opportunity to try this out.
Yet, as I was saying, I'm having to fight against myself to get the ball rolling.
As
told me the other day, I’ve done “some really cool shit in [my] career” 😅But it also came with a price, and my professional life has kinda made me afraid of success as a result, and shaped me into looking for external validation more than my own satisfaction for a job well done.
Now that I truly want to build something for myself, I'm facing a few blockers.
Things like analysis paralysis and procrastination of course but also, in some rare cases… anxiety attacks.
Those would typically happen when thinking about proving myself or about potentiality of success.
I won't expand more on that today but it's definitely one way I have to fight against myself.
Starting my build in public journey and committing to this newsletter is my way of doing this. So, thanks for reading! 🙂
Lost in exploration
And here's another fight!
At heart, I'm a software engineer. One who hasn't coded for quite a long time, too.
So when I decided it was time to “really” start working on a Speakerine, here's what I did:
Spent hours reading about the latest JS frameworks and serverless platforms
Researched affordable hosting solutions and free managed database tiers
Decided I'd go back to using Rails again
Installed Rails on my computer & created a new project
Installed RubyMine and opened that new project
And then I was like: “now what?!” 😅
Said differently, I spent hours looking for solutions to problems I did not have, to finally decide on a tech stack and initiate a codebase without really knowing what I wanted to do.
Duh.
Realizing my mistake, I went back to square 1 and thought about the “really cool shit” my career had taught me.
MVP design
What do I want to prove?
My first step in thinking about the MVP for a new product, is to define what I want to prove.
In the case of Speakerine, that would be:
That, given its URL, I can extract the content of an article
Textual content and ideally metadata such as cover picture, author, published date, …
That I can turn this textual content into audio, with high enough quality that it's pleasant to listen to
While keeping costs as low as possible
That I can build an app that does all that
That people are interested in using this app
and actually paying for it!
This, I believe, is the minimum I should build to validate anything.
I've got other feature ideas of course, but I don't think they're as essential as what's listed above.
How do I prove it?
As I said in the previous issue, I don't have all the answers.
In terms of distribution and monetisation, it's still quite a big unknown to me.
For the rest, this MVP calls for an app of course, with enough components & interactions to provide the described minimal experience.
I've got two things to design: UI/UX design, and technical design.
I'm a firm believer that to build a good product, the UX must dictate how the product is built and not the other way around.1
So I drew a few things on my iPad and used Penpot—a serious Open Source Figma alternative—to make it shareable here:
The idea is quite simple:
Log into the app
Paste the URL of the article you want to listen to
Wait as the service does its job
Hit “Play” to listen to it
This very simple design gives me entry points into the main components of my app’s system:
A “service” to receive a URL and:
extract metadata from it, shown as the article list item in the UI
start generating the audio for the article
An “observable” task system to track the ongoing process
shown as the progress indicator close to the article item
allowing the app to be notified of the process completion
Somewhere to store the audio data so that it can be played in the app
A client-side audio player
Those building blocks should be enough to get me going and (in)validate many of the points I want to prove.
I think now, I can start RubyMine again and get to coding some of this stuff!
This is actually quite similar to Test Driven Development or even “Readme Driven Development” as formulated by Tom Preston-Werner.
I also tend to solve problems I don't have, I have heard it called productive procrastination as well. It's a real struggle.
It's comforting to see someone I see as ahead of me in the game, having the same issues
I believe with Speakerine you will do more "cool shit" for me to be in awe of 😁