cohort_07 · enrolling now · 23 of 32 seats remaining starts jan_13_2026 12 weeks · live + recorded · weekly office hours $1,200 single · $1,800 with 1:1 mentorship cohort_07 · enrolling now · 23 of 32 seats remaining starts jan_13_2026 12 weeks · live + recorded · weekly office hours $1,200 single · $1,800 with 1:1 mentorship
// cohort_07 · jan 13 → apr 3, 2026 · 23 / 32 seats

Stop fighting the borrow checker.
// start using it.

A twelve-week, cohort-based deep-dive into advanced Rust — the parts you skip in tutorials, the parts that bite you in production. We will write a custom async runtime, a lock-free queue, and an embedded driver. Then we will profile them. Then we will break them and fix them.

Prerequisites: 6+ months of production Rust. You should be comfortable with Result, ?, impl Trait, and at least one previous project. Time: ~10 hr/week — two live sessions, code, office hours.
~/deep-craft/lifetimes — week 02 — vela@rust
a real example from week 02 — co-variance gotcha
cargo run --example variance

// this compiles fine, but it shouldn't
fn extend_lifetime<'short>(s: &'short str)
  -> &'static str {
    unsafe { std::mem::transmute(s) } // 💥
}

let bad: &'static str = {
  let tmp = "borrowed".to_string();
  extend_lifetime(&tmp)
};

use after free at /examples/variance.rs:14
// week 02 teaches you why miri catches this
// and how to refactor without unsafe at all

cargo +nightly miri run
test result: FAILED · 1 passed · 1 panicked
12 weekscohort length · jan 13 → apr 3
32 seatscapped per cohort · 23 left for cohort_07
~10 hrsweekly time commitment
$1,200tuition · or $1,800 + 1:1 mentor
what you build

Three production-grade artifacts
that ship with your name on them.

By the end of week 12, you will have written, profiled, and shipped three open-source Rust crates — each large enough to merit a real README, each small enough to actually finish. Every graduate's repo lives on the public cohort wall.
// artifact_01 / weeks 01–04

kov — a single-threaded async runtime

Build a working executor from scratch — futures, wakers, a task queue, an I/O reactor backed by epoll/kqueue. Roughly 1,200 lines. Replaces tokio for a class of single-thread workloads.

// stackcore::task · mio · slab · pin-project · loom
// artifact_02 / weeks 05–08

flume-lock — a lock-free MPSC queue

A multi-producer, single-consumer queue using only atomic operations. We benchmark against crossbeam, document the memory ordering choices, and prove correctness with loom.

// stackstd::sync::atomic · loom · criterion · mem_replace
// artifact_03 / weeks 09–12

esp-blink — a no_std HAL driver

Write a hardware abstraction layer for an ESP32-C3 dev board. no_std, no allocator. We register-poke a UART driver, build an embedded-hal trait impl, and ship it to crates.io.

// stackno_std · embedded-hal · svd2rust · probe-rs · espflash
curriculum / 12 weeks

Twelve weeks. Twelve topics. No filler.

See the full week-by-week breakdown →
// week01

Lifetimes from first principles

Variance, sub-typing, HRTB, '_ elision rules, why 'static isn't what you think. We refactor a real crate.
// dropsjan 13+ live Q&A
// week02

The unsafe Rust contract

When unsafe is justified, when it isn't. UnsafeCell, NonNull, miri, the soundness rules nobody told you about.
// dropsjan 20+ miri lab
// week03

Async runtimes — wakers & tasks

Building Future by hand, the waker contract, why poll returns Poll, executor design tradeoffs.
// dropsjan 27+ build kov
// week04

Pin, structural pinning, and self-referential structs

When you need Pin<Box<T>>, when you don't, the pin-project macro, and writing a self-referential type by hand.
// dropsfeb 03+ kov ships
// week05

Atomics & memory ordering

Acquire, Release, AcqRel, SeqCst — when each one buys you what. Reading the C++11 memory model. Cache lines.
// dropsfeb 10+ guest: niko
// week06

Lock-free data structures

CAS loops, ABA, hazard pointers, epoch-based reclamation. We design the MPSC queue we'll ship in week 8.
// dropsfeb 17+ paper club
// week07

Loom & concurrent testing

How loom permutes thread interleavings, how to set it up, how to interpret a failed loom test, mocking std::sync.
// dropsfeb 24+ live debug
// week08

Performance & profiling

criterion, perf, flamegraph, samply. Reading assembly. When inlining matters. Cache-line awareness in real code.
// dropsmar 03+ flume-lock ships
// week09

no_std & embedded

Building without an allocator, panic handlers, target triples, the embedded-hal traits. We pick the ESP32-C3.
// dropsmar 10+ ship boards
// week10

Macros & proc-macros

macro_rules! deeply, then proc-macros, syn, quote, span hygiene. We write a small derive macro for our HAL.
// dropsmar 17+ macro lab
// week11

FFI, bindgen, and unsafe-at-the-boundary

Calling C, being called by C, callbacks, lifetime stories at the FFI boundary, ABI compatibility, soundness debt.
// dropsmar 24+ guest: stjepan
// week12

Shipping a crate to crates.io

Cargo metadata, semver, docs.rs config, CI matrices, MSRV, release engineering. We publish all 32 cohort artifacts.
// dropsmar 31+ all ship!
vela_chen
// vela@deep-craftcompiler engineer, ex-mozilla, ex-cloudflare
your instructor

Vela Chen, 9 years on rustc.

Vela is a former Rust compiler engineer at Mozilla (2017–22) and edge-platform tech lead at Cloudflare Workers (2022–25). She has authored 412 commits to rust-lang/rust, including the original Pin stabilization design notes and the bulk of the trait-resolver refactor that landed in 1.65.

She has taught Rust full-time since 2025 — first as a paid faculty member at the Recurse Center, now independently through Your Business. Cohort_06 was the sixth offering of this program; 178 graduates have shipped crates that now collectively have 4.2M downloads on crates.io.

412commits to rust-lang/rust
9 yrsfull-time on rustc + workers runtime
178graduates across cohorts 01–06
Read Vela's full bio & talks →
free preview · lesson_01

What does "deep" mean here?

A two-minute taste of the mood. Below is a refactor we walk through in the first 30 minutes of week 01 — a real lifetime story most Rust developers have hit and waved away. The full lesson is free; no email required.
// before · 14 lines · won't compilerust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fn longest<'a>(
    x: &'a str,
    y: &'a str,
) -> &'a str {
    if x.len() > y.len() { x } else { y }
}

fn main() {
    let r;
    {
        let tmp = String::from("hi");
        r = longest("hello", &tmp);
    } // tmp dropped here
    println!("{}", r); // E0597
}
// after · same shape · works at runtimerust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fn longest<'a, 'b: 'a>(
    x: &'a str,
    y: &'b str,
) -> &'a str {
    if x.len() > y.len() { x } else { y }
}

// or — better — change the call site:
fn main() {
    let tmp = String::from("hi");
    let r = longest("hello", &tmp);
    println!("{}", r); // ✓
}
// what's the real lesson?   The "fix" most tutorials show — relaxing lifetime bounds to 'a, 'b: 'a — papers over a deeper question: should this function signature exist at all? In week 01 we walk through three alternative signatures, why each is worse or better, and the variance rules that actually govern the choice. Watch the full lesson (free, no signup) →
graduates / cohort_06

From people who sat through it.

I have been writing Rust professionally for four years and I learned more about Pin in week 04 than I had in the previous 800 hours of writing Rust. The lock-free queue alone was worth the tuition.

Marit Andersson// senior engineer · ferrous systems · cohort_06

Vela's pacing is brutal in the best way. There is no time wasted on syntax review. I came in with two years of Rust and left writing macros without consulting cargo expand.

Devraj Patel// platform eng · stripe · cohort_05

I do not write embedded code professionally and I now have an esp-blink-style HAL on crates.io with 4,200 downloads. That repo got me three interviews and the job I now hold.

Sasha Lin// firmware eng · espressif · cohort_04
enrollment · cohort_07

Two ways
to enroll.

The single-track tuition gets you everything in the cohort — twelve weeks of live sessions, all recordings, two office hours per week, three artifact projects, and the cohort Slack for life.

The 1:1 mentorship track adds a weekly hour with Vela for code review on your artifact PRs. We cap mentorship at 12 seats per cohort and they go fast — cohort_07 has 4 left.

// cohort_07 · jan 13 → apr 3 · 23 of 32 seats Refundable until end of week 02. Sliding-scale scholarships available — see enroll page. Application is one form, no interview.
tuition_single
$1,200// flat

Twelve weeks of cohort access. Everything you need to ship the three artifacts and finish.

  • 24 live sessions (recorded)
  • 2 office-hour blocks/week
  • Cohort Slack — lifetime access
  • 3 artifact projects + reviews
  • Refundable until end of week 02
enroll · single  →
tuition_mentor · 4 left
$1,800// + weekly 1:1

Everything in single, plus one private 60-minute call with Vela each week for code review on your artifacts.

  • Everything in single tier
  • + weekly 1:1 with Vela (12 hrs total)
  • + private PR review on every artifact
  • + post-cohort check-in 90 days out
  • Capped at 12 seats per cohort
enroll · mentor  →