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

403 points by rohitpaulk ↗ HN
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 m...

208 comments

[ 4.4 ms ] story [ 275 ms ] thread
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? :)

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!
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?

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.

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 ;)
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!

Haha cool, then you have a sale later today :)
I felt the same too. A 3-day trial is not enough to try out complex software.
Maybe they should make one course free to use like create your own git and access to other would be payed.
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?

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.
Experienced devs won't bother with your LC exercises but you now want them to implement SQLite or redis? Good luck with your recruiting!
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.

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: https://github.com/codecrafters-io/languages

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: https://twitter.com/RohitPaulK/status/1421517393780740100

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.

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

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.
Agreed!

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

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.

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 — https://app.codecrafters.io/walkthroughs/redis-event-loop.

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 — https://github.com/codecrafters-io/languages.

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.
Great question. We see customers try us for both types of value (short-term means to an end, as well as long term continuous investment).

Some use-cases we've heard from customers:

1. Onboarding oneself into a new language (for experienced engineers, learning syntax is relatively straightforward — it's the idioms, standard libraries, etc that they need exposure to)

2. Team Hackathon / general engagement — Our company leaderboard and Slack app (available to teams) offers an element of "friendly challenge" and collaboration, and teams seem to enjoy that as a way to learn new skills together. Developers are naturally curious people — so more opportunities to bond over ideas, approaches, facts, are always appreciated.

3. Prepping towards roles in platform engineering — either as general skill development for confidence, or interview prep

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

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.

People who are in the field will not have time for this.
I think the reason that the charge is that high is because they are targeting big corp's training budgets

FTFY

Hmmm ... i think that could definitely be a part in this too.
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.
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.

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

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.

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?
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.
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.
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.

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

Thanks for your feedback here! While we don't offer lifetime plans currently, our quarterly and annual plans are one-time.
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.
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?
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 — https://codecrafters.io/videos/demo.

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). https://app.codecrafters.io/walkthroughs/redis-ping-command

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.
Lots to improve on the videos front - thanks for the suggestion!
Thanks so much for flagging! Sorry the keyboard sounds were annoying — I almost thought that was the highlight of the video :)
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?

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.

Having parity pricing option might help developers from lower income countries like India.
If only the market cared about this and not soley leetcode.

Looks cool though, I will likely try this out.

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.

Thanks for the great question. We support ~14 languages at the moment and are working on adding more. You can visit our tracks page (https://app.codecrafters.io/tracks) 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: https://github.com/codecrafters-io/redis-tester). 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?

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!

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. https://github.com/codecrafters-io/languages

Thank you! This was very helpful!
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?
> 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.

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

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.
That gives me an idea for a tagline! "We explain the magic"
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 — sarup@codecrafters.io, 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 :)

Thanks for clarifying! I got excited that maybe there was a corporate subscription in place.
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 :)
It seems kind of disingenuous to show companies logos, when it could just be a random employee- let alone using the phrase "trusted by".
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.
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.
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 :)

https://news.ycombinator.com/item?id=32351531

You should remove the company logos. I work at Cloudflare and this seems like false advertisement.
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.
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.

Agreed. Who likes "talk to sales" :)

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

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.

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.

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 — https://github.com/codecrafters-io/git-tester.

Others can be found on our GitHub org. https://github.com/codecrafters-io

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

"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.

I’d love to try “build your own React” in wasm (Rust or Python could be cool). Typescript would be fun too of course.
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).
Great ideas! We’ve had quite some interest in game engines, gotta look into it
Getting a Rails "The page you were looking for doesn't exist." When trying to login with Github currently.
Thank you for flagging, looks like you hit an edge case. We've pushed a fix, please try again?
(comment deleted)
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.

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

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.

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?
As a hobby, I do full stack in JS mainly for work. You could take a look at exercism.io 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.
indeed, Exercism is a good resource — but our approaches are pretty different
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.
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?

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.
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!
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?

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!

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

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.
We do have user pages.

Here's an example of a real user's page, who's in-progress: https://codecrafters.io/users/jaredpalmer

And some examples of "completed" users: https://codecrafters.io/users/eyalfoni https://codecrafters.io/users/byarr

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

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.

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!
Server not found. Hugged to death? Hacked?
Hugged to death, but it was brief :) Should be back up now!
Seems to be down again?

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

Strange - what do you see when “down”? Is there an error screen?
I just get a "Connection timed out" from my work's network. Works fine on my phone's mobile connection.