Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Robust Python Foundations & Tooling

Modern Python Features and Typing

  • Typing fundamentals, generics, Protocols, and TypeGuard.
  • Dataclasses, frozen dataclasses, and an overview of attrs.
  • Pattern matching (PEP 634+) and its idiomatic application.

Code Quality and Tooling

  • Code formatters and linters: black, isort, flake8, ruff.
  • Static type checking utilizing MyPy and pyright.
  • Pre-commit hooks and streamlined developer workflows.

Project Management and Packaging

  • Dependency management using Poetry and virtual environments.
  • Package layout, entry points, and versioning best practices.
  • 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

  • Application of SOLID principles within Python codebases.
  • Hexagonal/Clean Architecture and system boundaries.
  • Dependency injection patterns and configuration management.

Modularity and Reuse

  • Distinguishing between library design and application code design.
  • 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 implications of the GIL.
  • Multiprocessing and process pools for CPU-bound tasks.
  • Determining when to utilize concurrent.futures versus multiprocessing.

Async Programming with asyncio

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

Profiling and Optimization

  • Profiling tools: cProfile, pyinstrument, perf, memory_profiler.
  • Optimizing hot paths and employing C-extensions/Numba where appropriate.
  • Measuring latency, throughput, and resource utilization.

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

Testing Strategies and Automation

  • Unit testing and fixtures with pytest; effective test organization.
  • 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.
  • Building reproducible containers using Docker and multi-stage builds.
  • Application observability: structured logging, Prometheus metrics, and tracing.

Security, Hardening, and Best Practices

  • Dependency auditing, 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 covered in the course.
  • Implementation of testing, type-checking, packaging, and CI pipelines for the project.
  • Final review, code critique, and formulation 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 fundamental testing principles.
  • Practical experience with command-line interfaces and Git version control.

Target Audience

  • Senior Python developers.
  • Software engineers responsible for maintaining Python code quality and architectural integrity.
  • Technical leads and MLOps/DevOps engineers who manage Python-based codebases.

Testimonials (2)

Upcoming Courses

Related Categories