Launch HN: CodeCrafters (YC S22) – Practice writing complex software

403 points by rohitpaulk 8 days ago

Hey everybody, it’s Sarup and Paul, founders of CodeCrafters ( We make interactive courses for software engineers, where you get to recreate popular developer tools from scratch. Build your own Redis, Git, Docker, and SQLite—in Go, Python, Rust, etc.

For example, if you did our Git course, you’d learn how Git internally stores file data by building an implementation of Git that can clone a GitHub repo. If you did our SQLite course, you’d end up with a SQLite implementation that can read a valid SQLite database file, and retrieve data by performing an index / full-table scan on it. The projects you’ll build are always end to end compatible with the official spec. Given the same input, your program would behave the same way the official one would.

We’re different in the developer education segment in 3 main ways:

First, we cater to people with programming experience. There are tons of introductory “learn to code” resources out there, but surprisingly little once you get past the basics. Good programmers want to get better and to develop in areas where they’re not strong yet, and that’s what we help with.

Second, the coursework involves writing actual code instead of consuming videos. You handle concurrency, develop statecharts, traverse B-trees, etc. While we test against a fixed spec, you’re welcome to try different approaches. E.g in our Redis course, you could implement handling concurrent clients either using threads, or using an event loop.

Third, instead of coding in the browser, you build these projects in your local dev environment. We create repositories for you to work out of, and you git push to run tests. The actual code can be written in your editor of choice (VSCode, JetBrains, Emacs, etc).

This last point in particular—our git-based workflow—is something customers repeatedly tell us they enjoy. We run our own git servers, and have server-side post commit hooks configured to run tests on every push. These post-commit hooks also send back logs to users, with colors to indicate pass/fail, errors, etc. Our feedback cycle for popular languages like Go, Python, JS often takes ~2.5sec (including pushing code, running tests, and streaming back results), faster than even regular GitHub pushes. We do this by executing code within firecracker VMs and caching aggressively wherever possible.

As open source contributors, we’ve always been interested in the internals of software we use day-to-day. When Paul became an Engineering Manager for a team of 12, he decided to conduct in-person “Build your own Redis” workshops as a way to engage his team and help build skills. He had a mini-curriculum, a physical leaderboard for scorekeeping, and a Slack channel for discussing solutions. Participants loved it and wanted more. With CodeCrafters, we’ve essentially built an expanded version of that workshop experience on a website—for engineers and teams that want to challenge themselves, dive deeper, and grow.

We’ve learned how much hunger there is for a skill-building path that’s structured, fun, and focused on cool, well-known projects with serious technical dimensions. Jumping straight into the deep end as an open-source contributor has always been an option, but it’s daunting, if not intimidating. It can take a long time to get oriented in a major codebase, and mentorship isn’t always available. There’s a need for an intermediate approach with lessons that build technical expertise, and that’s what we’re supplying.

So far, we’ve seen developers and teams use CodeCrafters to learn the internals of complex software, master programming languages, onboard devs in a new language, and even as a continuous team-bonding activity.

If you’re a developer, we’d love for you to try CodeCrafters. Most customers expense the subscription through their learning / professional development budgets. If you need help convincing your manager, feel free to email me —

Paul and I are excited to continue helping software engineers become the best technical version of themselves. We'd love to hear your ideas, experiences, and suggestions. What new courses should we add? What other formats of learning have you found to be effective?

rahimnathwani 8 days ago

I love the idea of this, and I disagree with others about the price being too high. If you're in the US/Canada/UK and planning to spend even a couple of hours per month using this to further your skills and career, then the value of your time investment will exceed your cash outlay on the subscription.

That being said, I wonder whether you've considered offering a student discount for bona fide students? You could do this via sites like Unidays or StudentBeans. You can rely on their process for verifying students, instead of just accepting anyone with an edu email address (which are sometimes available to alumni).

I'm sure some of the folks doing online CS degrees at WGU and Georgia Tech would be interested in this.

  • thrown_22 7 days ago

    I'll go further and say that a high price is a great way to screen out the worst customers.

    • pelagicAustral 7 days ago

      You mean like a private country club? An elitist software product, yeah, I can definitely see that succeeding...

      • thrown_22 7 days ago

        If you're not making bank as a software developer you're either not a very good one, or you care more about the craft than the money. The first group would give you terrible reviews because they are hopeless in general. The second would give you terrible reviews because you didn't include enough content on cubical type theory.

        Either way you're better off without them.

      • ctvo 7 days ago

        A sub-100 USD per month professional subscription is elitist? Have you worked in any other professional field? Finance, academia, medicine, law, etc. This is certainly not elitist nor overpriced for its value.

    • ikiris 7 days ago

      Yep, don't want those uppity poors having any assistance to upward mobility my good chap /s

      • triceratops 7 days ago

        It's not really the job of a business to provide upward mobility unless they explicitly make that part of their business model. Everything else being equal you'd rather have customers who pay more money per head than less.

        They also expect that a lot of their customers will be subsidized by their employers.

      • thrown_22 7 days ago

        Yes, exactly like that.

    • sarupbanskota 6 days ago

      I have to admit our highest paying customers are among our kindest :)

  • sarupbanskota 8 days ago

    Ooh, super interesting. Thank you! We weren't aware of Unidays / StudentBeans, indeed sounds like something we should explore. We have organically seen students sign up — so I'm sure a more favorable pricing to them could go a long way.

    • karmanyaahm 7 days ago

      FWIW the GitHub student developer pack allows age 13+ (unlike Unidays and StudentBeans) and supports high school students (unlike Unidays)

    • avarun 8 days ago

      There's also SheerID which is what Spotify uses to validate student IDs and is IME better than Unidays.

  • dodgerdog05 8 days ago

    how do you rate the online CS degree at WGU?

altruios 8 days ago

Price point I feel is too high for specifically what it is offering.

A general point I would make.

In education: cost is a barrier of entry - a smaller ask might yield far more results from people in disadvantaged situations able to scrabble up ladder. A rising tide raises all ships.

You are doing work creating the material and course work - I'm not saying release stuff for free. but $80/mo is something to bat an eye at for a lot of people that would otherwise be interested in this.

I would price it at $40-60, with maybe an intro month at $20. the $60 price point is a video game: which fits in my mind as roughly the value you seem to be offering per month. but I don't actually know how much time each course takes - thus the range from $40-60.

that's just my two cents.

  • dangom 8 days ago

    Makes sense, but if there is a slack channel where people are supposed to be responsive and answer technical questions, then that's value beyond just material and course work. And given there is a community, if you set the price too low you start to get spammers and people that are not truly interested in the content, bringing down the value of the community in the first place. I think the price is fair.

    • Archit3ch 8 days ago

      Counter-intuitively, a free community adds more value by attracting people of all levels. Paid communities attract beginners (who are incentivised to pay for education), but not experts ("Why am I paying for a Slack channel?"). Spammers are easily handled by enforcing community rules.

      • Nuzzerino 8 days ago

        Hard disagree. There is incentive to pay for education (particularly the type offered by CodeCrafters) regardless of experience level, but the more engaged, more motivated, more mindful personality types will be more likely to make the connection that it's well worth the investment.

        A free community is going to have more lurkers that aren't engaged, aren't committed, and may post one thing if they even post at all, before slithering away. Drive-by-comments would be more common. It would not add value, it would be like most of the rest of the public Internet.

        Additionally, you might have missed this from the OP:

        > First, we cater to people with programming experience. There are tons of introductory “learn to code” resources out there, but surprisingly little once you get past the basics. Good programmers want to get better and to develop in areas where they’re not strong yet, and that’s what we help with.

  • ethanrc 8 days ago

    It seems like they are specifically targeting engineers at big co's with learning budgets rather than people paying out of pocket. Much cheaper than sending an engineer to a conference

    • sarupbanskota 8 days ago

      True. From our research and speaking with customers, many tech companies have learning / professional development budgets in the range of $500-$5000. Often they're trust-based, and self-directed, so engineers are free to spend them on whatever they feel helps them most with their growth.

  • rrishi 8 days ago

    I think the reason that the charge is that high is because they are targeting 1. people who are already in the field i.e. employed and have source of income and 2. people who are serios about it.

    Just my $0.02.

    • EgoIsMyFriend 8 days ago

      I think the reason that the charge is that high is because they are targeting big corp's training budgets


      • rrishi 8 days ago

        Hmmm ... i think that could definitely be a part in this too.

    • adamnemecek 8 days ago

      People who are in the field will not have time for this.

  • dnissley 8 days ago

    I don't think this type of resource would be all that helpful for people trying to scrabble up the ladder. They would almost certainly be much better served by countless other resources.

    • qsort 8 days ago

      If you are already a professional developer though, it's also questionable what is the added value. I'm willing to trust them that the quality is top notch, but it's basically a glorified tutorial; I have to agree with GP that the price point is way too high.

      I think they're targeting professional developers with self-training/learning budgets. I'd be totally down for this if my company were willing to pay the time and subscription cost. I'd certainly rather do this than some F-tier shite about Agile or whatever.

      • sarupbanskota 8 days ago

        Indeed, you're spot on!

        Our current target is professional developers and teams with learning budgets.

        Here are some reasons why experienced engineers have found value (the first expensed it, the second didn't):

        1. One customer manages the Redis team at an infra company, and they used CodeCrafters as a starting point to get up-to-speed on Redis internals — to be able to do their job better. We ended up getting feedback from them on areas we could dive deeper on, to be useful to platform engineers in general.

        2. A Distinguished Engineer at a Fortune 500 had built a database product before, and wanted to pick up a new language (Java, if I remember right). So they did our course because they preferred the "learning by doing" approach, and existing resources felt a bit too "hello world / todo-app"-ish.

      • cercatrova 8 days ago

        The value is many devs know how to do their work but many might not know enough of the intricacies to build their own Redis for example. I do full stack and while I can make a website with a corresponding API, I don't know enough to rewrite Redis which includes more low-level backend knowledge than a typical fullstack engineer might have, so this would be useful for me.

        • sarupbanskota 8 days ago

          From a customer call I had last night —

          They were 4 years into their job, and felt that their job was mostly cobbling together a bunch of frameworks. Nothing wrong with that, but they constantly had the itch of not knowing how the pieces really tie together.

          Their next goal is to explore platform engineering roles, which involves work that is one level lower in the stack.

    • sarupbanskota 6 days ago

      Genuinely curious (both of us founders come from the early stage startup world where ladders are not in place yet) — what are the top resources for engineers trying to go up the technical ladder?

  • lamontcg 8 days ago

    I think the prices are more or less in line with what they're offering. Based on the descriptions I expected low-to-high triple digits, which is in-line with Arden Labs golang training.

    The subscription model is a bit annoying, though, I'd prefer to spend a bit more to get lifetime access to sets of tutorials so that you can come back to it at any time in the future. The future upsell would be new tutorials sold to existing users. And it'd be nice to be able to buy it sliced either by language or by target. Most likely someone is learning Python so then they want to buy the Python set of courses, then they come back later and they're learning Go so they buy the Go set of courses, etc.

    • sarupbanskota 8 days ago

      Thanks for your feedback here! While we don't offer lifetime plans currently, our quarterly and annual plans are one-time.

      • lamontcg 8 days ago

        It looks good, I probably would have pulled the trigger, but I'm going to be AFK for three weeks coming up with no electricity or running water... Did bookmark it to come back to it though.

theptip 8 days ago

This looks very promising, I think it could be a great resource for companies that want to invest in training their developers, but don't have the resources to build a curriculum themselves.

> What new courses should we add?

The courses you have already are good, but are quite low-level. To broaden the applicability perhaps you could also try something like "build a REST API that matches this OpenAPI schema" (getting persistence working properly could be an interesting challenge). Going further, I wonder if it's possible to do a course like "build a web app that does X" (Realworld or TODOMVC are possible values of X), using browser automation to test. This is probably very hard without manual review. (Scoped broadly enough, this could be solved with a server-rendered framework or a client-side framework.) Common engineering/craftsmanship problems here are authentication, persistence, navigation, performance tuning, perhaps log-wiring, etc.

More generally, I'm wondering if there is a good open-source option as a competitor / baseline comparison? As others have noted, Leetcode is one common source of study exercises, but it's quite annoying to work with as you need to submit code in the browser rather than using your IDE. I'd love to see a repo with exhaustive test cases for the things you're building; for example low-level algorithmic exercises like "exhaustive tests for binary search tree" or higher-level "build a git client" like CodeCrafters offers. Being able to step-debug through failing test cases is always going to be more realistic training than the Leetcode workflow.

  • sarupbanskota 8 days ago

    Thanks for the ideas — you're right that automating the UI-oriented testing is more difficult. We're already piloting some ideas in this area (e.g Build your own React) — but the current focus is on perfecting what we have.

    Our testers are all OSS. Here's our git tester for example —

    Others can be found on our GitHub org.

    We need to do a better job of exposing links to testers in our in-app UI — good feedback!

    • solardev 7 days ago

      "Build Your Own React" (or Next) would be fantastic, especially because in so much of JS, there's like 500 wrong ways to do something and no clear best practice for us less skilled devs.

      Your format seems awesome but the languages you offer all seem really backend/devops focused.

      • sarupbanskota 7 days ago

        Build your own React is in the works :-)

      • theptip 7 days ago

        I’d love to try “build your own React” in wasm (Rust or Python could be cool). Typescript would be fun too of course.

    • langitbiru 6 days ago

      Request: build your own search engine, build your own Unreal (or game engine), build your own TikTok (the recommendation part is tricky), build your own Ethereum (the VM is interesting).

      • sarupbanskota 6 days ago

        Great ideas! We’ve had quite some interest in game engines, gotta look into it

andy_ppp 8 days ago

This is a great idea, I’ve had a slightly different one that could be added to this that is a different type or programming more within your application. Examples of this off the top of my head you should know are caching, login, image uploading direct to s3 and resizing, event driven systems, scaling stuff with the dynamo db/Cassandra style of writing out denormalised views etc. So instead of concentrating on software that already exists outside of your application for me it would be super helpful to absolutely have down all the different parts of logging in and auth, for example. Good luck with the continued development of Code Crafters, it seems like a really awesome idea with loads of potential!

  • sarupbanskota 8 days ago

    All good ideas! Thank you for your appreciation!

bytelane 8 days ago

This concept seems great, and I work for a very large company shown in the "trusted by" section. I also noticed that you have a quote from an engineer at my company who does not exist in the company directory or on LinkedIn. I cannot find any information about a subscription on our intranet. Are the companies shown in the "trusted by" section actually subscribers, or are these placeholders for now?

  • EddySchauHai 8 days ago

    > Trusted by engineers at top companies with learning budgets

    They probably have one guy at a company and add it, based on a survey/form where people could in theory lie about where they work or add previous positions if they're unemployed. Note the companies aren't subscribers, an 'engineer' from that company is a subscriber.

    • sarupbanskota 8 days ago

      Indeed, you're right — it's companies where our engineer customers work. It's been a while since we looked at that list tho, so it probably could use a refresh!

      For some companies on that list, we do have more than one engineer subscribing, and for in many cases we've spoken to them to learn about their motivations and feedback. We also have a Private Leaderboards feature for teams.

      In the past few months, a nice small win for Paul and I is what we like to call the "Slack Share Effect".

      It's when one of our users shares CodeCrafters within their company Slack, and then we notice multiple new users that work at the same company. When we get in touch with them, I always enjoy asking "how did the OP describe CodeCrafters on Slack?" and 100% of the time, I discover that customers do a better job describing CodeCrafters than we ourselves could. It's also how we uncover use-cases :)

      • EddySchauHai 8 days ago

        Fwiw I like the idea and will look at subscribing myself later. These are projects I see as magic and would love to know more about, especially Docker and SQLite.

        • sarupbanskota 8 days ago

          That gives me an idea for a tagline! "We explain the magic"

  • sarupbanskota 8 days ago

    Thanks for the kind words!

    The logos highlight companies where our customers (the engineers) work. Since we're early stage, so far it's more common for engineers to discover CodeCrafters, sign up by themselves, and expense it to their company. That might explain why you can't find information about subscription on the intranet.

    We also do have cases where we work with companies to land team subscriptions, so if you'd be interested for us to engage with your company, feel free to drop me a note —, and I'd love to help. It might be that the person you couldn't locate has moved on from the company, but I don't have a good explanation for why you couldn't find them on LinkedIn :-D If you emailed me, I could ask them and find out for you (for references, etc) — for most listed on the website, I've been in contact with them :)

    • turtlebits 8 days ago

      It seems kind of disingenuous to show companies logos, when it could just be a random employee- let alone using the phrase "trusted by".

      • molyss 8 days ago

        Really nothing disingenuous here. “Trusted by top companies with learning budget” is pretty damn clear and accurate. All in the same font, so there’s no “fine print” argument to be had either.

      • sarupbanskota 7 days ago

        I've also listed out some of the folks with public CodeCrafters profiles from some the highlighted companies here (Cloudflare, Docker, AWS, Stripe, Microsoft, Vercel, Sourcegraph) — randomly selected.

        If you look them up, you'd get a sense for their background / role, etc :)

        • hnbrowser123 7 days ago

          You should remove the company logos. I work at Cloudflare and this seems like false advertisement.

      • m00dy 8 days ago

        oh come on guys. "Trust by" sections are pure marketing bullshit. I wonder who really takes a step back and thinks about whether they are real or not. Welcome to Internet.

    • bytelane 8 days ago

      Thanks for clarifying! I got excited that maybe there was a corporate subscription in place.

      • sarupbanskota 8 days ago

        Of course! Please feel free to drop me an email, I love working with engineers to get their companies team accounts. It's even more fun with colleagues :)

wnolens 8 days ago

The price for 3mo doesn't seem high to me at all IF that ought to be enough to complete a single project with 1-2h/day. Coding books cost upwards of $50-80.

So I would prefer a per project pricing. And a trial that doesn't require credit card.

Awesome idea! I'd love to contribute somehow.

  • sarupbanskota 8 days ago

    Def enough time to complete a project with 1h/day, and you can also do it in "super deep dive mode" to take full advantage of the experience. We've definitely seen engineers do that.

    For example, we're now starting to introduce source code walkthroughs. Here's one going over how the Redis event loop is implemented —

    So as you build out your Redis project, you can study in parallel how the official source does it, learn some cool facts, and overall spend more time developing fluency with the Redis docs.

    One of the ways you could contribute is adding language support. If one of our courses doesn't support one of the languages you work with, you can add support for it here —

hardwaregeek 7 days ago

Something like this for compilers would be amazing. There's a lot of folklore knowledge around compilers and programming language implementation that isn't easy to learn on your own. A hands-on implementation based course would make it a lot more accessible.

  • cloogshicer 7 days ago

    Read 'Crafting Interpreters' by Bob Nystrom (free online).

    It teaches step by step how to write a compiler/interpreter, very approachable without dumbing down.

    • hardwaregeek 7 days ago

      I’m quite familiar! It still only scratches the surface. I’d love courses on type checking, incremental compilation, concrete syntax trees, query based compilation, optimization, register allocation, multithreaded garbage collection, LLVM, etc. There’s so many topics and so little high quality instruction out there.

  • zasdffaa 7 days ago

    Depending what you mean, but simple compilers are very straightforward. The output might make you want to cry, but they're still compilers. There's less magic than you think. There are also lots of books out there about writing them.

    Correction: there is no magic in compilers. Like Elixa, when you understand them they become totally mundane.

    • zasdffaa 7 days ago

      Would those who downvoted me care to mention what upset them so about "simple compilers are very straightforward" and where I was wrong saying compilers are comprehensible things, not etheric miracles beyond the ken of us bipedal apes.

scottydelta 8 days ago

I like the idea but the price seems very high and it’s not even for continued access but a subscription for a limited time.

The kind of experienced engineers you are targeting are also the people capable of doing this kind of learning on their own. But if someone’s employer is paying for it then it helps expedite the learning because of the guided process you guys provide.

  • gbersac 8 days ago

    If it's done on my spare time, I don't have time to create proper test suite, proper CI... This is done for me by CodeCrafters. It helps save a lot of time.

    • sarupbanskota 8 days ago


      One of the things we also hear frequently is: "I don't know what to build"

  • automatoney 8 days ago

    They're not "experienced engineers" but I could see this being useful at the new grad/early career level - where people can code (and leetcode) but there's maybe a need for a more guided class-like experience, especially when it comes to breaking down tasks and working on a larger piece of software.

    • sarupbanskota 8 days ago

      Good assessment, lines up quite accurately with what we're seeing. In our post, when we said "experienced engineers", we meant more "folks with programming experience" and less "pro" users :) We've updated the post.

      When we first started out, we didn't pay any attention to guidance at all, and instead focused entirely on the "challenge" aspect. At that time, it was less common for early career engineers to try out the product.

      We've evolved a bit since, and now it's common for us to also see early career professionals, support engineers at devtool companies, bootcamp grads, etc. From time to time, we come across Engineering Managers who'll do our modules as a way to "stay in touch" with programming (and picking up a new language they'd been itching to learn — e.g Rust).

      We're probably not suitable for someone new to programming, but otherwise all other levels are welcome and find value.

debarshri 8 days ago

I think a bigger value I see with your product is replacing leetcode challenges with something like this. We often give take home assignments to our potential candidates and this would be a great fit, if the platform had features around code evaluation, ephemeral environment with seeded data that would be great. I think that is quite a big market too.

  • winphone1974 8 days ago

    Experienced devs won't bother with your LC exercises but you now want them to implement SQLite or redis? Good luck with your recruiting!

  • sarupbanskota 8 days ago

    Good insight, we've been suggested that using CodeCrafters for onboarding engineers increases your overall talent pool (hire language agnostically, then internally train engineers in your target language).

    In the absence of leetcode-style challenges, what do your current take-home assignments look like? Do they test for skills specific to your domain, or are they agnostic?

    • debarshri 8 days ago

      Key thing we look for in a candidate is the ability to solve real world problem. We are an early stage startup, so most of the people we hire has to a broad spectrum of knowledge which I think is hard to capture with leetcode. Ideally we would like to capture their networking skills, programming skills, operational skill, understanding computer science basics etc. I think we would definitely pay subscription for a service like this as lot of grunt work is currently is done by us.

jamestimmins 8 days ago

This looks really awesome, and as someone who loves reading source code (and works in OSS full time), this is my ideal way to learn.

The price seems sensible as long as the quality is high. The question I'd want answered before asking my employer to pay for it is how complex it can get. There's certainly value in a Redis that takes 3 hours to build, but there's a lot more value in the 30-50 hour version where you have to think through design tradeoffs and dealing with hard edge cases. It's the more complex version that I'd ask for my employer to pay $80/month for.

For context, I've been in industry for 8 years and work on the Airflow OSS project as my day job.

  • sarupbanskota 8 days ago

    Thanks James! We're just getting started, and the current thinking is that we'll add depth to our courses along different "branches". e.g after you've been through the basic stages of Redis, you can continue along a path to dive deeper within the persistence aspects of Redis, or the networking aspects.

    You can preview the current stages for each of our courses here: You can do a trial to get a feel for the learning experience. If you find that the current stages aren't at the complexity level you're looking for, you should keep an eye out for future updates (would also love to hear what other stages / branches you'd suggest for our courses)

gbersac 8 days ago

Since most developers started programming because they dreamed of becoming a game developer, you should create a course to create a game engine by yourself. It sure would gain a lot of success.

  • sarupbanskota 8 days ago

    Great suggestion! I'd take that course :-D

bertylicious 7 days ago

Congrats on the launch!

I've finished three of the challenges so far and I can highly recommend it. They make it very easy to get started and the automated tests are just super slick.

It's just such a good learning platform where you'll have to figure out stuff on your own, yet Paul was always very helpful on their discord in case I got stuck or hit technical issues.

Looking forward to the grep challenge!

automatoney 8 days ago

How long does it take to develop new challenges with support across all of the languages you have? And how scalable is that process? This looks super cool, and a fun way to spend some of an education stipend (that for me mostly goes unused) but I'm not sure how many times I'd want to re-implement git in additional languages.

At the moment it looks like there's git, redis, docker and sqlite as challenges (that have varying support for different languages) with a regex parser, http server, shell, bittorrent client, and react up as future candidates, if I've read the site correctly.

  • sarupbanskota 8 days ago

    You're read correctly about the challenges available. A new one ships next week!

    Today it takes us ~2 weeks to build the "core" parts of a challenge (planning, stage instructions, tester etc). From then on, the changes are incremental (adding support for more languages, better hints/instructions, getting experts to provide feedback on solutions etc).

    Hard to say how much time the incremental changes take because they’re done over a span of months, but it’s definitely work. At times our community pitches in to add language support:

    Paul also did a series of tweets when we were building the SQLite challenge if you’d like to see what the challenge-building process is like:

nanomonkey 8 days ago

This looks great!

What languages are supported? Are the tests language agnostic, or is the coursework specific to a subset of languages? I see reference to Rust, Go, Python and JS...but am unsure if this would be useful for something like Clojure, where I can produce JS, JVM or compiled code, that could be tested against, but wouldn't expect an imperative pseudo-code explanation of an algorithm to be helpful for explaining a functional solution.

  • sarupbanskota 8 days ago

    Thanks for the great question. We support ~14 languages at the moment and are working on adding more. You can visit our tracks page ( to see the courses available against each language.

    As a 2-person team, we're prioritising making a complete experience for Go, Python & JS for starters (our most popular languages).

    So far, our tests are language agnostic. Our testers are written in Go (they’re open source, example: The testers interact with user code by testing for observable behaviour - exit codes, stdout/stderr, files written etc.

    Although the testers are language-agnostic, a lot of the educational “content” is language-specific. We emit language-specific hints in stages where appropriate, and have expert solutions that are language-specific. A lot of this is new, so we might not have coverage across all challenges - this will improve over time.

    Does that help explain our setup a little better?

    • sn9 5 days ago

      Looking at your tracks page, is there a part of your site that explains what the differences are between Beta and non-Beta Tracks as well as what the stage counts signify? Or maybe just something in the FAQ that explains what your concept of a "stage" is in detail would be useful.

      For example, why is Rust in Beta while Go isn't despite having the same number of stages? I'm assuming the determination is made based on something else, but do you go into what that is?

      Rust is probably the language I'm most interested in using your site to learn and it currently has as many stages completed as Go (according to your tracks page), but you didn't mention it in your list of priority languages. Are stages user-contributed? Is that why Rust has more stages than Python or JS?

      Is there anything that would stop a user from using any language without major impediments or hurdles?

      Sorry for all the questions. I've just been really excited about seeing this platform develop!

      • sarupbanskota 4 days ago

        Great questions. If you see that a language track has a particular course available (e.g Docker on Rust track), it means it's good to go. There are no hurdles to going through the stages. When a track is marked as beta, it typically means that the solutions & explanations for some stages on that language are coming soon — or that it doesn't have all the 4 courses supported in that language yet.

        You might also enjoy checking out our OSS repo where any one can contribute language support. We prioritise supporting different languages based on user demand, but if you want to get your hands on a particular language right away, we accept PRs from the community.

        • sn9 4 days ago

          Thank you! This was very helpful!

rsweeney21 8 days ago

This looks awesome! Since moving to a smaller company, I miss being able to learn new things from more experienced engineers.

This also satisfies the itch to learn a new language by building something really interesting, and not just another Todo app.

  • sarupbanskota 8 days ago

    Thanks for the kind words! We kind of stumbled into the language learning insight.

    In the early days, we'd find folks sign up to do CodeCrafters because they had a "niche" job that involved knowing Redis or Docker internals (typically platform engineers at infra companies).

    However, we saw that there were a set of engineers that would do all of our courses, then do redo some of them in different languages. We initially thought that to be strange (why re-learn the internals once you've already done it) — and they clarified they were in fact looking to pick up a new language.

    Possibly my favorite customer call till date is a final year college student who didn't know what Redis was, had experience with C but none in Java — and within a few weeks times, he had learnt about what Redis was (and a bunch of backend concepts while he was at it), then it's internals, while learning Java at the same time

    • cercatrova 8 days ago

      Have you heard of Rustlings? It's a series of exercises for Rust that teach you the language as you do them. I just finished that recently and this reminds me of that, except more complex. Now that I've done Rustlings which is for beginners, I have a high interest in doing something like CodeCrafters.

      Perhaps for other languages which don't have a Rustlings equivalent, maybe you could add something like that for beginners as well as your more complex challenges. If I were to rewrite Redis to learn Rust, that probably would have been too complicated a project, but having a guided beginner course before the complex projects makes more sense to me.

      • sarupbanskota 8 days ago

        Rustlings for other languages seems like a really good idea, thanks! Were you doing Rustlings as part of onboarding at a new job / project, or as a hobby?

        • cercatrova 8 days ago

          As a hobby, I do full stack in JS mainly for work. You could take a look at as well, although some of their questions are more like Leetcode rather than teaching the language which is not the way to go I think.

          • sarupbanskota 7 days ago

            indeed, Exercism is a good resource — but our approaches are pretty different

nojvek 8 days ago

This is neat. Although I’m not a huge fan of subscription payments where you lose access once you stop paying.

I’d happily pay a few hundred dollars and have access to it years later.

Like the way we bought books and software CDs a while back. You buy, you own it.

Not everything needs to be a subscription unless it is a truly recurring service where every month there is value add.

  • sarupbanskota 8 days ago

    Agreed. Who likes "talk to sales" :)

    We have a pricing page —, and do have it linked on our menu and footer. Would that help?

    • rohitpaulk 7 days ago

      Quick note here: the original comment mentioned that our pricing page was hard to find, that's what Sarup's reply was addressing. Looks like it was later amended to talk about subscription payments.

      Re: subscription payments, only our Monthly plan is a recurring subscription, the 3 Months / 1 Year plans are one-time payments. A "lifetime access" plan isn't sustainable for us at the moment since we need to keep servers (including test runners) up and running.

burlesona 7 days ago

This looks phenomenal. Next time I have a break from work I would love to work through one of your courses. Thanks for sharing, and best of luck building your business!

alangou 8 days ago

Pricing seems fine, that’s a drop in the bucket for developer education—my learning stipend at my first tech job (this was pre-IPO) was over $1000/year. Investing in quality education is a price willingly and even eagerly paid by those who want to grow. Bet a large swathe of immigrant parents would approve, too.

zasdffaa 7 days ago

This looks really good but "Build your own ... SQLite" is a bit amazing, does that mean a full SQL interpreter right down to the B-trees? That is a looot of work, too much really. Unless you pull stuff off the shelf like apache calcite perhaps (never used it).

  • bertylicious 7 days ago

    I did the SQLite challenge in two languages and it's a very small subset of SQL. For instance it's sufficient if you're implementation of WHERE only accepts equals expressions with a column name on the left and a string value on the right.

    But the great thing about their challenges is that they have you build some kind of sandbox that you can experiment on top of and try expand it with more features.

  • pyhtel 7 days ago

    From the course: "In this challenge, you'll build a barebones SQLite implementation that supports basic SQL queries like SELECT. Along the way you'll learn about SQLite's file format, how indexed data is stored in B-trees and more."

    So yes for B-trees, but it seems to end with SELECT and a basic WHRERE query, no joins or anything like that

jjallen 8 days ago

I was excited to try the Clojure track, as I have been planning on learning Clojure soon but couldn't get it to work. I attempted to start the free trial a few times and was redirected to the Go or Redis track repeatedly. So couldn't try it really.

  • sarupbanskota 8 days ago

    I think we know what happened there (our message for the "close" button on the trial modal was confusing), and we've fixed it.

    Please give it a try once more?

    • jjallen 7 days ago

      Nope, still happening. Can't start the Clojure track. It sort of circularly redirects back to start a free trial and can't actually start the track.

      • rohitpaulk 7 days ago

        Haven't been able to gather much from our logs - I've emailed you (used the email on your HN profile), will get to the bottom of this!

iamjk 8 days ago

The concept seems cool and the price seems reasonable if the quality is high. But how does this translate to value for subscribers? It seems like the company is treating curation as the core value prop but I see it as more of a means to some end.

aliasxneo 8 days ago

Is this targeted at companies? Sounds right up my alley but the pricing is a bit steep.

  • sarupbanskota 8 days ago

    We're targeting engineers with access to company-provided learning / professional-development budgets. From speaking with customers, we're seeing companies offer employees between $500-$5000 in annual allowances.

    Which course intrigues you most? :)

AlchemistCamp 8 days ago

It’s generally just the largest and highest prestige tech companies that pay for $80/month worth of training for their employees. I suspect the price is a barrier not only for the median dev, but even for the median American dev. It’s likely a bit of a barrier even for the 20th percentile dev living in the US.

In other words, if the quality of this offering is excellent, it will be a powerful example of the Matthew Effect. The best compensated 5-10% of mid-level devs will pull further ahead.

I can definitely see going for the corporate training budgets as an appealing business model, though.

  • kodah 8 days ago

    Yeah, I'd love to use this service. Some of the challenges are really cool sounding. That said, I don't even pay $80/m for my IDE, and that's a critical tool I can't go without at this point.

    One data point I learned being a programmer in the American South was that companies generally did not pay out for things like conferences, education (aside from college) etc... If you want to serve those folks (and I suspect there's a lot of them!) then the price point might need to be different.

mandeepj 8 days ago

You've appealed to me. I'm continuously learning to become better. My next self goal is to add sharding and replication into SQLite.

Question - Can you share an example with me - how would you teach someone to use OOPS (inheritance/composition), design patterns, and SOLID principles - to better structure code for maintainability, enhancements?

One of my personal philosophies is to write less code, but still achieve as much if not more.

  • rohitpaulk 7 days ago

    Our general approach to this is "Show, don't tell".

    We feel the ideal way to learn design patterns and SOLID principles isn't to read about them or be told that they're good. It's to make the mistakes yourself and then see how things could be cleaner had you used one of those techniques. Much like code review. You first do things your way, then a reviewer points out how this could be better if you did XYZ instead.

    In our product we cover this by offering "Expert Solutions" for each stage. You'll see a code diff (compared to the previous solution), an explanation for that code diff (_why_ were things done this way, what were other alternate approaches), and where possible we even offer a source walkthroughs of the official codebase you're re-creating (the Redis source code, for example).

    We have previews of all these features in the demo video: You can see the solutions in-app without starting a trial, just navigate to the Redis course, click on a stage and then click on "View Solution". And here's an example of a source walkthrough:

nindalf 8 days ago

I signed up for the year subscription.

But that's not actually what I want. I want a one-time payment because I know I'm terrible with these recurring subscriptions. I know in a year I'm going to be like "damn, I didn't cancel that??"

Could you please implement non-recurring purchases? Or at least, enable it for users who ask.

Speaking of which, could you make my purchase non-recurring? My username is the same as HN.

  • sarupbanskota 8 days ago

    Thanks for signing up, excited to see what you build! Our quarterly and annual plans are both one-time, so you should be good! I also verified your details on Stripe and can confirm this.

    • nindalf 8 days ago

      I misinterpreted what Stripe was telling me. It said something like "you're agreeing to allow Codecrafters to charge you recurring fees". I realise now it was just the charge after the 3 day trial.

throwoutway 7 days ago

The “trusted by engineers at” massive list of Top companies seems very suspect and fishy for a “Launch HN”.

It feels dishonest. Where is the proof of that?

VitalyAnkh 7 days ago

How is it compared to JetBrains' ? They seems to be competitive products.

PS. HyperSkill's pricing is also more competitive. They offer tons of tracks containing hundreds of coding projects at the price of 240$ per year, while CodeCrafers' charge is 790$ per year.

  • rohitpaulk 7 days ago

    We last looked at JetBrains academy ~6 months ago and at the time it mostly had beginner-level content. Looks like they've got some advanced content now, like this one:

    I'd consider them a competitor, and I like their approach - hands-on project-based learning with automated tests to guide your implementation.

    I think the primary difference (aside from their content being slightly skewed towards beginners and the limited languages on offer) is that our format involves re-creating devtools from scratch.

jb3689 8 days ago

Why do I need to authorize you with my GH in order to see your track's contents? I would recommend opening the curriculum so a potential buyer can preview whether the product is right for them

I think this is an interesting idea. I find it hard to justify paying $80/mo for an extended period of time for just Git, Docker, Redis, and SQLite clones though. You'd need a plethora of content to have me stay for more than a month to simply power through it all. $80 is even a lot for just those considering there are easy to find tutorials for these. The real selling point is having a lot of modules colocated and I am merely paying for convenience and manicured delivery rather than novelty

  • sarupbanskota 7 days ago

    Thanks for your recommendation! You're right, us developers are naturally curious people and we need to feed that curiosity.

    We're collecting interest on some upcoming challenges here, with a new one launching next week!

thewebcount 8 days ago

This is a really cool idea! I may check this out.

One concern I have is that it looks like you're having people rebuild Unix command line tools. Tools which have a tendency to look at the world in one particular way. Unfortunately, that way is not very good to users. I'm really concerned about how many different programming courses, from boot camps to graduate level CS courses, push this narrow view of programming. I'd like to see some more variety in the ways that programming is taught. Have you considered bringing in projects that have graphical user interfaces or that use different paradigms than those espoused by Unix?

  • sarupbanskota 8 days ago

    Thanks for your question. If I understand right, you mean for example projects that involve a frontend web component?

    That's on the cards (e.g we have Build your own React on the pipeline). There are unique challenges to making that experience predictable, so we're focusing on the "console-based" projects for now. There's also often a "subjective" nature when reviewing/testing UI so we need to think through the ideal feedback workflow for courses with frontend components.

    That said, I do wanna highlight that these courses do cover a lot of ground. I look forward to your feedback once you manage to get your hands on it!

    • thewebcount 4 days ago

      > If I understand right, you mean for example projects that involve a frontend web component?

      Ack! No! I mean native applications written in styles other than the prevailing Unix way of writing native applications. It can be any other form, just something that's well written but not using Unix-isms.

rayman22201 8 days ago

I was pleasantly surprised to see support for Nim as a task language! very cool! Particularly considering your target market of developers with corporate education budgets, I expected a much smaller set of mainstream languages.

abe94 8 days ago

Looks great, honestly would have loved something like this back in university!

enviclash 6 days ago

I Like your line of thinking a lot, but miss my area of work: scientific programming. You would make money with people willing to move to Julia! Also "seasoned" is a descriptor for someone that likely does not need your product, but right now I cannot think of a better synonym.

  • sarupbanskota 6 days ago

    Sorry, I missed responding to this comment sooner. If you remember at all, where did you notice the usage of seasoned? We used to say that in the past (and still think that's relevant), but just wondering if we forgot to update copy somewhere.

    Did you mean to say we should serve the audience that wants to learn Julia?

    • enviclash 6 days ago

      I saw the term seasoned in the website. I think Julia is a business opportunity, I'd pay for it!

duderoso 6 days ago

It would be nice if companies offered free trials without requiring a credit card number. There's really no reason to grab this other than to hope someone forgets to cancel the trial after 3 days and you catch a quick autopay b/c of it.

joenot443 7 days ago

Love this idea. I'll give it a shot if I ever need to learn Redis. I'm a FAANG iOS dev who's guided a few people from 0 to dev job, so I was curious to see if you had a Swift track but it looks like not yet. Would love to hear if that's on the roadmap or not!

  • sarupbanskota 6 days ago

    We don't currently have Swift yet (not a highly requested language yet) but I just wanted to highlight that our language support mechanism is actually OSS.

    Also, I wouldn't actually say we're the best resource to learn to use Redis (the Redis docs are probably more ideal) — we focus on helping you create your own version of Redis from scratch, so that you understand the fundamental pieces behind building a project like Redis. Same for Docker, Git, etc.

    We do have a lot of users that actually discover Redis on our site, and do the learning Redis + building it out in parallel, often times while also simultaneously learning a new language!

metadaemon 8 days ago

Getting a Rails "The page you were looking for doesn't exist." When trying to login with Github currently.

  • sarupbanskota 8 days ago

    Thank you for flagging, looks like you hit an edge case. We've pushed a fix, please try again?

intelVISA 6 days ago

Great idea, any plans for more complex creations? Git/Redis/Docker are excellent 101s but it'd be cool to see this solid format applied to more technically challenging projects. Though I appreciate it's targeting juniors.

  • sarupbanskota 6 days ago

    Next week a new course is dropping (Build your own grep — which involves building a Regex Engine). Some more upcoming ideas are here:

    What would some examples of projects that'd be suitable for your skill level?

    • intelVISA 5 days ago

      The grep one sounds pretty fun actually, it's less about "skill" imo and more that I'd love to see your concept expanded to some of the less travelled parts of programming. Runtime linker/loaders, compilers, display drivers, VMs, VMMs, symbolic execution stuff. Maybe a build your own eBPF course or clangd?

yewenjie 8 days ago

Sounds cool but without being able to actually try a full course out, there is no way to know if I'll enjoy it.

  • gbersac 8 days ago

    Maybe they should make one course free to use like create your own git and access to other would be payed.

  • sarupbanskota 8 days ago

    Agreed, learning styles are different for everyone, and it's important to be able to try things out. We've added a 3-day trial for you to experience what it's like — looking forward to seeing you on the leaderboard!

    • EddySchauHai 8 days ago

      The 3-day trial is only on $700 annual memberships though! I'd very much try this out on a 3-day trial if it's then only $70 a month afterwards. $700 in one go means I have to ask the wife and you'll miss out on a sale there ;)

      • sarupbanskota 8 days ago

        Argh, I'm so sorry, our pricing page should have been clearer (fixed now).

        The trial is available on all plans, so no need to ask the wife!

        • EddySchauHai 8 days ago

          Haha cool, then you have a sale later today :)

    • samstave 8 days ago

      What is you're "Hello, world... again" project? for the trial?

      Maybe you have a small trial project for each language which you support, allowing for a quick evaluation with real results?

      • sarupbanskota 8 days ago

        I think doing the first 2-3 stages of any course is usually a good enough to understand the core for the learning experience. The later stages tend to get more involved (e.g the last stage of Git & SQLite are rather tricky for most).

        Good suggestion regarding having trial projects for every language, we'll consider that.

  • aaur0 8 days ago

    I felt the same too. A 3-day trial is not enough to try out complex software.

rdelpret 6 days ago

Do you think you could sell this to enterprises to help onboard employees?

  • sarupbanskota 6 days ago

    That is in fact one of the core use-cases. Hiring language agnostically increases your talent pool, especially among early career engineers.

    We’re seeing interest in adopting CodeCrafters as the on-boarding & continuous up-skilling product :)

    Curious why you asked, do you see a use-case at work? Feel free to email me too (

rafikicoln 7 days ago

Looks super cool but I agree that the price point is high. Maybe not in the US/Canada, but I live in Mexico and it’s just not something that I can spend the money on even with a learning budget that usually only cover some % of the course.

  • sarupbanskota 7 days ago

    Thank you for your appreciation! I've touched upon the pricing topic briefly here Would you mind reaching out to me with how your %-based learning budget works? It'll be a learning experience for me, and perhaps we can find ways to help you out.

wallscratch 7 days ago

This is super cool, and helps fill a hole I had always been frustrated by during my own self-education.

I am curious to know approximately how many hours the courses take, and if you can share anything about which future courses you have in the works?

  • sarupbanskota 7 days ago

    We see a pretty broad spectrum, also because different people do the project in different "modes". Some want to breeze through as fast as possible, others want to "audit", some want to do a thorough deep dive.

    I've seen folks spend weeks deep-diving on courses spending an hour or so per day (writing code, refactoring it, going through the official sources and studying them, etc). Part of the fun is reading the official docs, and that can be a treasure hunt at times.

    You can see for indication of upcoming course ideas here:

    Build your own Grep launches next week!

tzarko 8 days ago

Love the concept, and could see myself really benefitting from this as a self-taught developer.

That said, I agree with most everyone's assessment that the price-point is a bit too high.

Is providing different pricing schemes for companies/hobbyists/students something you're looking into?

  • sarupbanskota 8 days ago

    Thanks for the kind words, and I appreciate your interest!

    Our long-term intention is indeed to be able to help anyone who's interested to learn and grow regardless of their financial situation.

    We also realise that not everyone has access to a learning budget. As an early-stage company, our pricing reflects what our current target audience is comfortable paying, and is also a test for long-term sustainability. Over time, we hope to be able to overcome pricing-related hurdles and enable broader access.

    • kp25 6 days ago

      Having parity pricing option might help developers from lower income countries like India.

theylovezmw 8 days ago

Congrats on the launch! I've been using CodeCrafters for a year now and am a huge fan of the product. One problem I had was finding proper documentation/guidance for when I got blocked. Beyond the Discord are there any plans to unblock users?

  • sarupbanskota 8 days ago

    Thank you for your kind words!

    Until a few months back, we were focused solely on the "challenge" aspect of the product. Based on customer feedback, we've been making new features available that offer more guidance when you're stuck — a 2min preview is available on this demo video —

    1. We show you expert-vetted code approaches for different languages in each stage, and also explain the interesting / difficult parts in the approach.

    2. For further inspiration & knowledge, we now also include source walkthroughs for many of the stages, which link to how the official implementation does it. Here's one for Redis, which explains how the PING command is implemented (stage 2 of Redis).

    • mhdhn 7 days ago

      A little micro-suggestion on videos: record the narration separately from actually doing the computer work. I.e., do NOT record the keyboard clacking. It's super annoying to some people. Like me. Thanks.

      • sarupbanskota 7 days ago

        Thanks so much for flagging! Sorry the keyboard sounds were annoying — I almost thought that was the highlight of the video :)

      • rohitpaulk 7 days ago

        Lots to improve on the videos front - thanks for the suggestion!

    • theylovezmw 8 days ago

      That look's perfect, great job!

yardie 8 days ago

This is awesome but the only way I would be able to afford it is if my company paid for it. I'd have to make a case for prof. dev. anyway to add some sort of certification to it? HR really, really likes certificates, degrees, etc. for PD.

  • sarupbanskota 8 days ago

    We do have user pages.

    Here's an example of a real user's page, who's in-progress:

    And some examples of "completed" users:

    Do these help? Please feel free to drop me a brief note ( and I'll be happy to help you write a compelling case for PD and also explore certificates.

    • yardie 8 days ago

      I'll ask and see.

      I just renewed my CPR/First Aid they took a photo and added it to my profile with the expiration date. And it was my name and the date literally scribbled on cardstock.

      It might be pedant but even a simple PDF with name, date, and subject taken would probably satisfy HR. They are rigidly loose like that.

      • sarupbanskota 8 days ago

        Gotcha, I got this. I'm happy to spend some time on Figma hand-crafting a super slick certificate for you. Just reach out and ask!

throwaway2__22 8 days ago

If only the market cared about this and not soley leetcode.

Looks cool though, I will likely try this out.

Mumps 7 days ago

congrats on the launch!

I'll definitely be trying the rust course over a free weekend.

Is there a way to opt out of the leaderboard, hide it? This sort of 'challenge-ification' is strongly not for me.

  • sarupbanskota 7 days ago

    We don't have an opt-out yet, but we'll certainly consider. Curious — why isn't the 'challenge-ification' desirable to you? It feels pressurising? Please feel free to email me if you prefer to keep it private!

    • Mumps 3 days ago

      (sorry for the slow reponse. lack of notifications from HN)

      > It feels pressuring?

      Exactly. These sorts of things always end up demoralizing to me. I'll never be on there, there's always a bigger kid on the playground - but having it shoved in my face daily isn't a positive reminder. I can't commit the time, money, intelligence, et c. Let me go at my own pace and not feel bad for being slow :)

timou 7 days ago

Congrats, Sarup and Paul on the launch of CodeCrafters! :)

GordonS 8 days ago

I love the idea!

The pricing, not so much. When I think about what that money gets elsewhere (e.g. Pluralsight), IMHO your pricing is 2x what it needs to be.

ismailegilmez 7 days ago

This looks really promising especially for companies which want to invest in training their developers!

  • sarupbanskota 7 days ago

    We love playing a role in helping companies that are invested in the growth of their developers! Since this launch, we've been getting inbound from developers keen to work with us on getting a pilot with their companies.

    We're excited to be help developers get a CodeCrafters subscription through their companies, so if that applies to you, please reach out!

toyg 8 days ago

Server not found. Hugged to death? Hacked?

  • rohitpaulk 7 days ago

    Hugged to death, but it was brief :) Should be back up now!

    • Sakos 7 days ago

      Seems to be down again?

      edit: Oh, no. It just isn't accessible from my company's network for some reason.

      • sarupbanskota 7 days ago

        Strange - what do you see when “down”? Is there an error screen?

        • Sakos 7 days ago

          I just get a "Connection timed out" from my work's network. Works fine on my phone's mobile connection.

chronark 7 days ago

wow, I'm looking forward to trying out the redis workshow

lagrange77 7 days ago

Looks really useful!

BTW: Who did come up with this webdesign style? You see it all over the place this year. Was it Vercel?