When I started working on Stencil, one of the main challenges wasn't technical. I've been a software engineer for about 8 years now and experience has taught me that most technical problems can be fixed with enough time.
The real problem was finding the time to work.
Most interviews on Indie Hackers suggest that founders are either single or are working on their projects full time. It's hard to relate when I am maintaining a full time job, trying to get Stencil off the ground and also raising a 2 year old. Oh, lest we forget, the freaking pandemic... no biggie.
Despite that, I somehow managed to launch Stencil after 7 months. Here's how I managed to do it while keeping mine and my family's sanity.
Figure out your constraints
When I think about it, it's essentially just an optimization problem.
Given X hours, how much can I spend on Y to get an optimal Z result
Here are the constraints,
- Family time
- Full-time job
On any given day I could only realistically pick 3. Work is naturally a fixed variable, so we're down to just 2.
Move fast and don't break things?
What they don't tell you about "moving fast and breaking things" is that you need to fix these broken things fast too.
I found that time spent on fixes could've been time better spent on building and improving features.
Objectively assessing and testing your product is really crucial. If it's a software project, don't skimp out on automated testing.
Feature-flagging is also a great way to test in production and slowly rolling new features without affecting users.
Last week, a customer emailed me about a bug with our Airtable integration - images were not being generated for some rows. High traffic was causing the queue to be jammed. (Yay? Yay!)
I've been anticipating this problem and luckily I had a new feature in the pipeline that was feature-flagged. It's not always gonna work out this easily but it helps to plan for the worst.
Just like learning to do mental arithmetic, you can also learn how to think asynchronously.
Take a small task, split it into few logical units then think about it when you're out running or watching the kids. The problem should be small enough that you can think about it throughout the day.
Whenever I have a feature that I want to implement, I'll think about it asynchronously. When I finally have the time, I work on implementing it.
Thinking asynchronously can only get you so far, but writing your thoughts down is where the real value lies.
Never trust yourself to "remember it later".
I also leave myself notes when I stop working for the day. I write down about my progress and what I think the next steps are going to be so I can jump back into the swing of things whenever I'm working on it again.
Like any other optimization problem, you need to set the minimum amount of time to spend with your family, your project, and getting enough sleep.
I spend about 7-8 hours on my remote job. 5-9PM is family time. I don't do anything but be present with my family and live in the moment.
The rest of the time is spent working on Stencil. I can usually get around 1-2 hours of work each night, slightly more on the weekends. It may not sound like much but with enough planning this time is mostly spent on execution.
Discipline not motivation
When you have the time to work on your project, do it even when you don't feel like it. It's amazing how compounding effort interest works.
Hold yourself accountable but don't punish yourself. You're here to build a long term project and not burn yourself out.
Know when to reach out for help
When you're stuck on a problem, learn when it's time to reach out for help. This will save you a lot of time and heartache.
To deploy Stencil, I reached out to a friend who is experienced and had him guide me on how to properly set things up. This gave me a kickstart and just enough of a push in the right direction.
Don't forget to prioritize other things in your life. It might have taken me 2-3 months longer than I initially anticipated but come launch day, I was just as driven and motivated as I was when I wrote the first line of code.
For me personally, it was all about optimizing time to work on Stencil. YMMV.
This is second part of bootstrapping journal, you can read the previous issue here.