Selected Hobby Projects

Grapho (2020)

A messenger app that transcribes voice messages and speaks out loud text messages offering an option for both, sender and receiver, to choose the best format.

Why: I had a friend who liked sending voice messages but I prefer to text (in most cases). We realized that there wasn’t an app offering an option to choose the best format to consume messages no matter what the sender used.

Tools: React Native (iOS/Android app using JavaScript), Firebase (database), Python (backend), Swift (iMessenger plugin)

Reason to quit: The improvement wasn’t big enough to get users to ask their contacts to move to a new communication app. The network effect was too strong in other messaging apps. I made an iMessage plugin but it did not take off either. For a non-native speaker, transcriptions weren’t always perfect which made it really annoying to use even if it missed a few words per message.

What I learned: I underestimated the difficulty of creating something novel in established markets. It is extremely hard to create 10x better products when thousands of people have tried the same for years and there are one or more big players. A completely new device might open an opportunity to do something new to an established market. (2019)

Machine learning as a service for businesses. The catchline was “Start using machine learning in your product with two lines of code.”

Why: I did and thought of many projects where I could have used a very similar machine learning model by changing a few parameters. My hypothesis was that creating an API to use machine learning, would make it more accessible. One of the main use cases I thought of was to make it easy to let machine learning make design decisions like what copy or color to use for a certain button from many different options to maximize some function.

Tools: PyTorch (ML models), Python (backend), ReactJS (frontend)

Reason to quit: An average software engineer wasn't available to understand where ML can be used and data scientists didn't see the model creation as a big part of their job. People who understand the basics but are looking to prototype quickly could have seen this as a useful tool but they often needed more custom models.

What I learned: Importance of doing customer interviews before building anything. Offering free services is an easy way to get customers but the approach backfires as the customers become passive when they aren’t invested. In hindsight, it would have been a better approach to do something for a specific use case like a recommendation engine for grocery stores.

Trimmed News (2018)

A news aggregator app for reading summarized news.

Why: Most news apps are full of clickbait articles getting people to open them but not delivering the promised value. My hypothesis was that NLP was far enough to create good summaries and offering good summaries could save time for readers.

Tools: React Native (iOS/Android app using JavaScript), Firebase (database), Python (backend), PyTorch (the machine learning model I used was written using this library)

Reason to quit: The useful feature was summarization but I implemented it into my own news app that wasn't otherwise at the level of the alternatives like Google News. I found even myself using Google News without summaries as news were more relevant.

What I learned: Instead of creating the whole app, I should have started by creating a newsletter for niche markets and even do the summarization manually. Finding the easiest way to test a hypothesis is critical.

Retro Racing Online (2017)

A top-down mobile racing game where users could play against each other.

Why: I enjoyed playing mobile racing games so I had some knowledge about them. I believed this concept could be developed much further if I wanted. I also knew that I could easily create good IAPs to try to make money.

Tools: Unity (game engine), C# (language used in Unity), PHP (backend), MySQL (database)

Reason to quit: The small absolute number of downloads discouraged me to invest more time in fixing bugs and developing further. This wasn't a good reason to quit and later I regretted not continuing to see its full potential.

What I learned: Growth is more important than absolute numbers and the number of downloads isn’t a good metric. This is the first app where I got feedback by sending cold messages to people on Slack. I learned the importance of app store optimization (and in general visibility) and how to do it effectively.

Free Roll Poker (2014)

Texas Holdem poker where thousands of players could play in free tournaments and win real money. The money came from the ads displayed during the tournament.

Why: There weren’t many (if any) apps that distributed profits back to the players so I believed that this concept could be interesting. Being interested in poker, I decided it fitted well to this idea as freeroll tournaments were popular on poker sites. Some of my calculations showed that if there were enough participants and the tournament was long enough, it could be possible to offer a million-dollar price pool.

Tools: Unity (game engine), C# (language used in Unity), PHP (backend), MySQL (database)

Reason to quit: Google Play Store's bots rejected this claiming it violated their rules. I did not agree with the conclusion but I could not get to talk with a human. The game had some bugs I was not available to find because the code was written into a few files making it messy.

What I learned: This was my first bigger project and I learned the importance of clean code.