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#
Work through each tier in order โ Foundations โ Core Techniques โ Advanced.
Read the Knowledge pages in
learn/software-engineering/to understand concepts.Complete the Practice assignments in each tier.
Sit the Final Project Exam after completing all three tiers.