How I Kickstarted my Software Engineering Career by Building an Over-Engineered Product and a Total Failure of a Business
10+ years ago, when I left college after studying Computer Science and Business at Northeastern University in Boston, MA, I tried building my first startup. I named it ClubbingOwl (initially named VibeCompass) and it was a massively overengineered, technically fairly impressive but overall terrible business passion project. Instead of taking a normal software engineering job, I spent 2+ years working on this. I became obsessed and routinely worked 100-hour weeks, frequently working in 24-hour nonstop stints. I don’t think I ever had more than $100 in my bank account.
Recorded live demo of ClubbingOwl from 2012
My obsession was so great that I would work on my laptop until I couldn’t stay awake, then I’d fall asleep in my bed with my laptop, and then the moment I regained consciousness I would reopen my laptop and resume working. I was always excited to implement all my ideas and that excitement gave me all the energy I ever needed to keep going.
As a business, ClubbingOwl was almost a comical failure. My 20-22 year old self completely ignored the time honored advice of ship a minimum viable product and get something into the hands of users to get feedback and iterate as quickly as possible. I spent two years implementing every feature and premature optimization I could dream up. The whole time I was thinking “if I make this as awesome as possible everyone will use it because it’s awesome.” Well it turns out there was a big problem with that naive approach.
I also didn’t adequately research my target market. All the nightclubs in the world that were potential clients don’t actually constitute a very big market. When I approached all the nightclubs in North America with my product after 2 years of work, they all thought it was great but each of them wanted it to work slightly differently so much so that it was almost impossible to offer ClubbingOwl as a multi-tenant SAAS application.
It definitely wasn’t the healthiest time period in my life. I neglected diet, sleep, physical fitness and probably to a large degree my mental health. I lived in my parents’ basement and didn’t have much of a social life. Ultimately the business never really got off the ground. I was young and naive and I made some very rookie mistakes. The biggest mistake being “geeking-out” to an extreme degree and fixating on all the features/improvements/optimizations I could build because they were “awesome” and I was tunnel-vision obsessed with the code.
The project did however catapult my software engineering career forward. It gave me the experience of working on all technical components of a SAAS product. It gave me invaluable experience in developing my self directed learning ability. Ultimately it gave me a lot of confidence in my ability to build.
What exactly was it?
ClubbingOwl was a SAAS product with web and iOS (iphone/ipad)/Android clients. It was a platform for nightclub patrons, promoters and staff. It was largely built using the Facebook API. Users would authenticate with their Facebook accounts and add their friends to guest lists.
It had two sides, a patron/client-facing side where nightclub patrons could find a promoter to get them on a nightclub’s “guest list” and also see which promoters their Facebook friends were using as well as a back-end side for nightclub promoters, managers and staff to coordinate, chat, organize guest lists, table arrangements, email marketing, etc.
ClubbingOwl Database Schema
As a web application, it was quite complex. It was my first large-scale project implemented from scratch. I was the only engineer so I had to build every aspect of it myself. I gained experience designing database schemas, queue systems and distributed background job processing, distributed caching, infrastructure, servers, IAAS/PAAS, CI, deployments, etc. While the project turned out to be a total failure as a business, it gave me an opportunity to rapidly enhance my skills.
10 years later, when I look at the code I wrote I can’t help but laugh. My coding practices were a mess. I over-commented my code quite a bit. My commit messages were terrible. I’ve definitely come a long, long way. I assume, that if all goes well, everything I work on today will look terrible in another 10 years when I look back again.