Modern JavaScript Array Methods in 45 Minutes
by Marcus Hale
Design HTTP APIs that stay usable, documented and stable long after version one.
MH Created by Marcus Hale
Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.
6 modules · 33 lessons · 4h 22m of material
7 lessons running 56m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 lessons running 46m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 lessons running 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 lessons running 46m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
4 lessons running 32m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
4 lessons running 34m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 modules · 33 lessons
4h 22m total length
Short list, and deliberately so. If you meet these you can start today.
An API is a promise you have to keep. The code behind it can change freely, but the shape of a response, the meaning of a status code and the format of an error become obligations the moment a second team depends on them. This course is about making those promises deliberately.
It covers resource modelling that survives requirement changes, choosing between nesting and flat resources, when a remote procedure style endpoint is honestly the better fit, and correct use of HTTP methods, status codes, idempotency keys and conditional requests with ETags. Errors get a full module, because inconsistent errors are the most common complaint about internal APIs: RFC 9457 problem details, machine-readable codes, field-level validation errors and what never belongs in a message.
The rest covers pagination strategies and why cursors beat offsets at scale, filtering and sorting conventions, partial responses, rate limiting with informative headers, authentication choices, and versioning done properly with an explicit deprecation policy and sunset headers. You will write an OpenAPI specification first, generate a typed client from it, and add contract tests so the specification cannot silently drift. A closing module compares REST with GraphQL and gRPC honestly.
Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.
Reviews are written by people who bought this course. We publish the critical ones too.
4.5
Rated 4.5 out of 5Course rating · 2 reviews
Charlotte Mbeki
Backend engineer
Every payment-adjacent API I have built has fudged retry behaviour somewhere. This is the most concrete treatment I have found of where you store an idempotency key, how long you keep it and what you return on a repeat.
Krzysztof Mazur
API architect
We took the problem-details format wholesale and have not regretted it once. The versioning chapter argues hard for putting the version in the path and rather waves away header negotiation, which is unhelpful when your organisation committed to headers years ago. Give both approaches a fair hearing and this is a five.
Web engineer and JavaScript educator
Marcus has shipped front ends for two ad-tech startups and one very large retailer, which taught him more about performance budgets than any blog post could. He teaches JavaScript and TypeScript from the runtime up — event loop first, framework second — then follows the same code through Node on the server side. Every one of his courses ends with a deployed application rather than a folder of exercises. He writes a weekly newsletter on browser performance.
One-time payment · lifetime access