Category Archives: Entrepreneurship

2019 Review and 2020 Goals and Plans

2019 has been a pretty interesting year. Here are some of the high points.

What went well in 2019

I didn’t flail around too much with product endeavors

My earnest attempts at building a successful product business started around 2008. In the time since then there have been a number of periods, some lasting many months, where I was completely without direction, just wildly flailing. These periods sucked because they were so obviously unproductive.

From February 2018 to now (December 2019), I’ve been pretty much steadily focused on the business I refer to as CodeWithJason.com. Obviously it’s good to stick with one thing for a long time, as long as it’s a good thing. I’ve definitely been guilty in the past of going around and laying foundation after foundation without sticking around to build the whole house. In this case I actually have stuck around long enough to build a good portion of the house.

I stuck with one client the whole year

In my career I’ve worked for a lot of different bosses and freelancing clients. A good portion of the people I’ve worked for and the teams I’ve worked with I frankly haven’t cared for that much, and haven’t worked for that long. (I’ve also worked for a number of startups that have had financial troubles, and so a number of relationships have ended that way.) Fortunately, in the late summer of 2018, I started a relationship with a client I like working with a lot, so much so that I expect he and I will work together for the indefinite future. (This relationship is what prompted me to quit freelancing.)

I got some good conference speaking gigs

Before the fall of 2018 I had never spoken at a conference at all. As of now I’ve spoken at 9 conferences, if I’m not mistaken. I’d say my biggest two speaking achievements of 2019 were speaking at RubyConf India, which was my first international conference talk, and RailsConf, which is of course the flagship Rails conference. I also really enjoyed speaking at RubyHACK in Salt Lake City and Southeast Ruby in Nashville.

My podcast endeavors went well

In May of 2018 I semi-experimentally started a podcast called The Ruby Testing Podcast. It was successful beyond my expectations. My guests included Michael Hartl and Kent Beck. To date I’ve gotten over 30,000 downloads.

Encouraged by my success with The Ruby Testing Podcast, and wanting to no longer be limited to the topic of testing, I decided to start a broader podcast called Rails with Jason. I’ve been happy with how it has turned out content-wise, for the most part, and I’ve had a number of big-name guests.

What didn’t go as well in 2019

The conferences were expensive

All the conferences I spoke at required some level of out-of-pocket expense.

When I first started seriously pursuing conference speaking around mid-2018 or so, my hope and expectation was that my conference talks would lead to lucrative consulting engagements (training gigs, specifically) that would give me a worthwhile return on my investment. Unfortunately those consulting leads never came in, or at least they haven’t yet. I can’t say these investments didn’t pay off, I can only say they haven’t yet, because it wouldn’t surprise me at all if I get a consulting lead 10 years from now from someone I met at a conference this year. I’ve found that the gestation time for consulting leads is often several years.

Anyway, the point is that I spent a bunch of money speaking at conferences and as of now I haven’t recouped my investment. So I’m probably going to take it easy on conferences in 2020. I plan to speak at perhaps one conference or maybe none.

CodeWithJason.com grew less than I expected

When I launched Rails Testing for Beginners in March, I did $988 in sales, which was the biggest launch in my limited career of doing product launches. Unfortunately things have only gone downward from there. Here’s a graph of year-to-date sales.

More concerning than the revenue numbers, my email list has only grown by a net of about 200 subscribers since March, or about 24 per month on average. That’s 288 new subscribers a year, which hardly seems like enough to sustain a viable business. I’m not ready to quit yet though. I think it’s reasonable to expect that audience growth can be somewhat exponential. Maybe in 2020 my email list will instead grow by 400 subscribers, and then 800 in 2021, and so on. We’ll see how things go. And of course, I intend to try to figure out how to deliberately make that number go up faster.

Other stuff that happened in 2019

In the later half of 2019 I had two great product ideas. One was a Rails CI tool with ridiculous parallelism built in that would allow you to run any test suite in under 10 seconds (I built a POC and it really worked!). Another was a tool that would make AWS + Rails deployment almost as easy as Heroku (which I also built a working POC for).

Unfortunately I discovered that each one of these two ideas would require a lot more time to get going than I really have available. Fortunately, I’m experienced enough now to bail early on doomed ideas instead of burning years of my life beating a dead horse.

Plans for 2020

Since I no longer consider myself a freelancer, and since I have a “day job” that I’m okay with keeping indefinitely, that makes that part of my 2020 plans easy. Unlike previous years, I won’t be spending time trying to get consulting clients or anything else on that side of things.

That leaves my product endeavors to focus on for 2020. Here are my plans in that area.

For CodeWithJason.com, I plan to improve and expand Rails Testing for Beginners, then re-launch it. In fact, I’ve already expanded RTFB from 99 pages to 189 pages by bringing in a bunch of the Rails testing blog posts I’ve written over the last several months. I’ve also begun radically redesigning and improving the sales page.

I also plan to try again with the AWS + Rails thing, but smaller this time. Building a whole software product to make AWS + Rails deployments easier is too time-consuming. So maybe I can do something smaller, like just write a blog post about how to deploy Rails to AWS. Then maybe I can build a tool or even just a set of scripts that makes parts of that deployment process easier.

I also decided to set a model financial goal for CodeWithJason.com. My 2019 revenue was about $2100 (which could conceivably still go up), so I’ll see if I can roughly double my revenue for 2020, and hit $5000.

October 2019 Revenue Report

In October my revenue was $168. I didn’t do any launches or anything. These sales were just “natural”.

Here’s my revenue for past months.

2019 October $168
2019 September $0
2019 August $426
2019 July $40
2019 June $0
2019 May $481
2019 April $98
2019 March $1037
2018 October $400
2017 June $185
2017 May $480
2017 April $735
2017 March $352
2017 February $449
2017 January $371
2016 December $428
2016 November $871
2016 October $1580
2016 September $1053
2016 August $868

Pulling the plug on Exosuit

After about two months of working on it, I’ve decided to stop working on Exosuit, the tool I’ve been building to make Rails + AWS deployments easier.

The reason for my decision is that I decided that the amount of time it would take to get Exosuit off the ground (in terms of hours per day) is substantially more time than I have available.

I know from painful past experience that it’s not enough to build the product. The product also has to be marketed. The marketing work takes a serious amount of time and effort. For a relatively complex software project such as Exosuit, I don’t have time to do the programming work, the marketing work, AND have a day job.

For context, I had spent about 2 months working on the Exosuit “MVP” and in that time I maybe only got about halfway done, estimating generously. I would have spent another 2, 4 or 6 months building the thing before it would even have been un-fragile enough to let another person touch it. Throughout all that time, all marketing work would be 100% on hold. That seems like a really risky plan.

I still think the product idea is a good one. I hope to come back to it someday. I just don’t have the resources at the present to build it and turn it into a viable business.

My plan now is to turn my attention back to building my email list and selling Rails-related info products. That stuff hadn’t been going as well as I would have liked, but my current thinking is that it’s a better bet to try to improve what was already working than to try a totally new thing.

My current thinking on the economics of the Exosuit project (October 2019)

In September I started an OSS project called Exosuit. From the beginning I envisioned that there would be an economic component to Exosuit, that some functionality would be free and some functionality would be paid.

Here’s what I currently have in mind.

Free tier

The free tier will offer the core promise of Exosuit: the ability to deploy to AWS as easily as deploying to Heroku.

The premise I have in mind is that you, the developer, have an idea for an app in mind, and you want the path that leads from “I have an idea in my head” to “I have an application running in production” to be as quick and frictionless a path as it can possibly be.

This ease and simplicity will have a trade-off, though: the infrastructure you get when you run git push exosuit master (or whatever) will, out of necessity, be less robust than a full-blown production application with load balancers, scalable instances, etc.

Instead of a complex, sophisticated AWS infrastructure you’ll get a single EC2 instance, a single RDS instance, and the necessary security groups to wrap each. To me this still seems plenty good enough for a brand new app that’s just at the idea stage.

Paid tier

The paid tier will provide tools to help you “graduate” from the simple free tier infrastructure for an infrastructure more appropriate for a successful business application with real users.

Some ideas include:

  • Easy way to put instances behind a load balancer
  • Easy ability to scale instances (cattle vs. pets)
  • Convenient way to build and manage production and staging environments
  • Tools for common operations, e.g. copying production data to staging, recovering from RDS backup
  • Domain management, including SSL

All this is totally tentative and might change. For the foreseeable future I’ll be focusing on the free tier because I see a compelling free tier as the best possible marketing for a paid tier.

September 2019 Revenue Report

My September revenue report is pretty simple: my revenue was $0. Not surprising because I didn’t do any launches.

Here’s my revenue for past months.

2019 September $0
2019 August $426
2019 July $40
2019 June $0
2019 May $481
2019 April $98
2019 March $1037
2018 October $400
2017 June $185
2017 May $480
2017 April $735
2017 March $352
2017 February $449
2017 January $371
2016 December $428
2016 November $871
2016 October $1580
2016 September $1053
2016 August $868

Suite Magic test runner: project aborted

Recently I had an idea for what I thought was (and still think is) a good idea for a product: a test runner/CI tool that can run any Rails test suite in about 30 seconds, no matter how big the test suite is. I even had a rough proof-of-concept working.

However, I decided to abandon the project. The reason is simple: I realized that the work involved in building this product/business would almost certainly be too much. As someone who earns my living working more or less full-time doing coding (and as someone who has a wife and kids), I can only afford to put in so much time per week on side projects.

I know the pain of trying to take on something too big because I’ve tried it before. From early 2011 to late 2015 I tried to build a business selling hair salon scheduling software, and among other reasons for failure, I was never able to achieve “escape velocity” due to the limited amount of bandwidth I had to work on the business.

So, that’s my reasoning. Now that I’ve made that decision, my plan is to continue to focus on blogging about Rails and making Rails podcasts, which I do at CodeWithJason.com and the Rails with Jason podcast, respectively. As I move forward with these things I intend to keep my eyes open to other entrepreneurial opportunities.

August 2019 Revenue Report

Unlike June and July, I did do a launch in September. I didn’t launch a course like I was planning, and nobody bought the service I launched. But I did relaunch my book and made $327. I launched to roughly 100 new subscribers and made 5 sales, so about a 5% conversion rate, not bad.

Incidentally, I also sold a copy of the Angular for Rails Developers video package for $99. I didn’t even realize that that product was still purchasable. I guess it is since someone bought it.

Below is my revenue for every month worth mentioning.

2019 August $426
2019 July $40
2019 June $0
2019 May $481
2019 April $98
2019 March $1037
2018 October $400
2017 June $185
2017 May $480
2017 April $735
2017 March $352
2017 February $449
2017 January $371
2016 December $428
2016 November $871
2016 October $1580
2016 September $1053
2016 August $868

May 2019 Revenue Report

In March 2019 I launched my new book, Rails Testing for Beginners, and made $988 on the launch with a couple sales later in the month.

April was launchless. My revenue was only $98.

This month I launched a video package to accompany the book. I earned $481 which was less than I expected but in hindsight it makes sense. My list hadn’t grown much since the book launch so almost everyone who got the video launched to them had already had the book launched to them. I did the math afterward and out of ~700 email subscribers, about 5% of them ultimately bought something, whether it be the book by itself or the book + video package. A 5% overall conversion rate isn’t bad.

Now that I have this higher-tier product my focus for the next while will be to get a bunch more subscribers to launch to. I’m tentatively thinking that I’ll wait until I have at least 1000 subscribers to do another launch.

Below is my revenue for every month.

2019 May $481
2019 April $98
2019 March $1037
2018 October $400
2017 June $185
2017 May $480
2017 April $735
2017 March $352
2017 February $449
2017 January $371
2016 December $428
2016 November $871
2016 October $1580
2016 September $1053
2016 August $868

How I uncover genuine pains in technical watering holes

Note: this post is targeted at my fellow 30×500 students and might not make sense to anyone else.

A common problem students encounter in 30×500 is that we come across watering hole posts that are purely technical and have a short and clear answer.

Example: the question “how do I reverse an array in Ruby?” has a very cut and dry answer: Array#reverse. There’s not much more to say about it. This question isn’t really a pain, just a question.

The kinds of posts I prefer to find are ones that say things like: “No matter how much I read, I can’t figure out how to get started with automated testing. What can I do?” There’s a LOT to say in response to this question. This question reveals pain, pain that can be addressed with an ebomb.

I’ve often used a special google query to help me uncover pains. It looks like this:

rails testing confused inurl:forum

The inurl:forum part scopes the search to URLs that contain “forum”. The “rails testing” part is the topic under which I’m trying to uncover pains, and “confused” is one of several “pain words” I’ll plug into this query. I might run through several, like this:

rails testing confused inurl:forum
rails testing frustrated inurl:forum
rails testing stuck inurl:forum
rails testing confused inurl:reddit
rails testing frustrated inurl:reddit
rails testing stuck inurl:reddit

Here’s the full list of “pain words” I’ve come up with so far:

confused
frustrated
stuck
lost
painful
don’t understand
don’t get
struggling

Once I find posts via my queries, I of course safari those posts and then write ebombs addressing the pains.

April 2019 Product Revenue Report

As I wrote about a month ago, I launched my new book, Rails Testing for Beginners, in mid-March, for a total launch revenue of $988. I sold one book at the full $49 price post-launch for a March 2019 total of $1037.

April was a much slower month. I made two sales, each at the full price of $49 for a total of $98. This low total is not surprising. I did basically nothing to try to make any sales in April. Almost all my effort was focused on adding a video package tier that I can offer at a higher price.

I’m planning to launch the video package this coming week, May 6-9 2019.

Here are my numbers for last month and every prior month.

2019 April $98
2019 March $1037
2018 October $400
2017 June $185
2017 May $480
2017 April $735
2017 March $352
2017 February $449
2017 January $371
2016 December $428
2016 November $871
2016 October $1580
2016 September $1053
2016 August $868