Live data from Hacker News

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

codecrafters.io

1–10 of 207 posts

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

#1
Hey everybody, it’s Sarup and Paul, founders of CodeCrafters (https://codecrafters.io). 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 — sarup@codecrafters.io.

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?

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

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

#3

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

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? :)

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

#5
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.

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

#6
post #4

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

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!

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

#8
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.

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

#9

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.

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?

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

#10
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.

Post reply on HN