54
18 Comments

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.

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.

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!

  1. 1

    Hi Lawrence,

    Your story is inspirational. Congratulations on all the success!

    I'm a Founder working on https://www.hiration.com

    I would love to get in touch with you or your team to discuss a collaboration. Looked for a contact email on your website but couldn't find it.

    Would you be able to share an email address where I can reach out to your team?

    Thanks,
    Aditya

  2. 1

    Hey, any plans on adding support for different languages? I'm currently a subscriber and loving it so far.

  3. 1

    What service do you use to manage emails?

  4. 1

    How fast would your business die if you'd stop making frequent content?

    1. 1

      Down-voting the uncomfortable question :)) You should still answer it to yourself. My point was, your business doesn't sound like selling a product, but a service.

  5. 1

    Does the free subscription includes answers? or it's only the questions and I need to subscribe to the monthly fee to see the answers? Thanks for clarifying this.

    1. 1

      The free subscriptions only have questions -- you get solutions with the paid one!

  6. 1

    Thanks for sharing, this was a great read, and especially useful to me as someone trying to build a daily newsletter service myself (https://coinrecap.io).

    It's interesting to hear your experiences with virality and with content marketing. Our daily open rates have been great, but we don't see much/any forwarding going on. Do you explicitly ask your users in the email to forward to friends or does it just happen naturally do to the nature of your content?

    Also, I'm curious what your conversion rates on content marketing are like. We recently ran our first test with content marketing and saw ~2% of those who landed on the blog post convert into subscribers. This was a bit disheartening for us, but perhaps is to be expected? If you're comfortable sharing, I'd love to know what your blog posts convert at, and if the conversion rate ever varies by content!

    Thanks again for sharing. Cheers and good luck!

  7. 1

    Signed up for Daily Coding Problem since day 1. Must recommended, if you are preparing for software engineering interview. Very good questions I got everyday.

    1. 1

      I'm super glad you're enjoying the questions! Hope you ace your interviews :)

      1. 1

        Is there any way to access your past questions/solutions? I would love access to all that practice material if I was cramming getting ready for a string of interviews.

        1. 1

          Hey bluu, not at the moment! I agree it would be useful though.

  8. 1

    This is a great story! I have a few questions:

    1. Where do you get all the problems?
    2. How long does it take to work out the solutions (i.e. to put together content for a single day)?
    3. Do you have people to vet the solutions for you before they go out?
    1. 1

      Hey Jerrie, thanks for reading!

      1. We get the problems from friends that have recently done the interview gauntlet at Google/Facebook/etc.
      2. It takes a couple hours to write up and edit each question and solution. It can vary a lot though since some questions are much more difficult and require more time to solve and write up.
      3. Nope, we just edit them ourselves and look over each other's work.
      1. 1

        Hey Lawrence, thanks for the interview! I found Daily Coding Problem on Product Hunt when it launched, and have been following it since. Great work!

        Do you spend a couple of hours everyday on creating new problems? And if you don't mind sharing, do you have a lot of churn? Just wondering if you'd be able to recycle them. :)

        1. 1

          Awesome. Yep, we spend a couple hours every day writing the problems and solutions.

          We do have a bit higher than average churn but it's surprisingly been consistently going down!

          What do you mean by recycling? :)

  9. 1

    Thanks for sharing your experience - super inspiring!
    Out of curiosity, how did you go about processing payments in your initial product?

    1. 1

      Hey yang, we used Stripe for processing payments in our initial product, and still do!