Founder's Edition — limited seats. use IQRA for $49/yr · save $119. check it out

learn to build, not just prompt

fundamentals of software engineering ;

to build a better world

a handcrafted shelf of books on systems, networks, and the runtime under your code — with virtual labs where you build, break, and ship the things you're reading.

9books
3projects
9challenges
~1,600pages worth over 211 lessons
Start Free
$
curl -X POST https://projectlighthouse.io/api/v1/projects \
  -H "Authorization: Bearer $TOKEN"
.PHONY: build test

build:
    cargo build --release
FROM rust:1.75-alpine
RUN cargo build --release
ENTRYPOINT ["api"]
apiVersion: apps/v1
kind: Deployment
replicas: 3
mov rax, 1
syscall
async fn create_session(req: Request) {
    VmSession::provision(&lab).await?;
}
$ cargo build --release
    Finished release in 42.3s
services:
  api:
    ports: ["8080:8080"]
pub struct MicroVm {
    tap_device: TapDevice,
}
GET /api/v1/projects
make build
docker build
kubectl apply
syscall

Books

Carefully crafted books to help you level up your skills

Go Fundamentals
11 pages

Go Fundamentals

from zero to writing real Go — not toy examples, but the kind of code that ships. variables, structs, pointers, error handling, and testing, grounded in patterns you will actually use when building services, CLI tools, and systems software.

Go Intermediate
15 pages

Go Intermediate

picks up where Go Fundamentals leaves off — concurrency, the GMP scheduler, channels, sync primitives, and performance profiling. understand how goroutines actually work, when to reach for context, and how to write Go that scales.

Shipping Go Web Services
23 pages

Shipping Go Web Services

build a production log aggregator from an empty main.go to a deployed service. HTTP routing, PostgreSQL, authentication, middleware, HTML dashboards, and deployment — no frameworks, just Go and the standard library.

Rust from Zero
18 pages

Rust from Zero

learn Rust by building rune — a real CLI password manager with encrypted vaults and git-based sync. ownership, borrowing, lifetimes, traits, and the type system, all through a project you will actually use.

OS Fundamentals
35 pages

OS Fundamentals

inside the operating system — how processes are created, how memory is managed, how the scheduler decides what runs next. the layer between your code and the hardware, explored hands-on with real Linux tools.

C Programming
18 pages

C Programming

beneath the abstractions — the language that kernels, databases, and embedded systems are written in. manual memory, pointers, structs, and the compilation model, with no garbage collector and no safety net. understand what your higher-level languages are doing for you by learning the language underneath.

DSA Fundamentals
30 pages

DSA Fundamentals

data structures and algorithms from first principles — starting with how memory works and building up from there. arrays, linked lists, trees, graphs, heaps, hash tables, sorting, and searching, explained with the depth that helps you understand why things are fast or slow, not just what to memorize.

Networking Fundamentals
44 pages

Networking Fundamentals

follow a packet from your keyboard to a server and back — what actually happens when you curl an endpoint. TCP/IP, sockets, routing, DNS, TLS, and HTTP, all from first principles with hands-on Linux tools.

Rust 101s
17 pages

Rust 101s

Rust language fundamentals from the ground up. ownership, borrowing, lifetimes, structs, enums, pattern matching, error handling, traits, and generics — explained so the compiler stops feeling like an adversary and starts feeling like a mentor.

learn to build, not just prompt

founders edition save $119

the whole voyage, for the price of a textbook or two.

every voyage book, lab, and project — and every new voyage release. $49/year at a 50% discount, billed once a year. cancel anytime.

horizon (advanced track) priced separately.

  • 9 books, 210+ lessons — go, rust, c, os, networking, dsa
  • 3 build-your-own projects
  • 2 book-based projects
  • 9 cli challenges
  • 50+ data structures and algorithm problems
  • systems-first teaching — memory up, not framework down
  • validate locally with luxctl, our open-source CLI
  • more on the way, regularly updating
/ PROJECTS & CHALLENGES

build real systems,
sharpen real tools.

two ways to put what you've learned into your hands. pick a system to build from scratch, or run a short drill on the unix tools that show up in every on-call.

/ 01 · projects

build a system from scratch.

multi-day builds. each ends with a working thing you can run. — ship one →

18 tasks

Build Your Own
HTTP Server

Build an HTTP server from raw TCP sockets. No frameworks, no libraries - just you and the protocol specification. Understand exactly what happens when browsers talk to servers.

get /api
host: lighthouse
accept: */*
200 ok
content-length: 14
{"ok": true}
raw socket → parsed · routed · served
19 tasks

SeaChart: Your Own
DNS Resolver

Understand DNS from the ground up by building a recursive resolver. Parse binary protocols, query root servers, follow delegation chains, and implement caching.

1query · root server
12ms
2follow .com ns
28ms
3follow lighthouse ns
9ms
aanswer · 192.0.2.7
+ cache
recursive resolution · binary protocol
8 tasks

1 Billion Row
Challenge

Process 1 billion temperature measurements as fast as possible. Start with a working solution, then systematically optimize - I/O, parallelism, parsing, data structures - until you're competing with the best.

naive 187s→ your goal < 5s
/ 02 · challenges

drill a tool until it's reflex.

short scenarios. each is about a single unix tool every senior engineer reaches for. — pick one →

  • Stream Editing with sed
    8 tasks · config patch
  • Shell Scripting Basics
    8 tasks · automation
  • regular expressions bootcamp
    8 tasks · drill
  • log hunting with grep
    8 tasks · drill
  • Deduplication with sort & uniq
    8 tasks · dedup
  • Unix Pipelines
    8 tasks · chained pipes
  • finding files with find
    8 tasks · drill
  • Log Analysis with awk
    8 tasks · log dive
  • JSON Debrief with jq
    8 tasks · on-call

Stream Editing with sed

A deploy went wrong and you're on-call. Fix broken configs, extract errors from logs, and transform data — eight tasks, one tool: sed.

8 tasks· +110 xp
before
db_host: prod-db-1.old.io
api_key: sk_live_abc123def
↓ sed -i -e
's/sk_live_\w+/redacted/'
db_host: prod-db-1.new.io
api_key: redacted
Free

starter labs are free — 20 minutes per session, full terminal access, no credit card needed.

browse labs
  1. 01

    Containerizing Your App

    Take Logline (Go) and Rune (Rust) from earlier books and ship them. Dockerfiles, multi-stage builds, registries, health checks — the bridge between "runs on my machine" and "runs anywhere".

  2. 02

    Advanced Containers

    What actually happens when you run docker build. Namespaces, cgroups, overlay filesystems, OCI specs, BuildKit internals, rootless runtimes. After this, Docker stops being magic.

  3. 03

    Protocol Engineering

    Design and implement wire protocols from scratch. Start text-based (Redis RESP), then binary framing — length-prefixed, TLV, versioning. Capstone: a custom protocol controlling real hardware over TCP.

  4. 04

    Distributed System Design

    Consensus, replication, partitioning, CRDTs — each chapter a build-from-scratch project. Implement Raft, build a replicated KV store, write a SWIM-based membership service, ship a CRDT that merges without conflicts.

  5. 05

    Database Internals

    How databases actually work under the hood. B-trees flushed to disk, write-ahead logs, MVCC, buffer pools, query executors, LSM trees vs hash indexes. Where the OS and DSA books become a storage engine.

  6. 06

    Observability & Performance

    You built the systems — now see inside them. Prometheus metrics, OpenTelemetry traces, eBPF syscall probes, flame graphs, structured logs. Profile GC pauses and lock contention until the regression is obvious.

  7. 07

    Orchestrating Containers

    Not "how to use kubectl" — how orchestration actually works. Kubelet pod lifecycles, CNI networking, scheduler placement, Firecracker microVMs. Write your own mini-scheduler from scratch.

  8. 08

    Advanced Algorithms

    Algorithms that show up in real systems, not interview prep. Segment trees for time-series, tries for routing, skip lists in Redis, bloom filters in LSM trees, consistent hashing for sharding, A* for pathfinding.

* subject to change based on priority & ask from the learners

order isn't final — your votes shape it.

request a topic →

few words from folks on the voyage

“The website (projectlighthouse.io) claims it will teach you fundamentals, but it gives you a lot more.”

“Project Lighthouse resource is amazing.”

“I wanted to read Alex Edwards’ Let’s Go and Let’s Go Further, but they were paid and I never got to read them. Today, seeing Project Lighthouse’s books, that regret is gone. Thank you for this incredible contribution — in one word, an extraordinary learning resource.”

“Really appreciate that you go beyond just syntax and explain things with real-world scenarios and practical implementations.”

“In a reality where our reasoning is constantly clouded, I found clarity in your article. I have been following Project Lighthouse and found it amazing. Particularly for me, because reading is more effective for knowledge retention. All the very best.”

“Great tutorial, I really like that you give us exercises at the end of the tutorial.”

“I read the OS material — there are very few resources that cover this in such depth.”

“I had no idea how memory was actually handled at a low level, especially cache lines and spatial locality — thanks to Project Lighthouse for the great write-up.”

“Jam-packed article, thank you! Learned about pointer dereference, nil pointer, panic, recover, and Go’s simple error handling philosophy all in one place.”

Frequently Asked Questions

The why behind the what

When you read, your brain needs to take the cognitive load. When you're watching videos, it's often spoon feeding. Ever thought about why our attention span is in 2-digit seconds nowadays? The aim is to be a builder, not a watcher. Articles let you learn at your own pace. You can skim, re-read, and jump around easily. You can highlight text, take notes in the margins, and search for keywords. You can also read offline or in low-bandwidth situations. Also, one of the biggest myths is that videos are better for learning. Research shows that active reading leads to better retention and understanding than passive watching. Here's a great video that dives into this topic: https://www.youtube.com/watch?v=rhgwIhB58PA

There's a big gap between using Docker and understanding how containers actually work. Between running a service and understanding the networking stack beneath it. Between writing code and knowing what the OS does with it. I'm building this platform to help bridge that gap. It won't solve everything, but it might help developers build a foundation for understanding the infrastructure they work with every day. Because without some of that foundation, it's easy to end up blindly accepting whatever comes your way—even 'sudo rm -rf ~/'.

projectlighthouse is for the seekers. The ones who want to understand how things work under the hood. The ones who want to go beyond just using tools and platforms, and actually understand the infrastructure they interact with daily. You might be actively learning by building things, reading documentation, or challenging yourself with hands-on labs. Either way, if you have that curiosity and drive to understand how systems actually work, this is for you. If you've ever wondered how Docker actually isolates processes, why your TCP connection hangs, how memory allocation works, or what the OS does when you open a file—this is for you.

Language doesn't matter—except when it does. For systems and infrastructure work, it absolutely matters. Go powers Docker, Terraform, containerd, and half the cloud-native tools you use daily. Its simplicity and concurrency model make it the lingua franca of cloud infrastructure. Rust offers memory safety without a garbage collector, making it ideal for performance-critical infrastructure components. It's being adopted widely in the industry—from the Linux kernel to new container runtimes and networking tools. C provides low-level access to understand how containers interact with the kernel, how namespaces work, and what's really happening under the hood. As projectlighthouse is still a one-man show, I had to pick languages that are industry-standard and that I work with daily—I can't teach something I don't know. Go for its dominance in infrastructure tooling, Rust for its growing adoption in systems software, and C for foundational understanding.

Yes. We have the Lady Elizabeth scholarship. If you're going through a tough time and believe the content here can help you grow, reach out. Share what you've done and how these books, labs, or projects would benefit you. We'll grant access to relevant material or waive part or full payment. Don't let cost be a blocker.

For the articles, no—you can read and follow along on any OS. For the labs, you'll need a Linux environment. The labs run on real Linux containers in the cloud, so you can use them from any machine with a browser. But if you want to experiment locally, a Linux VM, WSL2 on Windows, or a Linux machine will serve you well. Containers are inherently Linux-centric. Namespaces, cgroups, the /proc filesystem, container runtimes—these are Linux concepts. You can't learn them properly without touching Linux.

and a letter from the author...

Hi, I'm Aryan

The best way to learn programming is to build systems. You need the tools, and you also need the deeper understanding on how it works.

Over the years, I've been part of teams that built large scale systems from the ground up, keep up and running under heavy load, and scale to meet growing demand. Currently, I'm at DigitalOceanDigitalOcean; building the simple cloud.

I am building projectlighthouse to bridge some of the gap between theory, practice, tools and systems programming. This would be my approach if I could go back in time and teach myself. I hope you find it useful!

If you want to understand how projectlighthouse.io works, read here in detail.

Welcome to projectlighthouse.io

stay in the loop

get notified about new labs, books or pages, and deep-dive articles. no spam, unsubscribe anytime.

no spam. unsubscribe anytime.