Software Engineering Training Program#

This training program teaches you to build production-ready web APIs with Python using FastAPI. It is structured as four progressive tiers — Foundations, API Development, Data Persistence, and Security & Testing — followed by quick-reference cheatsheets and a final project exam.

Program Structure#

Foundations#

Web fundamentals, OS concepts, and asynchronous programming — the building blocks every FastAPI engineer must understand:

  • File descriptors, sockets, and the OS networking model

  • HTTP and web concepts

  • Python asyncio: event loops, coroutines, and cooperative concurrency

  • Threading, the GIL, multiprocessing, and process forking

  • CPython internals

Learn: Foundations

API Development#

Building web APIs with FastAPI — request handling, data validation, and dependency injection:

  • FastAPI introduction: routes, request handling, OpenAPI docs

  • ASGI internals: how Uvicorn and FastAPI communicate

  • Path parameters, query parameters, headers, cookies, and request bodies

  • Pydantic models for data validation and response control

  • Dependency injection with Depends()

Learn: API Development

Data Persistence#

PostgreSQL database setup, async sessions, schema migrations, and CRUD patterns:

  • PostgreSQL with SQLAlchemy setup and model definition

  • Async database sessions with SQLAlchemy

  • Alembic database migrations

  • CRUD operations and application structure

Learn: Data Persistence

Security & Testing#

Securing and testing production APIs:

  • JWT fundamentals: HS256, RS256, token validation

  • OAuth2 authorization framework and Google authentication

  • FastAPI authentication patterns (OAuth2 password flow, route protection)

  • Unit testing with pytest, TestClient, and async mocks

Learn: Security & Testing

Final Project Exam#

An end-to-end project that integrates all four tiers — building a complete authenticated CRUD API with database persistence.

How to Use This Program#

  1. Work through each tier in order — Foundations → API Development → Data Persistence → Security & Testing.

  2. Read the Knowledge pages to understand concepts.

  3. Complete the Practice assignments in each tier.

  4. Sit the Final Project Exam after completing all four tiers.