Advanced Software Courses for Curious Tinkerers

Master software engineering through playful hands-on exploration and deep scientific and philosophical insight. Discover, create and learn for learning's sake.

Currently Running

Software Design By Example in Rust

Learn software design principles by building real-world tools in Rust. Each project illuminates timeless design patterns and engineering trade-offs. You'll gain deep insights into how software tools work while mastering Rust's powerful type system and memory safety guarantees.

What you'll build:

A collection of essential developer tools including a build system, package manager, test framework, debugger, and more—each built from scratch to deeply understand their design principles.

Course Format

  • Friendly people, small groups of 6
  • Weekly live classes with recordings
  • Duration: 4-week intensive or self-paced flexible

Learning Tools & Content

  • VSCode IDE Extension for interactive content
  • Learning dashboard with progress
  • Spaced repetition and memory tools

Support & Community

  • Stay accountable: weekly 1:1 with engineer coach
  • Active Discord community
  • Weekly social gaming hangouts

Unique Benefits

  • Street credentials: a GitHub portfolio & a tech blog
  • Learn latest AI tools (Warp, Cursor)
  • Travel to learning retreat in Europe (optional)

Who You Are

Our community is made up of curious minds who share these core values about learning.

Challenging

Build hard stuff, learn deeply

Learn from content authored by the best, focused on first-principles thinking like experts and inventors in the field. We believe you're here to challenge yourself, knowing that true understanding comes from wrestling with difficult concepts.

Creative

Tinker your way to understanding

The best way to learn is by building. Inspired by constructionist learning, we encourage playful experimentation and hands-on creation. As Richard Feynman said, "What I cannot create, I cannot understand".

Curious

Learn because you wonder

Curiosity, not curriculum. Our courses grow from questions that spark wonder—not trending job skills and standardized texts, but timeless methods and deep insights. If it lights you up inside, we're going there. Embrace the explorer in you.

Learning Methods

Our learning philosophy appreciates human needs and motivations, while incorporating the latest learning techniques.

Social Connection

Find your learning tribe

Meet a community of learners like you—curious minds eager to understand deeply and build meaningfully. Share insights, collaborate on projects, and even go on retreats together!

Scientific Learning IDE

AI to make you smarter

Explorable, our in-house pedagogic IDE integrates scientific learning techniques like spaced repetition and use LLMs to apply cognitive learning tools so you learn how to learn. AI to help you grow, not replace you.

Personalized Projects

Learning tailored to you

Our empathetic human-powered system adapts to your interests and learning style for personalized motivation and guidance. Get custom project suggestions, targeted feedback, and dynamic content.

Course Map

A challenging curriculum designed to build deep understanding through hands-on learning.

🌀 Advanced

Structure and Interpretation of Computer Programs

Discover the soul of programming. This legendary course uses simple tools to uncover deep truths. You'll explore how programs shape thought, how abstractions are built, and how computation itself can be a medium for expression and reasoning. A philosophical and technical journey into what it means to program.

What you'll build:

Elegant recursive programs, interpreters, evaluators, and a meta-circular Lisp interpreter—all from scratch. By the end, you'll have built a miniature universe of computation using just a few core ideas.

Computer Science Learn more →
⚙️ Advanced

The Elements of Computing Systems

Build a computer from the ground up—starting with nothing but electronic circuits. Along the way, you'll build logic gates, a CPU, an operating system, a programming language. But more than building, you'll understand: How can logic emerge from electricity? What physical laws make computation possible?

What you'll build:

A complete computer system—including a working ALU, CPU, assembler, compiler, OS, and a Tetris game—entirely from first principles.

Computer Architecture Learn more →
🛠️ Intermediate

Hamming on Engineering

Richard Hamming didn't just solve hard problems—he asked the right questions. This course distills his timeless advice on creativity, rigor, and impact. You'll learn how great engineers think, work, and choose problems worth solving—sharpening not just your skills, but your purpose.

What you'll build:

A personal engineering philosophy and system for thinking—through reflection exercises, habit design, and an "Engineering Notebook" where you track your ideas, goals, and problem-solving approaches.

Engineering Philosophy Learn more →
🦀 Intermediate

Software Design By Example in Rust

Learn software design principles by building real-world tools in Rust. From text editors to testing frameworks, each project illuminates timeless design patterns and engineering trade-offs. You'll gain deep insights into how software tools work while mastering Rust's powerful type system and memory safety guarantees.

What you'll build:

A collection of essential developer tools including a build system, package manager, test framework, debugger, and more—each built from scratch to deeply understand their design principles.

Software Design Learn more →
🌐 Advanced

Distributed Systems

How do systems think at scale? This rigorous course from MIT takes you deep into the principles that power the internet, cloud platforms, and global-scale software. You'll build mental models of concurrency, consistency, and fault tolerance—exploring how distributed systems maintain order in a chaotic world.

What you'll build:

Key components of distributed infrastructure, including a replicated key-value store, Raft consensus implementation, MapReduce framework, and fault-tolerant services that could run at planetary scale.

The Road to Mastery

Every great programmer started as a beginner. Here's a fun look at the journey from writing your first "Hello World" to accidentally creating AGI while making breakfast.

🐣
Level 0-10

Novice

First steps into coding

  • Can write code that runs (in most cases at least)
  • Understands loops, conditionals, maybe even functions
  • Debugging means 'make the red squiggles go away'
🧪
Level 11-20

Capable Coder

Building with confidence

  • Uses libraries to build apps
  • Understands basic performance tradeoffs
  • Maybe writes tests willingly?
🛠️
Level 21-35

Systems-aware Engineer

Understanding the machinery

  • Knows what syscalls, sockets, and files do
  • Thinks about memory, latency, and edge cases
  • Reads unfamiliar code with confidence
🧱
Level 36-50

Infra/Backend Specialist

Mastering complexity

  • Designs systems with observability and failure modes in mind
  • Can debug race conditions and bottlenecks
  • Thinks in tradeoffs and guarantees
🧠
Level 51-75

Architect Class

Seeing the whole picture

  • Owns large-scale systems end-to-end
  • Understands schedulers, memory models, replication lag
  • Can explain why things break and how to keep them from doing so
🧙‍♂️
Level 76-90

Sorcerer Class

Mastering the arcane

  • Crosses abstraction boundaries naturally — from silicon to API
  • Invents primitives, not just systems
  • Benchmarks confirm the intuition, not the other way around
🔥
Level 91-100

Carmack!

The final form

  • Writes GPU shaders while cooking
  • Ports Quake to VR for fun
  • Accidentally builds AGI in their garage and leaves a README

Remember: This is just for fun! Every developer's journey is unique, and there's no single path to mastery.

Start Your Journey
Student Stories

From Our Community

Hear from students who have transformed their understanding and careers through our hands-on learning approach.

Shaaz Ahmed

Shaaz Ahmed

Head of Engineering at Shuttle

"Coming from a physics background, the SICP course was magical. I loved how it connected computing to fundamental physics and philosophy in some places. The meta-circular evaluator was mindblowing."
Abhit Patil

Abhit Patil

Technical Fellow at CERN

"The Elements of Computing Systems was a fun course because I knew some electronics, and I always wanted to know how basic electronics converted into the computing that we have and the different stacks and layers."
Vladimir Smirnov

Vladimir Smirnov

Software Engineer at AWS

"I really loved the Distributed Systems course. I've learned a lot of theory about the Raft and Paxos consensus protocols, but it was great to try and implement it hands-on."
Questions & Answers

Frequently Asked Questions

Find answers to common questions about our courses, approach, and learning experience.

Still have questions?

Our team is ready to help you find the right learning path for your goals.

Contact Us
Join Our Community

Apply for Course

We curate our community carefully to keep it fun and lively. Tell us about yourself and why you'd be a great fit, and we'll reach out to you with next steps.

By applying, you agree to our Terms of Service and Privacy Policy. We'll occasionally send you account related emails.

Pay Securely Later On Acceptance
30-Day Guarantee