The Power of Compounding Effort:
The Story of a Hobby That Went Big
Last published on Dec 31, 2020 by Koshy John

This is the story of how what started off as one scrappy solution to a problem I faced while in high school grew into a suite of polished products with millions of downloads, well in excess of 100K fans on Facebook, a 5-digit dollar sum in accumulated revenue and a website hosting them with over a million hits a month - all powered by little more than efforts in spare time, a deep passion for software engineering and entirely voluntary donations from users over the course of nearly 19 years.

And this post goes into detail as to how similar stretch outcomes are possible for anyone (and why it's important to do things like this), by breaking down my journey to where I am and by sharing learnings and insights.

Unlike most of my other posts meant for a general audience, there are specific people I want to speak to with this:

  1. Users (and potential users) of my software - some of you have been with me well over a decade. Many of you have donated non-trivial sums of money. THANK YOU! - what I've built wouldn't find as much meaning without you. Irrespective of how long you've used my software, here's the origin story of what you enjoy today.
  2. Tinkerers of all backgrounds - If this post inspires perseverance through to a fruitful outcome in even one individual working on something long-pole and challenging for a little more than self-satisfaction, that'd be a great outcome. I'm looking at YOU - the high school student pulled forward in experimentation by curiosity, the university student exploring their areas of passion, the corporate employee looking to grow their horizons, the parent building something meaningful with their kids, the leader who misses the value of meaningless exploration and serendipity in the day-to-day, and more.
  3. Job seekers in tech - There are many looking to break into the big tech firms. Of the hundreds of resumes I've reviewed and the people I've interviewed, a not insignificant number of successful candidates have notable projects that they've undertaken off of their own volition. If this speaks to you, and you're looking for inspiration or want my thoughts on how to allocate sparse time to fuel your growth, shoot me an e-mail after reading this through. (Barring constraints on my time, I'm approachable, helpful and not judgemental, no matter where you are in your journey.)

While I cover takeaways at the end, the key takeaway upfront is what's in the title - the power of compounding effort, and how bits of directed effort with small milestones to look forward to, can result in surprising outcomes. There are much better examples of this in the world in the stories of successful teams at startups and bigger firms, but this is the example of something that is hopefully far more accessible and something that an average, but motivated, individual can identify with.

If you're in two minds near the beginning of a road similar to the one I started walking down all those years ago, this is especially for you.

Extended Prologue: How DiskMax started in earnest in 2003-04

I was always drawn to computers having been exposed to them from a young age. The first household computer we had was in 1992 (30 years ago!), and it started innocently enough with playing games like Pipe Dream and Rodent's Revenge on Windows 3.1. Probably counting on my voracious appetite for books, my dad got me this book published in 1995: The Whole PC Family Encyclopedia. My dad encouraged this interest further by buying me U.S. editions of PC World magazine while I was in school. They were read so eagerly cover to cover and preserved carefully.

One of the things that would appears regularly in these PC World magazines were these detailed tips about how to make your computer faster. In the late 90s, I ruined several Windows 95 and 98 installations on the home PC misapplying (or too eagerly applying these tips).

Around the same time, I got interested in 'programming' (using the term loosely) by customizing the startup (floppy) disks that you could create in Windows. For those with context, this was mostly additional drivers (himem.sys), and procedural commands and branching inside Autoexec.bat.

At some point, I decided to compile everything I was doing by hand to optimize PC performance into batch files. My deep interest led me to pick up computer science in high school, and I became the kid writing games in Turbo C++ in the CS lab for his friends to play. Going off track a bit, I fondly remember writing a text based fighting game inspired by Mortal Kombat with animated characters and player health with game 'mechanics' modelled on rock-paper-scissors. There were various difficultly modes as well as... wait for it... cheat codes. :-)

In late 2003/early 2004, what started as a batch script for PC optimization turned into a full blown application (this would later became DiskMax). A handful of my friends got copies sent over MSN Messenger and Yahoo Messenger. I believe I called it Autoclean or something like that back then.

2004-05: Geocities, MSN/Windows Live Spaces and the application that died with them

Timelines are a bit vague in my mind right now but sometime around 2001-02, my first website went online at Yahoo's Geocities. Its address from memory was (yes, I was a James Bond fan. Can you tell? :-)). Sadly it's not archived anywhere but I briefly promoted it as a internet landing page amongst friends, family and my dad's colleagues.

When MSN Spaces (later re-branded to Windows Live Spaces) went live as a blogging platform, I took on blogging in earnest. As a Windows Live Messenger beta tester (yes!), I used to be part of a community of people that would blog about improvements coming in the pipeline with it. Articles started popping up about how people without access to the beta program could access the software - there certainly was a lot of excitement about what was coming.

Sensing an opportunity, I introduced an application called LiveConnect that was hosted at Geocities but linked to from posts on my blog. What it would do was allow people to seamlessly log into Windows Live Messenger without being in the beta program. To sweeten things up, I also added little things like configurable and dynamic transparency to the Windows Live Messenger window.

As an application that solely existed as a companion to another, it came to the end of its line with the completion of the beta program for Windows Live Messenger. All remnants disappeared with the retirement of Windows Live Spaces.

2006: Undergrad and Longhorn: How neoSearch came to be

'Longhorn' was the codename for the extremely ambitious but ill-fated Windows operating system that was to be the successor to Windows XP. Over 3 years past when it was originally expected to come out, it got released as Windows Vista in 2007. As a full blown enthusiast eager to try what I only saw in screenshots in sites like Paul Thurrott's, I acquired DVDs holding development bits of Longhorn/Vista from small-time stalls in malls in the Middle-East. The user interface improvements (Aero) over XP blew me away and the ability to search for files instantly as you typed in each letter was astounding. Search on Windows XP and earlier was a very slow affair with results only being populated slowly after completing the query in the best case.

I had to abandon Longhorn as it was unsuitable as a day-to-day OS (until Vista came out, and I acquired a laptop with it pre-installed). But I was consumed with trying to solve the problem of instantaneous searches independently through experimental code and achieving that experience in Windows XP.

In 2006, I built an initial desktop search application that didn't have an index and with a very basic user interface. Over time, I came up with a way to create an index and speed up searches through it. Knowing that I could feasibly make it better, I bought time by making it the focus of the pre-final year technical project in my undergraduate studies.

It got branded 'neoSearch' (neo=new) and got many weeks of devoted development time with my indexing and search algorithms getting faster and faster incrementally. It eventually hit several thousand files per second during indexing and millisecond level searches (with very low resource usage). The user interface got a lot of love too (Vista-inspired), and I'm still proud of it all these years later.

2007: This website goes live

With DiskMax and neoSearch getting very positive feedback, I felt I could use a more professional web presence to give broad legitimacy to these applications and drive growth. It was an interesting challenge as my parents did not have a credit card (my dad viewed credit cards broadly as a bad thing at the time).

Eventually I convinced my parents to ask a relative to help put a transaction through with GoDaddy for a domain and a year's worth of hosting. Two years after that, I managed to get a credit card on my own to pay for costs associated with my applications (not on credit, just as a digital transaction facilitator).

2008-09: Memory Cleaner lands

In a theme consistent with my personality and all my applications, I went after optimizing memory usage on my PC. Using the same old resources that I learnt from, I did all sorts of things to reduce memory consumption on my PC.

It went so far as to me writing down a list of all services running on Windows Vista and preventing them from starting in sets (or one by one) and experimenting until I reduced idle memory usage on Windows Vista to the sub-300 MB range without losing functionality.

Mark Russinovich's Autoruns also came in handy in stripping down what was starting up and running in the background. (Incidentally, more than a decade later, I'd be having dinner with Mark Russinovich - one of a great many things I couldn't possibly foresee at the time)

I found that I could take this further with memory cleaning applications I found online, but they were uniformly clunky and painful to use. With research, I put together an application that did exactly what I wanted in a small, light-weight footprint.

2009+: Facebook as a catalyst to rapid growth

After my undergraduate degree in Computer Science and Engineering, I landed in New Zealand to do my Masters. My eventual master's thesis was titled 'The Social Cloud for Public eResearch' and involved integrating BOINC (the Berkley Open Infrastructure for Network Computing, that powers volunteer computing projects like SETI@Home) and Facebook through a novel socially aware BOINC account manager.

I went deep into leveraging Facebook beyond what I needed for my Masters, and started using it to help drive growth for my applications.

Just about all the costs associated with this growth (advertising on Facebook, running into thousands of dollars), costs of hosting and associated tooling were covered through donations that rolled in.

Around this time, I completed two internships in New Zealand and went on to lead a team into the 2011 Microsoft Imagine Cup national finals in New Zealand. After completing my Masters, I spent an invigorating year at FNZ, a white-label financial software services company, building out a stock trading platform for a large Australian bank. My past relationships with Microsoft including being a Microsoft Student Partner and having mentors within the company, led to them reaching out to me to interview at recruiting event in Sydney for Redmond, WA, USA based roles. Aside from everything else on my resume and my actual interview performance, I've little doubt these successful side projects contributed to eventually landing the offer.

2010+: Software engineering maturity and 'business' management

I've always had an entrepreneurial streak that I shied away from realising beyond as a part time thing. With the benefit of hindsight, and it's possibly confirmation bias speaking here, I feel it was probably the right choice for me given the career satisfaction, technical learnings and overall professional growth at Microsoft.

Technical improvements: That said, I kept nurturing both my applications and my website as my engineering skills got better. DiskMax got a top to bottom re-write with a completely brand new user experience along the way. This website was overhauled several times with this latest incarnation being powered by a content management system hand-written from scratch, but rudimentary, content management system. Update checks that were rudimentary across applications with basic counters morphed into a full-blown database driven backend for anonymous telemetry. As an aside here, I'm a very privacy conscious person and that extends as a courtesy to my application users with the line drawn at the telemetry and update checks being mandatory.

Organic growth and paid marketing: All along the way there were people, many unknown to me, who used the applications and evangelized them across the internet. Many bloggers picked them up, as did several YouTubers. Professional software review sites weighed in with their own reviews including a major one by Cnet's Gaming forums in particular had my apps recommended over and over to combat performance issues experienced while playing some games.

Self-sustaining financials: Since it remained a hobbyist affair, albeit with a professional polish, I kept prioritizing growth over capturing anything as profit. So long as the cost of running the operation remained about the same or slightly less than the donations coming in, I pushed more money into a self-driving cycle of growth. This is a little harder now as the ROI on Facebook ads is not what it used to be.Amortized operation costs go into 4-digit US dollar amounts a year. Donations go a long way in ensuring this is not an outright charity in the pursuit of growth.

What did all this amount to? And where is it going?

App status: Memory Cleaner is one of the top applications in its category in the world. DiskMax is similarly successful but has some notable peers that eclipses it in usage. neoSearch, while still a source of technical pride for me, does not command the same market demand as the other two.

Website: This website that started with no name recognition and user visits had its growth catapulted. It went from a million visits a year to a million visits a month easy. While I'm generally not one for vanity especially with the sobriety of years of life experiences, some humbling, I always wanted my website to be the top listing on all major search engine for searches of my name and my software - that was achieved many years back.

The money: On the financial front, people often wonder how far donations go. For what are essentially free applications, there are quite a few donations, albeit from a small fraction of the user base. This works out however when application reach is very large. The people who are generous can be really generous. For many years there was a person who'd donate something like $10 every month. The single largest donation I've ever received was an astounding $250. The smalled donation was for 68 cents from Vietnam if I remember right. Individual donations usually range in the $5 to $30 range, with occasional ones sprinkled up to $100, but in rarer cases, beyond that.

Many roads to choose from: While I could turn this into a freemium / premium operation overnight (the mandatory update checks can prevent older versions from functioning if I choose it), I've not yet been motivated to do that as my day-to-day employment keeps me comfortable. In all transparency, I may choose to activate such a plan if something devastating happened to me if the future that drained me financially (knock-on-wood as they say).

The broader horizon: There is a long pipeline of things I envision for my products that are only limited by constraints on my time. I've several other applications that I've kept for my own use, and have no plans to immediately productize, but never say never right?

What did I learn along the way

There are things I learnt doing all this that I would have never quite picked up in a standard tech career path (yes, determined tech startups would have all this and much more, but less so in the pre-mid-career corporate roles). Summarized below in no particular order:

Market research: I learnt about identifying and fulfilling market needs even though some of it happened by accident initially because I started with something for myself before taking it to market. The thing I'm glad I learnt the hard way young was that to maximize success you must always start with the market and the end user base - never build a product and then go searching for your users. This is something technical people are prone to do and still happens even in large, mature tech companies. Never be hawking a solution searching for a problem, or just about as bad, a solution to a problem only the development team imagined existed. If you cannot point to a large group of customers willing to pay good money to solve an acute problem they're facing in the way you envision solving it, the odds are it's at best an intuition-backed gamble. Further I was able to carve a niche in the market with unique and differentiated offerings that cut into drawbacks with competitors.

Product support at scale: I learnt about keeping users happy at scale - there is very limited support that is possible as a single individual with a demanding full time job, and other life responsibilities and priorities.

Marketing:I learnt about how to reduce customer acquisition costs through targeted and effective marketing across channels. The value provided by individuals who evangelize what I've built, on platforms and mediums that I only may become aware of later, is something I'm grateful for and continue to appreciate.

Product & human-centric design: All my products had to be accessible and intuitive to the general public - people who may not have the technical context and wouldn't have any of the product familiarly on day one that the developer would have. Cultivating and practicing a deep sense of empathy for the target user base definitely contributed to adoption and positive word of mouth growth. I also knew that people are very visual and that a clean, attractive product aesthetic was important to user satisfaction. While I'm no professional designer, I've cultivated design abilities through this process that are not common in software engineers.

Technical growth across the stack: I managed an entire tech stack right from user interface design, implementation, application lifecycle, OS expertise, backend stack with a database, a website with a custom CMS, a custom build pipeline including installer generation and code-signing all components, etc.

Search engine optimization: There's nothing unique I've learnt here but it is a necessary skill to have to broaden the customer acquisition funnel.

Managing the user acquisition funnel and user retention: This includes marketing and SEO mentioned before along with reshaping products based on user feedback received.

Measuring what matters: Anonymous telemetry made an appearance relatively early in the product lifecycle and helped greatly inform product direction and an understanding of the market already addressed. There were also insights around when people were leaving, and why.

Controlling application lifecycle and quality: Something I leapt on was not letting my applications run amok in the wild with product fragmentation along versions. To keep supportability under control, only the latest version was setup to reasonably run as expected. This also ensured every user was getting the latest and best experience free of bugs, or worse, any serious technical issues discovered late. As shared earlier, it also helps with bringing the whole user-base along on a roadmap I define and can iterate on with agility.

Compensation/Financial management: An interesting lesson I learnt early too both here and in life generally was that you won't get compensated with what you deserve for your skill or efforts. In most cases, you will only get the lesser of what you choose to command and what the market is willing to bear for what you have on offer. I've chosen to let people decide what to pay back and it's been eye opening in terms of human psychology and human means.

Ideas are not worth the paper they are written on until acted upon: Execution is the much harder part of achieving outcomes.

Epilogue: What more should you take away from this? (ALSO: REACH OUT TO ME)

Depending on where you are on a similar journey, some or all of the following may apply to you:

  • Know that you can do it! If you identify with the growth mindset, and you should, know that you can do more than what I've detailed here and faster with persistence and determination.
  • Start small or big, but do start. As in the famous saying by Lao-Tzu: "A journey of a thousand miles begins with a single step." Take that little step. Plant that seed. Remember that you miss 100% of the shots you don't take.
  • Master the power of compounding effort. Shoot for smaller wins and celebrate them as you progress on to bigger and bigger outcomes. While have clarity on some ambitious end goal is good, if you find that it's holding you back from being motivated into making progress, redirect you focus on to near-term goals.
  • Don't pull the ladder up behind you. When you go from success to success, make sure to give back and raise others up. We are but a part of a thread all woven into the fabric of humanity. The thread itself has little beauty.

I am keen to help those who help themselves - if you are eager and motivated, but just need some perspective from someone with more experience, please reach out to me. I'm serious. Do not be concerned about any judgement on my part. I'm working on helping as many people at scale as possible - to upskill, to see their strengths, grow their experience, contribute to and learn from opportunities in my network that may not be readily visible, and to perhaps land roles at the biggest tech firms in the world. You may be in high-school, uni, early in career, working at a smaller tech firm, in a code-adjacent role in a tech firm - everyone is welcome. I've mentored a lot of people including through being one of mentors in the official Azure Compute mentoring rings so creating deep value for mentees comes easy now.

If you're from an underrepresented group in technology, I'd be especially happy to hear from you.

If however, you've enough in your toolbelt to get moving on that idea in the back of your mind, I'm still keen to learn about it and celebrate your progress. If you've already hit major milestones, do share your story - I'm happy to do guest posts for the truly riveting ones.

One more thing... A final twist you may not have seen coming :-)

I'm looking for mentors much further along on the path I'm on. While I'm blessed with incredibly generous and well-connected mentors (Prin. & Partner+) at Microsoft, I'm constantly on the lookout for people with a stronger+longer track record in widely divergent backgrounds (startups, FANG intrapreneurs, etc) to keep my perspectives broad and avoiding an inadvertent echo chamber effect. If you don't fit the bill yourself, but know someone who does, I'd be enthusiastic to make that connection.

Here's how you can contact me.

Here's where you can connect with me on LinkedIn.

P.S. When contacting me for help, please help me help you by sharing your background (maybe a resume) and anything else you think I'd be able to assist you better with by knowing. More detail the better.

Did you find this page to be useful? If you did, know what'd be cool? Sharing it with others. ( ͡° ͜ʖ ͡°)