open atlas

apis

APIs

How programs talk to each other over the network — the main styles (REST, GraphQL, gRPC), and how to design one that stays usable as it changes.

9 units·46 lessons·~39 h

Start track
00

Start from zero

Before the senior material: what an API even is, and the handful of words the rest of the track assumes you already know.
01

Rest modeling

Coming soon — API contracts
02

Status codes real

Coming soon — API contracts
03

Pagination

Coming soon — API contracts
04

Openapi

Coming soon — API contracts
05

Grpc protobuf

Coming soon — API contracts
06

GraphQL N+1 and the cost of nested resolvers

Why GraphQL turns one HTTP request into 1000 database calls, how DataLoader fixes it with a single event-loop tick, and the complexity / depth / persisted-query controls that keep public APIs alive.
07

Rate limiting

Coming soon — API contracts
08

Putting it together

Coming soon — API contracts

Build with this track

Guided projects that exercise what you learn here.

◆ Projects

Feature-flag service

Build a small flag service with targeting rules, percentage rollouts, and a typed SDK that evaluates flags client-side from a cached ruleset.

◆ Projects

Mini CRUD API

Build your first real backend: a tiny HTTP API that creates, reads, updates, and deletes notes — backed by SQLite so the data survives a restart. You go from a one-line 'hello' server to a small service that validates input and stores rows, one honest step at a time.

◆ Projects

Mini OAuth 2.0 + PKCE login

Implement the authorization-code + PKCE flow end to end against a real provider, so you understand every redirect and token instead of trusting a library.

◆ Projects

Presigned upload flow

Direct-to-storage uploads via presigned URLs with size/content-type limits and a completion webhook that verifies the object actually arrived — so your API server never touches file bytes.

◆ Projects

Distributed rate limiter

Build a token-bucket limiter that holds across many app instances by keeping the counter in Redis, not in process memory.

◆ Projects

Type-Safe API SDK

Build the client other engineers will actually trust: a typed SDK over a real HTTP API where the compiler — not a runtime crash in production — catches the wrong field, the missing variant, the response that lied about its shape. You model the domain with discriminated unions and generics, validate every response at the boundary, and let inference carry exact types all the way to the call site, with zero `any` left to paper over the gaps.

◆ Projects

URL shortener at scale

Build a URL shortener that survives real traffic — then run it: deploy it, watch it, and work the incident when one hot link melts your cache.

Next track

Databases

How databases store and find your data fast, keep it correct when many users write at once, and grow as the data gets bigger.