Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Solidifying Python Foundations and Developer Tooling

Modern Python Features and Static Typing

  • Core typing concepts, generics, Protocols, and TypeGuard
  • Dataclasses, frozen dataclasses, and an overview of attrs
  • Pattern matching (PEP 634+) and idiomatic application

Code Quality and Tooling

  • Configuring formatters and linters: black, isort, flake8, ruff
  • Implementing static type checking using MyPy and pyright
  • Establishing pre-commit hooks and efficient developer workflows

Project Management and Packaging

  • Managing dependencies via Poetry and virtual environments
  • Optimizing package layout, entry points, and versioning practices
  • Publishing packages to PyPI and private registries

Day 2 — Applying Design Patterns and Architectural Standards

Design Patterns in Python

  • Creational patterns: Factory, Builder, and Singleton (with Pythonic adaptations)
  • Structural patterns: Adapter, Facade, Decorator, and Proxy
  • Behavioral patterns: Strategy, Observer, and Command

Architectural Principles

  • Applying SOLID principles to Python codebases
  • Implementing Hexagonal/Clean Architecture and defining boundaries
  • Utilizing dependency injection and robust configuration management

Modularity and Reuse

  • Distinguishing design practices for library versus application code
  • Defining APIs, stable interfaces, and adhering to semantic versioning
  • Managing configuration, secrets, and environment-specific settings

Day 3 — Concurrency, Asynchronous I/O, and Performance Tuning

Concurrency and Parallelism

  • Threading fundamentals and the impact of the GIL
  • Using multiprocessing and process pools for CPU-bound workloads
  • Determining when to choose concurrent.futures over multiprocessing

Async Programming with asyncio

  • Async/await patterns, event loop management, and cancellation strategies
  • Designing asynchronous libraries and ensuring interoperability with sync code
  • Handling I/O-bound tasks, backpressure, and rate limiting

Profiling and Optimization

  • Leveraging profiling tools: cProfile, pyinstrument, perf, and memory_profiler
  • Optimizing hot paths and integrating C-extensions/Numba where beneficial
  • Measuring latency, throughput, and resource utilization

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

Testing Strategies and Automation

  • Unit testing, fixture management with pytest, and test organization
  • Property-based testing via Hypothesis and contract testing
  • Mocking, monkeypatching, and strategies for testing asynchronous code

CI/CD, Release, and Monitoring

  • Integrating tests and quality gates into GitHub Actions or GitLab CI
  • Creating reproducible containers with Docker and multi-stage builds
  • Implementing application observability: structured logging, Prometheus metrics, and tracing

Security, Hardening, and Best Practices

  • Conducting dependency audits, generating SBOMs, and scanning for vulnerabilities
  • Adopting secure coding practices for input validation and secrets management
  • Runtime hardening: enforcing resource limits, user rights, and container security

Capstone Project & Review

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

Summary and Next Steps

Requirements

  • Strong intermediate-level proficiency in Python programming
  • Familiarity with object-oriented programming concepts and basic testing
  • Experience with command-line operations and Git

Audience

  • Senior Python developers
  • Software engineers responsible for Python code quality and architecture
  • Technical leads and MLOps/DevOps engineers working with Python codebases

Number of participants


Price per participant

Testimonials (2)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories