Disclaimer: This article is about why I decided to pick up programming and go from a non-technical to technical founder. This is not a suggestion that all non-technical founders should learn to code, but why the move made sense for me.
My first startup (circa 2015)
In 2015, I was given the task and opportunity to build out an idea I had pitched - it was a crowdsourcing platform for odd jobs. I had won a government-sponsored pitch competition with a local accelerator (here and here) and received some investment for it. The investors saw a lot of promise for the idea I was building, and the accelerator I was with helped me to find footing within the Malaysian startup scene.
I faced one major issue - I was a non-technical founder. I knew nothing about how to build what I was pitching. Here were the stumbling blocks as a non-technical founder that eventually pushed me to learn how to code.
1) Imposter Syndrome
They say imposter syndrome is prevalent in the tech industry. As an industry, it’s hard to deny that we’re living in an economic bubble. Enormous valuations seem to prop up now and then, even as tech giants crash and plummet during IPOs.
As a non-technical founder, my imposter syndrome compounded. I was meeting with investors and other startup people, pitching an idea that I didn’t know the first thing about building. I was a 23-year-old, freshly graduated with a Mechanical Engineering degree, and had never coded anything in my life besides messing around with CSS on Tumblr as a teen, and completing MatLab assignments. I had the task of building an app. Where would I even begin?
I felt like a fraud, selling pure imagination and convincing them (and myself) that we can make it into a reality. My co-founder at the time (also non-technical) called it - “selling dreams.” We had thought, if we sold the dream well enough, we could just hire our way into building it into reality. I’m sure that the “selling dreams” approach is valid for most people, and I’ve personally met many individuals who have succeeded with this path. It just wasn’t for me.
2) Not Knowing What You Don’t Know
Talking and connecting to other software engineers, I realized how deeply complex, complicated, and challenging was the thing I was trying to build. I was way over my head.
With their guidance and advice, I started to map out ways on how to tackle this issue. I was mostly trying to figure out the architecture for how the app would run. However, the gap between understanding basic things like “frontend” and “backend”, and actually planning out a product launch is huge.
I was still unable to estimate deadlines and resource allocation accurately. I was unable to innovate properly, as my ideas were not informed by any technical foundation, but from just pure imagination.
It was my father that told me that I couldn’t build my “core engine” without owning my own “core expertise”. I agreed, building an app was the core expertise I needed to run this startup. At the very least, I needed a team that could cover the skill gaps we needed to execute. They had to be part of the team, as their incentives should align with our startup objectives.
3) I Couldn’t Find A Technical Co-founder
The next step that I took was to find myself a technical co-founder. Every Jobs needs a Wozniak. After 2 months of searching, interviewing, and courting a few engineers, I found the task to be more difficult than expected. The truth was, I wasn’t Steve Jobs.
Firstly, a co-founder should be someone that you’ve built a connection with and trust. Unfortunately for me, the tech and startup industry was very distant from my social circle. I didn’t know many software engineers, and those that I did know were acquaintances at best. I didn’t have a Wozniak that I could trust and hole up in a garage with.
Secondly, due to my inexperience and naivety, I was not a very attractive candidate as someone else’s co-founder. Co-founders are business partners, when you go into a startup, it’s like entering into a relationship. At the time, I didn’t have the entrepreneurial or startup credentials or experience yet. Besides connections to an accelerator and some investors, I had nothing else to offer besides being an “idea man.” I soon learned that the term “idea man” was derogatory within startup circles. Ideas are worthless without proper execution.
4) I Couldn’t Afford Real Software Engineers
Throughout the whole process of talking to several engineers, many declined equity and instead offered to build my app for a certain fee. This was my introduction to the high price of building software.
The investment that I had received would only get me to a version 1 of an MVP - this was a very risky transaction and went against the advice I was receiving about building startups. The advice being, you should position your startup to be able to develop and reiterate your product as many times as possible based on user feedback. It meant that I needed the flexibility to build ten different MVP iterations, not one.
I spoke to other founders in the scene who have burned through investor money by hiring contractors. I also spoke to founders that have built MVPs with cheap “nightmare contractors.” There didn’t seem like a middle ground, cheaper contractors have a high risk of failure, and competent engineers know their worth (and are already rewarded by the market, so they don’t need you).
The tactic for most playing the contractor game with a tight budget was to gamble your chances. If I wanted to be building startups in the long term, I had to avoid the contractor game altogether.
Deciding to learn how to code
The culmination of the above four reasons led me to the decision to learn how to code. I was, however, never opposed to learning how to code - eventually, I grew attracted to the idea. I wanted to build a product from a solid technical foundation. Sometime in Q1 of 2016, I took the leap and registered for FreeCodeCamp.org.
During my education, STEM felt like a natural choice, which led me to study Mechanical Engineering. I knew that I liked logical subjects within STEM, but somehow MEng just didn’t click with me. Not the way programming did. In hindsight, software engineering would have been the better fit for me. One of my regrets was that I had never even considered majoring in computer science at university.
To surmise why I fell in love with programming, it’s because the experimentation to feedback loop was instantaneous - providing me with instant gratification. It was so easy to try out new ideas, see the results instantly, and reiterate. It scratched this itch of creative exploration for me, comparable to the satisfaction I get when I write and produce songs. This “instant gratification” loop kept me engaged and curious - it allowed me to push through many of the stumbling blocks that were needed to master a new skill.
What coding has done for me
Almost five years later, learning to code has opened up for even more opportunities than I had anticipated. I was able to build my initial startup idea as originally intended. After my first startup failed (in Q3 2016), I started doing software consulting on the side. Over the next three years, I was also able to work with many exciting projects along the way.
In 2018, I quit my day job to go full time with consulting. I started a software consulting agency (https://awan.ventures), securing contract work from big corporates such as HSBC and Prudential. I got connected to many interesting individuals and helped to push their goals further.
In 2019, I tried to launch another startup, this time in the food delivery space. The margins were too low to sustain the business, and we had to shut the service down after only a few months of operations.
Now in 2020, I’m building MeetButter (https://meetbutter.io), this time as a technical co-founder armed with some experience and expertise.
The reason I love startups is that I loved building out ideas and concepts. To me, programming was an art of problem-solving that required critical thinking skills and creativity. Software became a method of expression, a canvas for me to scratch that “wouldn’t it be cool if” itch. It empowers me as a maker and a builder to be independent. If you’re a non-technical founder and you resonate with my story, perhaps it doesn’t hurt to give yourself a few weeks to learn how to code. It may just change your life.