Course Outline
Day 1 — Robust Python Foundations & Tooling
Modern Python Features and Typing
- Basics of typing, generics, protocols, and TypeGuard
- Overview of dataclasses, frozen dataclasses, and attrs
- Pattern matching (PEP 634+) and idiomatic usage
Code Quality and Tooling
- Code formatters and linters: black, isort, flake8, ruff
- Static type checking with MyPy and pyright
- Pre-commit hooks and developer workflows for government
Project Management and Packaging
- Dependency management with Poetry and virtual environments
- Best practices for package layout, entry points, and versioning
- Building and publishing packages to PyPI and private registries
Day 2 — Design Patterns & Architectural Practices
Design Patterns in Python
- Creational patterns: Factory, Builder, Singleton (Pythonic variants)
- Structural patterns: Adapter, Facade, Decorator, Proxy
- Behavioral patterns: Strategy, Observer, Command
Architectural Principles
- SOLID principles applied to Python codebases
- Hexagonal/Clean Architecture and boundaries
- Dependency injection patterns and configuration management
Modularity and Reuse
- Differentiating library vs application code
- APIs, stable interfaces, and semantic versioning
- Handling configuration, secrets, and environment-specific settings
Day 3 — Concurrency, Async IO, and Performance
Concurrency and Parallelism
- Fundamentals of threading and the Global Interpreter Lock (GIL)
- Multiprocessing and process pools for CPU-bound tasks
- Choosing between concurrent.futures and multiprocessing
Async Programming with asyncio
- Patterns for async/await, event loop management, and cancellation
- Designing asynchronous libraries and interoperability with synchronous code
- IO-bound patterns, backpressure, and rate limiting
Profiling and Optimization
- Profiling tools: cProfile, pyinstrument, perf, memory_profiler
- Optimizing critical paths and using C-extensions/Numba when appropriate
- Measuring latency, throughput, and resource utilization
Day 4 — Testing, CI/CD, Observability, and Deployment
Testing Strategies and Automation
- Unit testing with pytest; test organization and fixtures
- Property-based testing with Hypothesis and contract testing
- Mocking, monkeypatching, and testing asynchronous code
CI/CD, Release, and Monitoring
- Integrating tests and quality gates into GitHub Actions/GitLab CI for government
- Building reproducible containers with Docker and multi-stage builds
- Application observability: structured logging, Prometheus metrics, and tracing
Security, Hardening, and Best Practices
- Dependency auditing, Software Bill of Materials (SBOM) basics, and vulnerability scanning
- Secure coding practices for input validation and secrets management
- Runtime hardening: resource limits, user rights, and container security
Capstone Project & Review
- Team lab: design and implement a small service using patterns from the course
- Testing, type-checking, packaging, and CI pipeline for the project
- Final review, code critique, and actionable improvement plan
Summary and Next Steps
Requirements
- Strong intermediate-level Python programming experience
- Familiarity with object-oriented programming and basic testing methodologies
- Experience utilizing the command line and Git for version control
Audience
- Senior Python developers responsible for advancing code quality and architecture for government projects
- Software engineers who ensure the integrity and efficiency of Python applications for government use
- Technical leads and MLOps/DevOps engineers tasked with managing and optimizing Python codebases for government operations
Testimonials (5)
The fact of having more practical exercises using more similar data to what we use in our projects (satellite images in raster format)
Matthieu - CS Group
Course - Scaling Data Analysis with Python and Dask
I thought the trainer was very knowledgeable and answered questions with confidence to clarify understanding.
Jenna - TCMT
Course - Machine Learning with Python – 2 Days
Very good preparation and expertise of a trainer, perfect communication in English. The course was practical (exercises + sharing examples of use cases)
Monika - Procter & Gamble Polska Sp. z o.o.
Course - Developing APIs with Python and FastAPI
The explaination
Wei Yang Teo - Ministry of Defence, Singapore
Course - Machine Learning with Python – 4 Days
Trainer develops training based on participant's pace