Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Solidifying Python Foundations & Developer Tooling

Modern Python Features & Type Systems

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

Code Quality & Tooling Ecosystem

  • Implementing code formatters and linters: black, isort, flake8, ruff
  • Performing static type analysis with MyPy and pyright
  • Setting up pre-commit hooks and optimizing developer workflows

Project Management & Packaging

  • Managing dependencies with Poetry and configuring virtual environments
  • Best practices for package layout, entry points, and versioning
  • Building and distributing packages to PyPI and private registries

Day 2 — Design Patterns & Architectural Strategies

Applying Design Patterns in Python

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

Architectural Core Principles

  • Applying SOLID principles within Python codebases
  • Implementing Hexagonal/Clean Architecture and defining system boundaries
  • Utilizing dependency injection and managing configuration

Modularity & Reusability

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

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

Concurrency & Parallel Execution

  • Threading fundamentals and the impact of the GIL
  • Employing multiprocessing and process pools for CPU-intensive tasks
  • Choosing between concurrent.futures and multiprocessing

Asynchronous Programming with asyncio

  • Async/await patterns, event loop mechanics, and cancellation
  • Designing async libraries and ensuring interoperability with synchronous code
  • I/O-bound patterns, backpressure management, and rate limiting

Profiling & Optimization

  • Using profiling tools: cProfile, pyinstrument, perf, memory_profiler
  • Optimizing hot paths and leveraging C-extensions/Numba where suitable
  • Measuring latency, throughput, and resource efficiency

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

Testing Strategies & Automation

  • Unit testing and fixture management with pytest; structuring tests
  • Property-based testing with Hypothesis and contract testing
  • Mocking, monkeypatching, and testing asynchronous code

CI/CD, Release Management, & Monitoring

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

Security, Hardening, & Best Practices

  • Dependency auditing, SBOM basics, and vulnerability scanning
  • Secure coding practices for input validation and secrets management
  • Runtime hardening: resource limits, user permissions, and container security

Capstone Project & Assessment

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

Summary & Future Steps

Requirements

  • Proficient intermediate-level Python programming skills
  • Working knowledge of object-oriented programming and fundamental testing concepts
  • Practical experience with command-line interfaces and Git version control

Target Audience

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

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories