Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Solid Python Fundamentals & Tooling

Contemporary Python Features and Type Safety

  • Essentials of typing, generics, Protocols, and TypeGuard
  • Utilizing dataclasses, frozen dataclasses, and an overview of attrs
  • Applying pattern matching (PEP 634+) and idiomatic implementations

Code Quality and Developer Tools

  • Employing code formatters and linters such as black, isort, flake8, and ruff
  • Performing static type analysis using MyPy and pyright
  • Configuring Pre-commit hooks and optimizing developer workflows

Project Management and Packaging

  • Managing dependencies via Poetry and virtual environments
  • Adopting best practices for package layout, entry points, and versioning
  • Building and distributing packages to PyPI and private registries

Day 2 — Design Patterns & Architectural Strategies

Design Patterns in Python

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

Architectural Principles

  • Applying SOLID principles to Python codebases
  • Implementing Hexagonal/Clean Architecture and defining clear boundaries
  • Utilizing dependency injection patterns and managing configuration

Modularity and Reusability

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

Day 3 — Concurrency, Asynchronous IO, and Performance

Concurrency and Parallel Execution

  • Understanding threading fundamentals and GIL implications
  • Using multiprocessing and process pools for CPU-bound workloads
  • Deciding when to use concurrent.futures versus multiprocessing

Asynchronous Programming with asyncio

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

Profiling and Optimization

  • Utilizing profiling tools such as cProfile, pyinstrument, perf, and memory_profiler
  • Optimizing critical paths and leveraging C-extensions or Numba where suitable
  • Measuring latency, throughput, and resource consumption

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

Testing Strategies and Automation

  • Conducting unit testing and fixture management with pytest; organizing tests effectively
  • Implementing property-based testing with Hypothesis and contract testing
  • Applying mocking, monkeypatching, and testing asynchronous code

CI/CD, Release Management, and Monitoring

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

Security, Hardening, and Best Practices

  • Performing dependency audits, understanding SBOM basics, and vulnerability scanning
  • Applying secure coding practices for input validation and secret management
  • Implementing runtime hardening through resource limits, user rights, and container security

Capstone Project & Evaluation

  • Team lab: Design and implement a small service utilizing patterns learned in the course
  • Establishing 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

  • Proficient intermediate-level Python programming experience
  • Familiarity with object-oriented programming concepts and basic testing practices
  • Practical experience using the command line and Git

Target Audience

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

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories