My face drawn in chalk.

After about 3.5 years of writing and researching about Ruby performance on AppFolio’s company blog, I’m going out on my own, to work for myself.

My hope is that having moved to the Scottish Highlands, I can make a living selling my books Rebuilding Rails and Mastering Software Technique. I’ll likely also need to teach some workshops and/or do consulting on the side. I have around two years of living expenses saved up. We’ll see how this goes. If I’m rubbish at it then perhaps I’ll look for a ‘normal’ job some time in 2021.

You know what helps people in my situation? People who are willing to share their numbers and tell their story. For the first time in my life, I’m beholden to myself, my wife and kids and nobody else. So let’s talk story and numbers, shall we?

Who’s This Guy? (Financial Version)

I started programming at age 8 in 1984 on an Apple IIe. I kept at it through many years. I mostly did OS and systems programming in C, including for Palm and NVidia. Around 2007 I realised that web programming wasn’t horrible in Rails. So I sighed deeply and spent two years teaching myself HTML, JavaScript, SQL and Ruby. I got my first Ruby job in 2009. Two Ruby books and many conference talks and a three-year stint on the core language later, it’s still pretty okay.

At this point I have around US$700k in a 401(k) retirement account, plus a paid-for UK £430k house, roughly $250k in a normal brokerage account and plus around $155k various living expenses plus emergency stash. I no longer live near San Francisco and I have no big unusual hobbies, debts or expenses. So if I don’t touch my investments and I just pay my monthly living expenses until I’m old enough to retire, I’ll be fine. Unless I or my wife live exceptionally long, the kids will get some education and a tolerable inheritance. That’s nice.

I’m 43 years old, so 401(k) withdrawal without penalty starts in about 16 years for me. If I can pay 16 more years of expenses, I’ve won the game and I’m home free. That’s nice too.

(Americans: I’m not worrying about being bankrupted by health expenses because a long-term UK visa means I’m on the National Health. So we can stop paying about US $40,000 of yearly health expenses, plus we won’t be randomly bankrupted if somebody gets sick. I’m going to post later about the UK visa I used to get here, and it’s worth your time to learn about if you might consider leaving the US.)

A chunk from my W-2, showing a taxable salary of around $313k.
You can open the image in a new tab if you want full resolution.

I did okay for money as a Ruby Fellow. How okay is okay? My W-2 for 2019 says “$313,994.04”. That doesn’t count 401(k) contributions (which are tax-free,) nor our various investments, nor does it count the last 1.5 months of 2019, when I was on a contract rather than full-time. It does count stock options. This is more than I made as a ‘normal’ full-timer, but not that much more. Even at startups you can make over $200k/year as an SF Bay Area programmer. I speak from experience.

I got paid frankly unreasonable money for years. Now I’m taking my winnings off that roulette table and buying some freedom. I’m past 40. I’m ready to buy some of my own time, finally. It helps that I’m no longer paying unreasonable living expenses in the SF Bay with my unreasonable income.

(Did I make the most unreasonable income? Not at all. Those working for FAANG, for instance, can get way more than I did, as some of my old friends and classmates do.)

Product Business, Eh?

So if that’s where I’m at, how is the ‘selling books’ part doing? I began pre-sales for Rebuilding Rails in 2012, and pre-sales for Mastering Software Technique in 2019. How’s progress on this (until now) many-year hobby of mine?

Not terrible.

A graph of my Gumroad sales numbers for Rebuilding Rails from 2015 onward.
This is only October-ish of 2015 onward. Open in new tab for full resolution.

I had 1,804 mailing list subscribers when I sat down to write this morning. I switched to my current billing system (Gumroad) in October of 2015, and since then I’ve made $12,591.87 on 297 sales from Rebuilding Rails (only.) That 297 excludes transfers-from-pre-Gumroad and free downloads from workshops, for an average sale price of around $42.40. By contrast, before Gumroad I made $31,186.05 after fees on 864 paid sales, which averaged $36.09 to me after fees. But in all, I’ve made $43,777.92.

(You’ll notice that the average for paid-only Gumroad sales is higher than the normal sale price of the book. That’s because I don’t put it on sale frequently and I have a few packages where you can buy a more expensive site license for Rebuilding Rails for your team. I didn’t originally have those.)

To be clear, this isn’t nearly enough to cover the family’s monthly expenses. $43k over eight years? Not even close. I’ve tried a couple of other product ideas since then (for the nostalgic: Rails Deploy In An Hour and No More Lost Data), which made essentially no money. Early numbers for Mastering Software Technique look good… to the tune of 16 sales for $30 or £25 each. That is good for this early, though. Rebuilding Rails had something like four sales as this age, and was a much harder product to advertise for.

A graph of month-by-month sales data until 2015.
Old Stripe sales by month, open in new tab for full size.

I also have a bit over 1,600 Twitter followers. My limited experience suggests that’s worth a lot less than 1,800 mailing list subscribers. Maybe a tenth as much? Twitter seems to sell an occasional book for me. But at its best it brings in mailing list subscribers and more commonly it doesn’t do much.

I’m hoping to put significant time and effort into this, grow my list and make sales. I know I’m not there yet, but I don’t expect to be. In a year I’ll have a much better idea whether this works.

In any case 1,800 developers, plus a good reputation from writing/speaking for AppFolio, is a great start to telling the world what I have to offer. I’m kinda-sorta Ruby-community famous with some interviews and conference talks to my name, so I have a good answer to “who are you to tell me about being a developer?”

A high percentage of my list have already bought Rebuilding Rails. And current Rebuilding Rails is, frankly, not suitable as a way to earn a living. It’s too small, too niche and far too cheap to support us even in Inverness. It’s a springboard into my next level, and I’m cool with that.

It’s a good springboard, and it means I’ve already made some early mistakes. That’s nice.

I finally, wonderfully, have time to try this out and see what it looks like instead of sneaking tiny bits of time as a second/third/four-or-later job alongside work, travel, parenting and so on.

What Needs to Happen?

I have a lot of the basic skills here. I’ve written and sold an ebook, of course. I’ve built audience for AppFolio’s blog, which is similar but different. My art and design skills have gone from “awful” to “better than I’ll get on Fiverr.” For an example, all the digital ‘chalk’ drawings you see here are done by me, though the gorgeous chalk backgrounds and brushes are not — I bought those from Ian Barnard.

A list of my primary referers for Rebuilding Rails from 2015 onward.
This is referers from October-ish of 2015 onward. Open in new tab for full resolution.

But basically, I need to put together the last few pieces to reliably add subscribers to my email list and sell them things. I do pretty well with Ruby on Rails programmers already. It’s a small community, and most of them have heard of my book and my performance work. I don’t know how many want to buy a book about how to practice coding, but I’m jazzed to find out.

I also, finally, have a product that might appeal outside that niche. I love Rails programmers, but there are only so many of them, you know? I pretty quickly saturated the “easy to reach” bits of that audience, first with Rebuilding Rails and then with my performance blog posts. That’s not a gigantic group of people, though they’re (we’re) wonderfully engaged and interested.

Specifically, you know who wants to build practical coding skills in a giant hurry, and gets a big financial boost out of it? Boot campers. I can’t tell intermediate-and-up coders, “hey, if you get better at coding you can get a promotion.” It’s not usually their coding skills that are holding them back. But boot camp graduates (and similar nontraditional comp sci folks) are in a whole other category, where if I can help them get better at coding they will probably do better by thousands of dollars per year, immediately. That’s a group I can sell to. And there are a lot of them.

Where Do Things Stand?

A teddy bear, drawn in chalk and dressed in a t-shirt and jeans.
I have a teddy bear I use as a mascot and conference buddy. She was very popular on stickers.

I finished my time with AppFolio at the end of December 2019. I took January 2020 off — it had been a long time since I had a proper vacation. I started on Monday, 3rd February, 2020.

Since then I’ve started writing blog posts for Mastering Software Technique again, put together the beginning of a real schedule and generally gotten back on the horse after vacation. I have high hopes for treating this like a real job. That was great for my AppFolio writing and speaking.

Several times I’ve looked at my life and decided it’s time to start a new story: having kids, learning Ruby and Rails, moving to Scotland, and now starting to work for myself.

Here’s where this new story begins — in medias res, as authors like to do.