Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Robust Python Foundations & Tooling

Modern Python Features and Typing

  • Foundations of typing, generics, Protocols, and TypeGuard
  • Overview of dataclasses, frozen dataclasses, and the attrs library
  • Pattern matching (PEP 634+) and idiomatic implementation

Code Quality and Tooling

  • Utilizing code formatters and linters: black, isort, flake8, and ruff
  • Performing static type checking with MyPy and pyright
  • Implementing pre-commit hooks and streamlined developer workflows

Project Management and Packaging

  • Managing dependencies with Poetry and utilizing 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, and Singleton (Pythonic approaches)
  • Structural patterns: Adapter, Facade, Decorator, and Proxy
  • Behavioral patterns: Strategy, Observer, and Command

Architectural Principles

  • Applying SOLID principles to Python codebases
  • Hexagonal/Clean Architecture concepts and system boundaries
  • Dependency injection patterns and effective configuration management

Modularity and Reuse

  • Differentiating between library design and application code
  • Defining APIs, stable interfaces, and semantic versioning
  • Managing configuration, secrets, and environment-specific settings

Day 3 — Concurrency, Async IO, and Performance

Concurrency and Parallelism

  • Threading fundamentals and the impact of the GIL
  • Using multiprocessing and process pools for CPU-bound tasks
  • Determining when to employ concurrent.futures versus multiprocessing

Async Programming with asyncio

  • Mastering Async/await patterns, event loops, and cancellation mechanisms
  • Designing async libraries and ensuring interoperability with synchronous code
  • Handling IO-bound patterns, backpressure, and rate limiting

Profiling and Optimization

  • Utilizing profiling tools: cProfile, pyinstrument, perf, and memory_profiler
  • Optimizing critical paths and integrating C-extensions/Numba where beneficial
  • Measuring key performance indicators such as latency, throughput, and resource utilization

Day 4 — Testing, CI/CD, Observability, and Deployment

Testing Strategies and Automation

  • Unit testing and fixture management with pytest; organizing test suites
  • Property-based testing using Hypothesis and implementing contract testing
  • Techniques for mocking, monkeypatching, and testing asynchronous code

CI/CD, Release, and Monitoring

  • Integrating tests and quality gates into GitHub Actions/GitLab CI pipelines
  • Creating reproducible containers using Docker and multi-stage builds
  • Enhancing application observability through structured logging, Prometheus metrics, and tracing

Security, Hardening, and Best Practices

  • Conducting dependency audits, understanding SBOM basics, and performing vulnerability scanning
  • Adopting secure coding practices for input validation and secrets management
  • Implementing runtime hardening: resource limits, user privileges, and container security

Capstone Project & Review

  • Team lab: Design and implement a small service utilizing the patterns covered in the course
  • Establish testing, type-checking, packaging, and CI pipelines for the project
  • Final review, code critique, and development of an actionable improvement plan

Summary and Next Steps

Requirements

  • Solid intermediate-level proficiency in Python programming
  • Working knowledge of object-oriented programming concepts and basic testing methodologies
  • Proficiency with command-line interfaces and Git version control

Target Audience

  • Senior Python developers
  • Software engineers accountable for Python code quality and system architecture
  • Technical leads and MLOps/DevOps engineers managing Python codebases

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories