I started coding when I was 12 with a website about Nintendo. At first I previewed, then reviewed Nintendo GameCube games. I quickly became obsessed with building the site over writing the content. After four iterations of the site, I dumped it and replaced it with a hand-coded social network back in 2005, complete with blogging, friending, commenting and privacy controls. At the same time I also built many turn-based browser games. Text-based at first, and with pixel art later.
All these early apps had users, but I shut them down quickly and moved on to the new thing. For example, just before I started at university, I shut both the social network and the most recent game down.
Understandably, this made many people, including close friends, angry. At the time, I didn’t appreciate enough that the social features meant that even though I had ownership over the code and product, they had a sense of ownership too – over the content they created to fill the sites with life.
Past projects always weighed on me, slowed me down, and it felt like they held me back from becoming a better engineer. I felt terrible for shutting the sites down, but saw no other way. At the time, it was just me, doing my best.
It took me years to understand that I owed the users more. I could have found new owners, open sourced everything, and handed the sites over gracefully. I still believe I needed to let go of those projects to grow. What I didn’t understand then was that letting go didn’t mean I also had to tear down.