Get in Touch
 Duration 28 hours

Course Outline

Day 1 — Solidifying Python Foundations and Tooling

Contemporary Python Features and Type Systems

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

Enhancing Code Quality and Tooling

  • Employing code formatters and linters such as black, isort, flake8, and ruff
  • Performing static type analysis using MyPy and pyright
  • Integrating pre-commit hooks to streamline developer workflows

Managing Projects and Packaging

  • Handling dependencies with Poetry and managing virtual environments
  • Best practices for package layout, entry points, and versioning
  • Constructing and publishing packages to PyPI and private registries

Day 2 — Design Patterns and Architectural Strategies

Applying Design Patterns in Python

  • Creational patterns including Factory, Builder, and Singleton (Pythonic implementations)
  • Structural patterns such as Adapter, Facade, Decorator, and Proxy
  • Behavioral patterns like Strategy, Observer, and Command

Architectural Guidelines

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

Ensuring Modularity and Reusability

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

Day 3 — Concurrency, Asynchronous IO, and Performance Optimization

Concurrency and Parallel Processing

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

Asynchronous Programming with asyncio

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

Profiling and Performance Tuning

  • Utilizing profiling tools such as cProfile, pyinstrument, perf, and memory_profiler
  • Optimizing critical code paths and employing C-extensions/Numba where suitable
  • Monitoring latency, throughput, and resource consumption

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

Testing Methodologies and Automation

  • Structuring unit tests and fixtures with pytest
  • 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 Operational Best Practices

  • Conducting dependency audits, understanding SBOM basics, and vulnerability scanning
  • Adopting secure coding practices for input validation and secrets management
  • Implementing runtime hardening: resource limits, user permissions, and container security

Capstone Project and Evaluation

  • Collaborative lab: designing and building a small service using course-derived patterns
  • Applying testing, type-checking, packaging, and CI pipelines to the project
  • Conducting final reviews, code critiques, and developing actionable improvement plans

Conclusion and Future Steps

Requirements

  • Solid intermediate proficiency in Python programming
  • Understanding of object-oriented programming concepts and basic testing practices
  • Practical experience with command-line interfaces and Git

Target Audience

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

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories