Packaging, profiling, concurrency, production automation, and a data-pipeline capstone.
Create a real package with pyproject.toml, build backends, dependency groups, entry points, versioning, and reproducible installs.
Profile CPU and memory, choose threads, processes, or asyncio for the workload, and use pools without hiding failure handling.
Build operable scripts with environment configuration, structured logging, retries, idempotency, safe subprocesses, and useful health signals.
Build a tested pipeline that ingests data, validates it with Pydantic, transforms and persists it, reports failures, and can run repeatedly.