When you are a founding engineer, choosing the tech stack is the most exciting moment, filled with optimism about building the next-generation app with the latest technology. It sounds fancy and cool, and you feel ready to present your work at pep tech talk event.
One day, while browsing the internet and watching tech talks like Google I/O and Facebook F8, you experience "love at first sight" with a new shiny, trendy, and hyped technology. Excitedly, you start using it, but instead of accelerating development and building a better product as promised, you encounter numerous problems. Your team slow down, keep fixing bugs instead of delivering new features. This experience highlights that choosing technology is not a one-time decision but a process of continuous improvement. At different stages of growth, a company may require different technology solutions.
At that time, my colleagues built a product that has now become one of the fastest-growing startups in Indonesia. They took just 1-2 months to launch the first release of the product. With a very tight timeline, they needed to launch at all costs to grab the momentum. At that moment, a startup from Silicon Valley was about to enter the Indonesian market. Therefore, they built the product using the technology they were familiar with and skilled in. When the first release went live, the system crashed. They had to start making improvements from day one. They encountered scalability issues multiple times, which were challenging but happy problems for engineering.
"choosing technology is important, but grabbing momentum is more priceless"
I personally had some use cases. When I talked to the founder, they shared the big idea, but mainly the first idea may not work due to the market not ready, or idea just hard to execute. So, it’s necessary to refine the idea and test it in the market. As a founding engineer it is important to sense how we test in the market, do we need to build mobile apps ? or just deploy a landing page ?.
In one of my cases, I built a single web landing page to display product listings to test the founder's idea after multiple pivots. The workflow involved our customer service engaging with customers through WhatsApp. Customers would choose products from our website, share the list of items they wanted to buy, and then place their orders through WhatsApp with a customer service agent. Meanwhile, our engineering team built a checkout and payment page. A key challenge was transitioning users from placing orders on WhatsApp to using our website. By the next year, our team developed mobile apps as our next big bet.
“Your product may pivot or start over and rewrite your entire codebase until you achieve product-market fit”
As a founding engineer when choosing the tech stack, here are four principles to help you achieve those goals efficiently, saving both time and money.
- Choose SAAS As much as possible then use Open Source.
- Choose technologies that your team is already familiar with. This reduces the learning curve and speeds up development.
- Choose framework that already built in basic features authentication, ORMs, logging and vertical integrations (available 3rd party SDK like monitoring, deployment etc)
- Developer availability: It is easier to hire a Node.js engineer than a Clojure developer.
If I have chance to become a founding engineer again, here are list of techstack that i personally recommended:
Opt A | Opt B | Opt C | |
---|---|---|---|
BE Framework | NodeJS | Spring boot, java | Django, python |
Web Framework | Next.js | Next.js | Django, Python |
Mobile Framework | React Native | Hybrid App (React Native or Flutter) | Hybrid App (React Native or Flutter) |
Database | Firebase Database | Cloud SQL & Firebase Database | Cloud SQL & Firebase Database |
Authentication | Firebase Auth | Firebase Auth | Firebase Auth |
Web Hosting | Vercel | Vercel | Single VM Instance |
Analytics | Firebase | Firebase | Firebase |
Deployment | Gitlab/Github Actions | Gitlab/Github Actions | Jenkins |
Cloud Computing | GCP / AWS | GCP / AWS | GCP / AWS |
After you release the product and gain some traction, your customer base grows. The next challenge is scalability issues when technology becomes a bottleneck for the growth of your organization. In the next chapter, I will share the most “anxiety” moments as a founding engineer.