Posts on Python — the language, the ecosystem, and the everyday craft. From modern features (type hints, dataclasses, structural pattern matching) to packaging tools (uv, poetry), virtual environments, async/await, and the corners of the standard library you’ll actually use in production.
Practical Python data: Polars for in-memory DataFrames, DuckDB for SQL on files, Ibis for portable expression API, and how to compose them.
Practical Python 3.13: free-threaded (no-GIL) mode, experimental JIT, better REPL, deprecations, and an honest look at what to adopt now.
Practical uv: project setup, dependency management, lockfiles, tool installs, scripts with inline deps, and why it replaced pip/poetry for many teams.
Practical Python profiling: py-spy in production, scalene for line-level CPU+memory, memray for leaks, async profiling, and the discipline of measuring before optimizing.
Practical Python logging: structlog over stdlib, JSON for parseability, correlation IDs via contextvars, levels that mean something, and PII redaction.
Practical Python packaging: pyproject.toml as source of truth, uv / hatch for builds, src layout, wheels with Cython / Rust, and publishing without drama.
Practical Python async: TaskGroup for structured concurrency, asyncio.timeout, gather pitfalls, anyio for portability, and how to avoid lost exceptions.
Picking a Python validation library: Pydantic v2 (default), msgspec (10× faster, leaner), attrs (no validation; pure dataclass replacement). When each wins.
FastAPI BackgroundTasks looks convenient but has real limits. When it’s enough, when you need a real queue, and how to migrate without disrupting users.
Production FastAPI dependency injection: typed dep aliases, request-scoped vs app-scoped resources, async deps, lifespan management, and the patterns that keep a 50-endpoint codebase clean.