Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Solid Python Foundations & Modern Tooling

Contemporary Python Features and Static Typing

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

Code Quality Standards and Developer Tooling

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

Project Management and Software Packaging

  • Managing dependencies with Poetry and setting up virtual environments
  • Best practices for package layout, entry points, and versioning
  • Processes for building and publishing packages to PyPI and private registries

Day 2 — Design Patterns & Architectural Strategies

Applying 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

Core Architectural Principles

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

Modularity and Code Reusability

  • Distinguishing between library design and application development
  • Defining APIs, maintaining stable interfaces, and adhering to semantic versioning
  • Handling configuration, secrets, and environment-specific settings securely

Day 3 — Concurrency, Async IO, and Performance Optimization

Concurrency and Parallel Processing

  • Understanding threading fundamentals and the implications of the GIL
  • Using multiprocessing and process pools for CPU-intensive tasks
  • Determining when to utilize concurrent.futures versus multiprocessing

Asynchronous Programming with asyncio

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

Performance Profiling and Optimization

  • Using profiling tools: cProfile, pyinstrument, perf, and memory_profiler
  • Optimizing critical code paths and leveraging C-extensions or Numba where suitable
  • Measuring key performance indicators such as latency, throughput, and resource usage

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 contract testing techniques
  • Mocking, monkeypatching, and testing asynchronous code effectively

CI/CD Pipelines, Release Management, and Monitoring

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

Security, Hardening, and Industry Best Practices

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

Capstone Project & Comprehensive Review

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

Summary and Future Pathways

Requirements

  • Proficient intermediate-level Python programming proficiency
  • 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 tasked with maintaining code quality and architectural integrity for Python projects
  • Technical leads and MLOps/DevOps engineers who interact with Python codebases

Number of participants


Price per participant

Testimonials (2)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories