Software Engineering Training Program#

This training program teaches you to build production-ready web APIs with Python using FastAPI. It is structured as three progressive tiers followed by 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

Core Techniques#

FastAPI, data modeling, databases, and CRUD patterns โ€” the practical skills for building API applications:

  • FastAPI introduction: routes, request handling, OpenAPI docs

  • Path parameters, query parameters, request bodies

  • Pydantic models for data validation

  • PostgreSQL with SQLAlchemy (sync and async)

  • Alembic database migrations

  • Dependency injection with Depends()

  • CRUD operations and application structure

  • ASGI internals

Learn: Core Techniques

Advanced#

Authentication, testing, and architectural patterns for production-quality applications:

  • JWT fundamentals: HS256, RS256, token validation

  • OAuth2 authorization framework and Google authentication

  • FastAPI authentication patterns (memory DB, OAuth2 password flow)

  • Greenlets and SQLAlchemy async bridging

  • Unit testing with pytest, TestClient, and async mocks

Learn: Advanced

Final Project Exam#

An end-to-end project that integrates all three tiers โ€” building a complete authenticated CRUD API with database persistence.

How to Use This Program#

  1. Work through each tier in order โ€” Foundations โ†’ Core Techniques โ†’ Advanced.

  2. Read the Knowledge pages in learn/software-engineering/ to understand concepts.

  3. Complete the Practice assignments in each tier.

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