Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Solid Python Foundations & Developer Tooling

Modern Python Features and Type Systems

  • Essentials of typing, generics, Protocols, and TypeGuard utilities.
  • Overview of Dataclasses, frozen dataclasses, and the attrs library.
  • Application of pattern matching (PEP 634+) and idiomatic coding styles.

Code Quality and Developer Tooling

  • Implementation of code formatters and linters: black, isort, flake8, and ruff.
  • Performing static type checking using MyPy and pyright.
  • Configuring pre-commit hooks to streamline developer workflows.

Project Management and Packaging

  • Managing dependencies with Poetry and utilizing 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 (including Pythonic adaptations).
  • Structural patterns: Adapter, Facade, Decorator, and Proxy.
  • Behavioral patterns: Strategy, Observer, and Command.

Core Architectural Principles

  • Applying SOLID principles to complex Python codebases.
  • Understanding Hexagonal/Clean Architecture and defining system boundaries.
  • Implementing dependency injection patterns and managing configuration.

Modularity and Code Reusability

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

Day 3 — Concurrency, Asynchronous IO, and Performance Tuning

Concurrency and Parallel Processing

  • Threading fundamentals and understanding the implications of the GIL.
  • Utilizing multiprocessing and process pools for CPU-bound tasks.
  • Deciding between concurrent.futures and multiprocessing for optimal performance.

Asynchronous Programming with asyncio

  • Mastery of Async/await patterns, event loops, and task cancellation.
  • Designing asynchronous libraries and ensuring interoperability with synchronous code.
  • Handling IO-bound operations, backpressure, and implementing rate limiting.

Profiling and Performance Optimization

  • Utilizing profiling tools: cProfile, pyinstrument, perf, and memory_profiler.
  • Optimizing critical code paths and integrating C-extensions or Numba where beneficial.
  • Monitoring latency, throughput, and resource utilization metrics.

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

Testing Strategies and Automation

  • Unit testing and fixture management with pytest; organizing test suites.
  • Implementing property-based testing with Hypothesis and contract testing.
  • Techniques for mocking, monkeypatching, and testing asynchronous code.

CI/CD, Release Management, and Monitoring

  • Integrating tests and quality gates into GitHub Actions or GitLab CI pipelines.
  • Creating reproducible container images with Docker using multi-stage builds.
  • Enhancing application observability through structured logging, Prometheus metrics, and distributed tracing.

Security, Hardening, and Best Practices

  • Conducting dependency audits, understanding SBOM basics, and performing vulnerability scans.
  • Adopting secure coding practices for input validation and secrets management.
  • Runtime hardening techniques: resource limits, user privilege management, and container security.

Capstone Project & Evaluation

  • Collaborative lab: Design and implement a small service applying 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 Future Directions

Requirements

  • Solid intermediate proficiency in Python programming.
  • Working knowledge of object-oriented programming concepts and fundamental testing practices.
  • Practical experience with command-line interfaces and Git version control.

Target Audience

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

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories