When I was building Graphite, I was fortunate enough to be able to go to quite a few developer-focused events and speak. Invariably, at some point in the talk, I would describe my path to becoming a developer. The non-traditional developer path is one that tends to inspire and motivate, but every time I told it, I felt like that guy at the bar who would tell the same old story no matter how many times people had heard it. It's taken me a long time to get over that feeling and a long time to recognize that this "bar" is made up of millions of people who have never heard my story. Some will not want to hear it, some won't care. But some will find something in it that helps them.
So, for the first time, I am laying out my path to becoming a developer in my own words in written form.
In 2015, I enrolled in a Master's program. It wasn't for computer science. It wasn't for information technology. It was a Masters in Fine Arts in Creative Writing. I'd been writing my whole life. In fact, one of my first companies was a sports media company where I literally wrote thousands of blog posts to help that company gain traction. But blog posts are very different from fiction. I've been an avid reader, and I had even dabbled in writing screenplays (landing myself an agent and everything...I think*). But I had never written prose. No short stories. No novels—at least none since I was 10 or 11.
*This is a story for another day
I had waited until more than a decade after I had finished high school, and more five years after my very extended time getting a bachelor's degree to commit to an education I was actually excited about. I used my bachelor's degree as my practical degree, the thing that allowed me to get a job and get my finances under control. And once they were under control, I spent a ridiculous amount of money on an MFA, knowing full well that the degree would never pay for itself in terms of salary and job opportunities. But it was something I really loved and wanted to do.
As I went through that program, I started building up a portfolio of short stories. I started having my work published in literary journals. I began what would become my thesis—my first real novel. All of it was saved in Google Docs. I was a very early adopter of cloud storage and cloud tools, and there was no way I was going to do my writing on a piece of software that was locked to the device I was using (Microsoft Word). Yet, as I progressed through the program, I noticed issues with Google.
They would violate privacy, they would lock people out, they would sell user data. These things would only become more prevalent as time went on, and I became increasingly uncomfortable with the idea that my most important writing was under the control of a conglomerate that could lock me out at any time or spy on what I was doing. So, I looked for an alternative. Something that would let me own my own content and protect it while still experiencing the benefits of cloud storage and access from any device.
I couldn't find a good alternative.
Rather than give up, I decided to build an alternative for myself. I'd been into technology since I was in elementary school. I'd first taken a computers class and learned HTML in 7th grade. But I had never been able to get over the hump of learning to code no matter how many times I tried. And I tried a bunch. Some businesses I wanted to launch never got off the ground because I couldn't build them. This time, though, it felt different. I had an end goal. A specific application that would solve a specific problem. I had no intention of turning it into a business. I just wanted to write.
In 2016, I started learning. As the Google privacy and ethical violations mounted, I doubled down on my learning. I didn't enroll in another university program. Instead, Treehouse, Udemy, and YouTube were my campuses. What had always felt so abstract when I tried learning programming before was more concrete. I could see how I could apply the abstract concepts to specific problems. I learned and I built.
With a year of development experience (on small side projects) under my built, I was able to build the app I had wanted to build. I finished the first iteration of Graphite just as I was finishing my MFA.
The above screenshot is what the first interface looked like. Simple, ugly, but functional. You'll also note I made the mistake many developers make early on—scope creep. My little document editing app became a full office suite. That was ultimately a huge mistake, but again, that's a story for another day.
As I was learning and building, I joined developer communities. I helped answer questions where I could, and I got my questions answered many times. I made friends and learned a ton. And eventually, people found out about Graphite. They encouraged me to release it into the wild. Technically, Graphite launched in December of 2017, but I'd been using it for months before that.
Launching Graphite and participating in developer communities helped me get the attention of a lot of people. I was asked to present Graphite at a developer-focused, blockchain-centric conference in Berlin. Somehow, I had gone from non-developer to open source developer speaking at conferences across the globe.
Graphite would go on to be featured on Product Hunt and to trend on the front page of Hacker News for two days. I built it up to thousands of users and was able to speak at many more events. But at the end of the day, the thing that mattered most to me is that I had finally learned to code. That transition set off a series of events that would allow me to make the full jump into programming. First, at my day job. Then full-time on my own projects at Graphite, SimpleID, and now my consultancy.
I hope that people who are interested in learning to code read this and feel encouraged. I hope people recognize that it doesn't matter how old you are. It may take many attempts to learn, but that's OK. It took me over 20 years to finally get over the hump, but I did it. And you can too.
If you ever have questions and think I might be able to help, don't hesitate to reach out.