Avoiding Feature Creep and Growing a Profitable Coding Newsletter

Hello! What's your background, and what are you working on?

Hi! My name's Lawrence, and I'm working on Daily Coding Problem with my co-founder Jae. Our backgrounds are in computer science and we studied at the University of Toronto.

We're a technical interview prep service that sends an interview coding problem every day. We started Daily Coding Problem during my senior year of university but launched publicly just several months ago. Since then, we've grown to nearly $3,000 in monthly recurring revenue.

Home page

What motivated you to get started with Daily Coding Problem?

During my senior year of university, my friends and I were preparing for technical interviews. Every day, I'd send our group chat an “interview question of the day” and we'd race to finish it. When they started getting offers from companies and credited my daily interview questions, I was not only extremely glad but also curious whether this could work as a business. I had gone through a lot of programming interviews and even given some so I definitely had a lot of expertise in the area.

I was inspired by a couple things to try a mailing list. One was your interview with Scott's Cheap Flights, which was amazing and a great read. The second was Ben Thompson's Stratechery, which I'm a huge fan of. I was basically optimistic about the state of subscription newsletters and the ability to monetize them. I was still in school at the time, so I thought I could leverage my domain expertise into making some beer money. Now we make rent money! Well, rent money in places that are not San Francisco, at least.

What went into building the initial product?

Before doing a newsletter, I wanted to build a whole platform with an online judge that ran your code, social features, and a bunch of other crap. Instead, to avoid spending weeks building it out, we spent one night just building a landing page to validate our product and launched it on Hacker News. It was barebones, to say the least:

Old landing page

That didn't get much traction. But we started writing blog posts and posting those on Hacker News and reddit (specifically, /r/programming and /r/compsci). Some of the popular ones got lots of hits and that's basically how we got our initial customers.

The most advantageous thing we did was to focus on velocity.

Tweet
Share

We really started with very little expenses. We use Heroku, Sendgrid, Netlify and Namecheap. We probably spent less than $50 in total in our first month. Most of the resources we had were spent on writing great questions and solutions and building out the technical infrastructure to send out emails. Here's a breakdown of our costs:

  • Stripe: 2.9% + 30¢ / transaction
  • Heroku: $7 / month
  • Sendgrid: $10 / month (we're now on a bigger plan that's $80 / month)
  • Netlify: Free
  • Namecheap: $10 / year

This may seem like a high margin but after factoring in our time writing new questions and solutions, editing old content, and helping readers, it's actually not very much.

How have you attracted users and grown Daily Coding Problem?

One nice thing about being a mailing list is that with hard and interesting problems, people tend to share them naturally by forwarding our emails. So we've gone through our list of problems many times to make sure that the questions are clear, concise, interesting, and helpful. And I think it's paid off: we now get a lot more users emailing us to discuss questions, which seems to suggest that they also would be sharing them with friends.

Another way that we've attracted users was through our blog. We've posted about interviewing strategy, problem solving techniques, and guides to programming concepts, as well as actual examples of our problems and solutions. This gets us some organic viewers who sign up to our mailing list.

Finally, another idea we've been trying recently is building useful tools for our audience. The most recent one is our cover letter generator. When I was applying for jobs, I got tired of making cover letters for each company. So I thought it'd be useful (and kinda funny) to make a custom cover letter generator. It got to #2 Product of the day on Product Hunt and #1 for the week on /r/cscareerquestions.

Our cover letter generator brought in over 10k unique visitors from reddit and Product Hunt:

Cover letter generator

What's your business model, and how have you grown your revenue?

We use a freemium model. You can subscribe and get interview questions for free. A paid subscription costs $9 per month (or $7.5 per month if you commit to a year), and you get in-depth solutions to every problem.

We started charging right away because we wanted to make a viable business. When one of our initial blog posts finally hit the front page of Hacker News, we got $150 in subscriptions the first day. That was all the validation we needed, and we quickly got started actually building out our product and infrastructure.

Here's our monthly recurring revenue for the past 5 months, according to ChartMogul:

Month Revenue
Nov 2017 235
Dec 2017 715
Jan 2018 1942
Feb 2018 2210
Mar 2018 2850

We've been growing revenue by doing consistent marketing and improving our product. For example, we noticed that our users tended to unsubscribe at higher rates right after the third problem. We looked into it and realized that the question was probably too difficult, so we replaced it with an easier problem and moved that one farther back. I think little tweaks like this help reduce churn and overall, it just makes our service better.

What are your goals for the future?

Our goal is to continue to make the questions and solutions better for our readers. I mentioned this above but because of the viral nature of a mailing list, I think the most high-leverage thing we can do is making sure our product is great. To do this, each of our emails have a CTA for feedback. All users have to do is reply to our email! This lets us get feedback on questions and solutions that people didn't find totally clear.

We also want to build more useful tools. They're fun, reusable, and great for marketing. Our cover letter generator still gets several hundred daily uniques and some of them funnel their way into a paid subscription, which is great.

Do more experimentation than ideation, even on things you don't think will necessarily work out. At the end of the day, you learn better when you actually try things out and fail.

Tweet
Share

We're also thinking about partnering with companies to either sell ad space to, like Software Engineering Daily and Scott's Cheap Flights does, or to even to refer potential candidates to. If you are a company that's interested, feel free to email us!

Have you found anything particularly helpful or advantageous?

The most advantageous thing we did was to focus on velocity. In my opinion, this means knowing what motivates us and doing those things. While we have a big backlog of tasks and priorities, we tend to do easy tasks first. This builds fast wins, which I think builds momentum.

Another somewhat related idea is to deliver value to customers fast. This might sound obvious but I think it is easy to forget. For us hackers, it's very tempting to try to automate things, reduce costs, experiment new tech, or make long-term moves too early. For example, in the beginning, we had no automation and sent emails manually by Gmail because users just don't care if it's automated. This also gave us the time to talk to and help users to make sure we were building something people wanted.

Finally, cut feature scope drastically. This not only helps you launch and deliver value faster, but somewhat paradoxically helps to anchor your product in customer's minds. What's easier to grasp: one coding question per day or a social technical interviewing platform? It's like that UNIX adage: "Do one thing and do it well."

Success stories

What's your advice for indie hackers who are just starting out?

One piece of advice I have would be to do more experimentation than ideation, even on things you don't think will necessarily work out. At the end of the day, you learn better when you actually try things out and fail. And the things that you find to be true might be a lot different than the ones you expect.

Another thing is to just launch. I was totally embarrassed to only have a landing page when we launched, but that's gotten us farther than any of the products I've built siloed up and waiting until they were perfect before launching to little fanfare.

I realize after writing this that these sound horribly cliché, but it's totally true. So just try shit out and launch it.

Where can we go to learn more?

I hope this was helpful! You can check out Daily Coding Problem here and our blog here. Also happy to answer any questions in the comments below!

Lawrence Wu , Founder of Daily Coding Problem

Want to build your own business like Daily Coding Problem?

You should join the Indie Hackers community! 🤗

We're a few thousand founders helping each other build profitable businesses and side projects. Come share what you're working on and get feedback from your peers.

Not ready to get started on your product yet? No problem. The community is a great place to meet people, learn, and get your feet wet. Feel free to just browse!

Courtland Allen , Indie Hackers founder

Loading comments...