Three weeks of startup

and spring is here


3 min read

My decision to quit my full-time job to work on a startup was not easy. Living in one of the most expensive places in the world with two school going kids without a regular stream of income is quite scary. And after working in a stable job for years, the inertia builds up and it requires a large force to overcome that inertia and quit the job.

Even after I made the decision to quit, I was quite hesitant if I know the right people with connections and if I will be able to raise the money to grow the company or not. But all I know is I can build an application that's functional, beautiful and easy to use. I thought if I have a well made product, business side of the things can be figured out.

Some people asked me if I am looking to raise money for the startup. Personally the answer for me without a product is a resounding No. The largest expense for technology companies is people. Finding good people to work for you is hard and they need to be well compensated. While companies need people to grow fast, contrary to our general understanding adding more people would only slow things down. Also taking investor money is a huge responsibility and diverts attention from product development to other activities. Being a hands on developer, it was an easy decision for me to keep it small so I can run fast until there is an MVP with validated user feedback.

How is it in the last three weeks?

While my work hours are crazy, working on something I am passionate about for myself is amazing. I divided my working hours per day into three shifts with breaks and power naps, so I can switch context between Spring Boot, React, CI pipeline, GCP, adding tests and business side of things (sometimes I still mess up writing () => { } for () -> {} :-)).

The product is shaping up well, I am hoping to get the pipeline setup and launch the first feature with tenancy in the next month to get some feedback. Having the CI pipeline setup helps iterate quickly and not spend time on repetitive tasks rolling out changes every day.

I now have more clarity about one of my hesitancies around investor connections. It's definitely encouraging to be pinged by some investors who actively reached out to understand what I am working on. The intro calls with investors are helpful with questions they pose around the product and tips on where I should focus more on.

On technology side of things:

  • React 18 is out with cool new features around concurrency. I will uptake the new version today or tomorrow. I have previously developed React applications before it had ContextAPI or hooks. Developing React apps is so much simple and enjoyable now.

  • Loving Bulma for the UI. It's simple and the UI is fresh looking.

  • I ran into a scenario where I needed a distributed lock between multiple instances. I ran into this scenario multiple times before and the solutions ranged from adding a custom pessimistic lock on a DB table row, to Akka's cluster singleton, to leveraging GCP's cloud scheduler to invoke an end point and kick off the tasks to avoid concurrency. But by leveraging Shedlock, the distributed lock is implemented in just a matter of few minutes.

  • Built some components around GCP's PubSub and Cloud Functions. Local development is little harder than I imagined, there is a PubSub emulator for local development but it's not possible to get the end to end functionality working as in real GCP environment. So clear contracts with unit tests need to be defined between my backend and Cloud Functions, so they can be tested as two discrete systems.