Transition, Tenacity, and Ten Thousand Dollars
From idea to execution, I tried to set a path for myself, met interesting folks, and learned lessons along the way…
Note: This isn’t the usual technical review or write-up about a side-project. I’m trying something different here. Please do give it a read.
TL;DR: We won the prize money for the ‘Most Innovative Startup’ idea. This is an article where I reflect on the past two years and how it all contributed towards the victory. I talk about the lessons I learned over this period of time and how you can apply it to your situation.
Growing up, I always dreamed of making it big (who hasn’t). I was fortunate to grow up in a time when technology was rapidly changing, positively affecting multiple industries simultaneously. Being in the midst of all this innovation, finding motivation or inspiration to be part of the tech movement wasn’t difficult. I remember my father talking to me about his latest and greatest tech stories from work and my constant bickerings on how I too would get there someday and tell him mine.
A backstory…of sorts
For my 14th birthday, my father gifted me with a MacBook. Of course, there were a couple of months of my planting the wish for a MacBook in his mind. He wondered what is it that one can achieve on a Mac that isn’t possible on a PC.
I dabbled with various technologies along the way, gaining insight and knowledge into the inner workings of other languages, frameworks, paradigms and much more. I soon picked up even more languages like Swift, Objective C, and Python, and started getting my hands dirty with mobile app development projects.
Note: The rest of the article is not a one-size-fits-all guide that helps anyone start something from scratch. It’s more of a personal musing on what I’ve done for the past two years that’s gotten me where I am today.
Lesson 1: Market yourself and create an online identity
Later that same year, with my newly acquired skills and confidence, I created a LinkedIn profile for myself and voila, there it was — the first step of many in my efforts to build an online presence for myself.
The problems with kids these days? They want to be in the spotlight: they want to be the center of attention and the talk of the town. This isn’t necessarily a bad thing. In fact, it was what got me my first ‘official job’.
Innocently pondering and fantasizing about my ‘soon-to-be-glamorous’ and ‘rolling-in-riches’ kind of future, I added in every single achievement I could think of to my profile — I mean everything…all the way to winning that math contest in school to my basic knowledge in HTML, CSS, JS, and Swift— in my effort to impress anyone who ended up dropping by my page. With this in mind, very soon, I got my first connection (Thanks, Dad!) and it picked up with his then-colleagues connecting with me as well.
Three days later, I struck a pot of gold: someone contacted me on LinkedIn asking me to work with him on an exciting new idea.
Note: For confidentiality purposes, I will not be revealing the identity of the man who contacted me.
Being the innocent and truthful child I was (emphasis on was), I thanked him for his time at looking at the profile of a desperate teenager looking for some exposure and recognition from the elders and big boys in the playing field. Honestly speaking, I thought he had a mistake. Why would anyone hire a 15-year-old? They are brash, unbearably ostentatious, throw tantrums when things don’t work out and can’t responsibly commit to deadlines. Who in the right mind would hire a broke, terribly under-experienced teenager who created a LinkedIn page with no hopes of being hired?
Lesson 2: You are never ready for anything
The first message I sent him was the boldest move I had made my entire life. Again, I thanked him for his time in looking through my qualifications (practically non-existent at the time) and asked him about the idea he had in mind. With the idea being plotted down and developed in chats, he started to bring in big adult words like ‘equity’, ‘shares’, ‘stakes’ — all of which I had never heard before. They seemed important. No questions asked. Just nod your head and say yes.
My role required me to rapidly design and develop app prototypes. Long story short, we managed to clinch $10K in seed money from a local university’s venture arm and even went on to score a partnership with Singapore’s leading media company.
Keep in mind that you should never underestimate yourself and shy away from opportunities because you think you are not ready. They rarely come knocking twice so make the most of them.
What I learned while working with him
He was a great mentor and guided me when things looked bleak and confusing. The startup environment was dynamic and demanding. With time, I became more confident in my skills and was better at handling the assignments as they came in.
“20% of effort for 80% of the results.”
He had the philosophy of working smart and not hard. It made sense and motivated me to continue working even during desperate times.
These were the principles I wanted to live with when starting off something on my own. He always mentioned the word ‘Grit’ a lot. To me, it was just a four-letter word. Over time, I understood its true meaning and have based my work style on it.
Lesson 3: Put ideas to action
Inspired by the whole startup craze, I began to look through the funnel myself. At that point in time, I was new to Product Hunt and was totally mesmerised by the side projects that ended up going viral and garnering lots of fame. I wanted to build a tool that helped its users perform a task with ease.
It was then that I realised I was standing over the X spot on the treasure map and yet, I was still foolishly searching. The two years I had spent as a Machine Learning Engineer, it finally dawned on me — What was one thing beginners to Machine Learning had problems with?
Building a ML model without coding experience was close to impossible with the tools present back then. Right now, there are platforms like Amazon SageMaker and Azure ML. However, at the time of ‘enlightenment’, there was no app that quickly takes a custom architecture and quickly translates that to code.
Which was why I built MLBlocks.
MLBlocks and the legacy it left behind
So the problem I had imagined was that beginners wanted to quickly build models without having to spend much time writing long blocks of code using TensorFlow or pure Python. The idea was simple: MLBlocks is a drag-and-drop sandbox for constructing neural network architectures without touching a single line of code (or at least that’s how I marketed it to people around me). Imagine stacking Lego® bricks one on top of the other to build a house. Similarly, MLBlocks was analogous in the sense that anyone can place ‘blocks’ (high-level abstractions of a layer) on top of each other to build an entire neural network, hence the name.
The project was highly incomplete and my father was constantly asking me about its use-cases and applications to real-world situations. I was losing motivation to work on it and was demoralised about the impracticality of the idea.
It was then, that I started junior college in January 2018. Around mid-January, a group of friends and I signed up for a popular hackathon (NUS HacknRoll) in the region. All of us, having been Machine Learning research students at the time, decided to make a handwriting detection tool to help people with disabilities improve their handwriting. The idea came crumbling down at midnight as we weren’t able to find sufficient training data and computational power for the model.
At the stroke of midnight, it dawned on me — I could rewrite the MLBlocks code; this time with more features and improvements to UI as we were eyeing for the ‘Best AI Hack’, ‘Best Freshman Hack’ and ‘Most Beautiful Hack’ awards. I spent the next 12 hours retyping lines and lines of code and eventually built the first useable version of MLBlocks. We spent the remaining few minutes crafting an impressive README.md file that was our informal documentation to MLBlocks.
Long story short, we won in two categories and took monitors, speakers and fitness trackers home.
Lesson 4: Reflect at every juncture of the journey
With time, reflection became a prime avenue to review all the actions I had made and see how to continue from thereon. I made it a habit to reflect once a week on recent happenings. So far, it’s kept me sane and that’s good enough for me. Now back to the story.
After the hackathon, the judges spoke to us again and wanted to take it further. One of them, the then-VP of Engineering from Carousell spoke to us about supercharging the product and commercialising it. We, however, decided to keep the product open-source to which they agreed.
The hackathon reinforced one idea in my head — the idea was good. So why not try to market it and see if it can make money.
Note: This idea, in actuality, is horrible and would not work in the long run. Another sub-lesson of sorts: Do not fall in love with your own product.
It was around that time when I told a close friend of mine about the (apparent) success of MLBlocks at the Hackathon and the attention it garnered. He suggested that I take it further and participate in a startup competition. Soon, we entered Ideasinc — a popular Singapore-based startup pitching competition that’s hosted by the same venture arm that funded my mentor’s startup — as co-founders.
After a few weeks of toiling and changing powerpoint themes for our pitch deck, my then co-founder and I met Sarvasv Kulpati at a Google TensorFlow meetup in Singapore around April 2018. Excitingly, he too shared an enthusiasm for Machine Learning. We became good friends and I eventually brought him into the MLBlocks loop. Since then, he has contributed a lot to the team with interesting ideas and now, is my current co-founder.
We were among 250 other startups that signed up for Ideasinc in the efforts to bag $10K in grant money. We were a young, premature project that was invariably an open-source repository on GitHub. We knew we had absolutely no chance of winning.
This competition comprised of several rounds of presentations and pitches that eventually decided who won the top three awards — ‘Most Tech-driven Startup’, ‘Most Innovative Startup’, and ‘Most Socially Impactful Startup’.
Yet another long story short, we submitted our first pitch-deck (imagine three kids working on a presentation with absolutely no experience, going toe-to-toe with adults who had incorporated startups under their names) and somehow we ended up being shortlisted in the top 40. It was a momentous occasion! We were overjoyed. Though we were excited, it only meant one thing — we had to go pitch in front of people now — our first pitch ever. This was a make-or-break moment.
The first pitch was daunting and scary; three kids talking tech in front of vultures (also known as investors) who were cut-throat, ruthless and unforgiving to mistakes. Let’s just say it was the most ambitious endeavour we’d undertaken in our lives so far.
A few weeks prior to the pitch, we ended up pivoting to an educational tool that helps beginners learn about layers and how they come together to form a neural network. The idea was astoundingly simple. We just had to market it well and we’d be on our way to the next round. We soon found ourselves falling into a deep hole that we had dug ourselves — no one could learn Machine Learning just by dragging blocks into a sandbox for an hour a day, 7 days a week.
Nevertheless, we decided to go with it and built the next ‘iteration’ of MLBlocks.
The pitch did not end well. The last speaker ended up stuttering and we cut into each other’s responses and answers during the Q&A session. We approached the investors and judges after the pitch that day and they called us a ‘broken boy band’ because we showed up in suits and ties. It was a huge mess. Nothing had prepared us for this moment and we were trying to figure out things for ourselves. The wait for the next shortlisted group was painful. Really, really painful. We knew our chances of being part of that list were horribly bleak. We had given up hope.
Fortunately, with a stroke of luck, we ended up passing the round and were shortlisted into the top 10 startups. We were dumbfounded, awestruck, elated (add any other synonym to the list). The one question running through all our heads: How?
Lesson 5: Identity Crisis and founder depression are normal
We were now part of the top 10 startups in the region. What next? At the end of the day, no matter how much we thought otherwise, we were just a GitHub repository with no source of revenue and users, let alone active users. What were we? An educational tool or a SaaS? A platform for developers or hobbyists?
You see, having an identity crisis when making a product isn’t something to be ashamed about. In fact, it drives you to find alternatives to keep your idea afloat. It enables you to come up with bizarre ideas that seem like moonshots but end up working. For us, this period was especially stressful because we found out that the remaining ten were all incorporated; not a public GitHub repo (we were broke high school students then. We did not have money to make it a private repo).
“I knew what I wanted to do, just not how to do it”
The best advice I can give is to not freak out and when in doubt, speak to your target users and see what they want instead of completely imagining a problem that doesn’t exist and wasting your time making a product that addresses something the users don’t bother about.
To minimise the psychological harm these questions were bringing us, we resorted to looking towards the scientific method and one thing that really worked for us was market research. Lots of it.
We created surveys and forms and distributed them around our circles. We cold-emailed dozens of people asking them what problems they faced with the current state of things in the Machine Learning area. The thing about cold emails is that there is a high chance the recipient is going to ignore it. Among those who did, most of them said deploying and serving their models on services like AWS, GCP, and Azure was a pain in the neck.
So we took action…
Lesson 6: Resurrections and Comebacks will show up eventually
It turns out that the people we interviewed and surveyed had problems with the whole process of deploying and integrating their models into their apps and projects. To combat this, we had to do extensive research into the inner workings and horrible documentation of AWS. We dug through dozens of paperwork and code, figuring out how to dynamically allocate GPUs and how to upload code and data onto it for training the models.
Before it slips my mind, I’d like to tell you (if you’ve managed to reach this part) that we were accepted into YCombinator’s Startup School and have access to 1000 free AWS credits that we decided to use on MLBlocks.
I’m not going to get into too much detail about it, but we somehow managed to create the first public beta that we launched just three days before the final pitch (Yes, I know we have a horrible sense of timing). On the bright side, this public beta got about 100 users in just 24 hours which is nice.
At long last, the nine month wait was over. It was the 19th of October. All the work we have been doing since February has led to this moment. I started us on this path when I pushed that first line of code. Go inside. Kill it.
Our hearts were racing. We were rehearsing our pitch again and again in the atrium of the building, leaving no room for error (or the other contestants). We even got company tees for the event and dressed the part by looking fresh and slick. We wanted to be pitch-perfect.
At long last, we were called up to pitch. The prying eyes of the vultures were on us again. All the effort throughout the year for the next five minutes of speaking. We all put our best foot forward and stepped into what seemed like a bottomless fiery pit.
After what seemed like an eternity, it was over. The results would be out by 5:00 PM. It was still 2:00 PM — a long time to wait and feel disappointed in ourselves. We felt that the pitch went ‘meh’. The questions we were asked completely broke our will to continue and persevere. Solemnly sipping our iced coffees and caramel frappes at the nearby Starbucks, we were devoid of all thought, emotion, empathy, and caffeine.
The long wait was even more daunting than the results themselves. We knew we had no chance of winning anything. All our efforts had been wasted and we knew it.
All we could do now was wait. Just wait.
5:00 PM came sooner than expected. The judges were filling the room again. The Guest of Honour and the Director of NTUitive took their seats. The throng of investors and the remaining 9 teams filled the hall and took their seats. There was an eerie atmosphere in the hall. Most of it reeked of regret and disappointment. Some of it, hope and anticipation.
The host strolled onto the stage and thanked all of us for gracing the event. She cut right to the chase. She announced the winners of the ‘Most Tech-driven Startup’ — the one thing we had going for us.
It wasn’t us.
We gave the winning team a round of applause and got ready to clap for the next team going up for the next award — ‘Most Innovative Startup’ — as we knew it wasn’t us.
We slowly began clapping even before the results were announced. ‘Congrats to them, I guess…’, I said.
There’s probably another team with a name starting with an ‘M’, right? I probed the room numerous times desperately searching for a team whose name started with ‘M’.
What? Who? Did they call our name just now? Is that us? Really? How? Hey, did they call our name?
Shock filled the room. We had our hands on our mouths and heads. Any noise would ruin the purity of the moment. The room fell dead silent and the haze of doubt filled the atmosphere, enshrouding the elation that soon took control of our expressions screaming, ‘Dude, what??!! How??!!’ every now and then to each other whilst walking up the aisle to the stage where the Guest of Honour and the Director were standing, even mentioning our ages, how young we were and how impressive they thought the idea was.
MLBlocks…Most Innovative Startup? Well, an interesting turn of events there…
We shook hands with everyone and people were bombarding us from all four directions with their best wishes and tips. We took it all in. They were our big brothers and sisters of the startup industry. We listened to everything they had to offer us.
Here’s a fun little snippet of time: when the three of us left the presentation hall (and when no one was looking), we had a group hug and danced around screaming “Yooooo” at each other.
A group picture was taken marking the end of the event and we soon dispersed; networking and talking to one another, sharing LinkedIn profiles (again, too broke to afford business cards, but not anymore, I guess).
Note: I’d like to further go into detail about what happened after that, but I think I’m rambling at this point. So, I am cutting it here.
Lesson 7: Be humble in what you do
At times, when things don’t work out, there’s always a reason. Why crack your head against a wall about things you have no control over? Go with the flow. If your product isn’t useful, then so be it. If you are strong enough to brave through the process of making a product, you are strong enough to let it go. You must learn that things don’t always go your way. At the end of it all, don’t lose sight of the things that really matter. Stay humble throughout and be gracious in accepting failures instead of forcing your product to work.
“You aren’t anything if not a good person.”
MLBlocks was a modest project I started with the hopes of having something under my name that people found useful. Clearly, that was not the case. It ended with doubt, fear, confusion and was the cause behind multiple identity crises. Now, it has $10K in financial capital. It’s been a difficult yet morally fulfilling journey up till now.
A final word of Thanks
Through the journey, I have learned many lessons. Most of them, cold and unforgiving, some of them warm and humbling. I have met many people through MLBlocks and have made many connections, broadening my network to greater horizons.
The messages of appreciation and support from community members have shown me (and my co-founder) that there is no greater satisfaction than building things for the convenience of others.
Through this article, I hope that I have demystified some of the concerns some of you may have about starting something new. Starting MLBlocks wasn’t easy and the age I did it at didn’t help either. Surely, there was a lot of uncertainty. Sometimes, we weren’t mature when handling trying situations.
“I thought the startup life was harsh on me. Looking back, I try to remember the good stuff.”
Nonetheless, I’d like to thank everyone whos been with us for their unwavering confidence in us and especially, in MLBlocks.
Thank you once for reading!
Original article by Rishabh Anand
Check out my other articles! Do share them if you find them useful!
A Comprehensive Guide to Genetic Algorithms (and how to code them)
On the Origin of Genetic Algorithms
CatGAN: cat face generation using GANs
Detailed review of GANs and how to waste your time with them…
Introducing TensorFlow.js 🎉
Running ML models on the browser became so much more easier!
Making a Replier and Follow Bot for Twitter using Node.js
How to ‘wisely’ spend your time making this awesome thing.