---
title: "Backend engineering — ZudoJS Academy"
description: "How backends work, framework-free: HTTP in depth, typed Node.js, the BookStore API in TypeScript with PostgreSQL and authentication, layered API design, testing strategies, and the building blocks every backend needs: caches, queues and file storage."
source: https://zudojs.oyinlola.site/learn/backend
---

LEVEL 7 · BACKEND ENGINEERING

Course Core

# Backend engineering

How backends work, framework-free: HTTP in depth, typed Node.js, the BookStore API in TypeScript with PostgreSQL and authentication, layered API design, testing strategies, and the building blocks every backend needs: caches, queues and file storage.

- **9 lessons**
- **7 h** to read and try
- **Before this:** [TypeScript](https://zudojs.oyinlola.site/learn/typescript), [JavaScript in the browser and on the server](https://zudojs.oyinlola.site/learn/javascript-platforms)

0 of 9 lessons done

[Start lesson 1 →](https://zudojs.oyinlola.site/learn/http-deep)

## When you finish, you can

- Read and write raw HTTP and explain every part of a request and response
- Build a typed HTTP API with controllers, services, repositories and DTOs
- Store data in PostgreSQL with parameterized SQL
- Test a backend at the unit, integration and end-to-end level
- Explain when to add a cache, a queue or object storage, and what each costs

**You build:** The BookStore API: a TypeScript backend with PostgreSQL, authentication and tests, built without a framework

MODULE 1

## HTTP and REST

1. [1**HTTP in depth**See the exact bytes of an HTTP request and response, then learn the parts every backend developer uses daily: headers, cookies, content types, methods and status codes.40 min](https://zudojs.oyinlola.site/learn/http-deep)
2. [2**Designing a REST API**Turn the Task API into a well-designed REST API: resources and URLs, a written contract, filtering, sorting, offset and cursor pagination, versioning and one consistent error format.40 min](https://zudojs.oyinlola.site/learn/rest-design)

MODULE 2

## Databases and SQL

1. [3**How databases work**Why a backend keeps its data in a database, how relational databases organise it into tables and relationships, and what keys, constraints, indexes, transactions and migrations do, with real PostgreSQL running inside Node.js.45 min](https://zudojs.oyinlola.site/learn/databases)
2. [4**SQL with PostgreSQL**Install PostgreSQL with an installer or with Docker, talk to it with psql, and learn the SQL every backend uses: create, insert, select, update and delete, with filters, sorting and paging, and parameterized queries that stop SQL injection.45 min](https://zudojs.oyinlola.site/learn/sql-basics)
3. [5**Joins, grouping and transactions**Combine tables with joins, summarise data with group by and aggregates, filter groups with having, nest queries, control transactions yourself, measure queries with explain analyze, and connect Node.js to a real PostgreSQL server.45 min](https://zudojs.oyinlola.site/learn/sql-advanced)

MODULE 3

## Testing

1. [6**Testing fundamentals**Why automated tests matter, the difference between unit, integration and end-to-end tests, and how to write them with node:assert and Node's built-in test runner, including mocks, spies, isolated tests and a fresh test database. Then the same tests in Vitest.45 min](https://zudojs.oyinlola.site/learn/testing-basics)

MODULE 4

## TypeScript on the server

1. [7**"BookStore API: HTTP and routing"**Start a TypeScript backend with no framework at all. Set up the folder, read configuration from the environment, write a small typed router, JSON helpers and error responses, and serve books and authors over HTTP.45 min](https://zudojs.oyinlola.site/learn/bookstore-http)
2. [8**"BookStore API: validation and PostgreSQL"**Check every request body by hand with type guards, move the BookStore data into PostgreSQL with PGlite, write repositories with parameterized SQL, and map typed errors to 400, 404 and 409.50 min](https://zudojs.oyinlola.site/learn/bookstore-data)
3. [9**"BookStore API: authentication and tests"**Add users to the BookStore. Hash passwords with scrypt, issue signed log-in tokens with a secret from the environment, protect the order routes, test it all with node:test, and then look honestly at what this hand-built backend now gets wrong.50 min](https://zudojs.oyinlola.site/learn/bookstore-auth)

## Course checkpoint

Prove you can move on. The checkpoint picks 20 questions at random from every lesson in this course. Get 16 right to pass. Your result is saved in this browser only.
