#Python

117 posts

Modern Python in Practice #4: Authentication — OAuth2 Password Flow + JWT
8 min read

Modern Python in Practice #4: Authentication — OAuth2 Password Flow + JWT

Password hashing (argon2/bcrypt), the OAuth2 password flow, JWT issuance/verification, and a clean current_user dependency for authenticated routes.

Modern Python in Practice #3: Connecting a DB — SQLAlchemy 2.x + Alembic
8 min read

Modern Python in Practice #3: Connecting a DB — SQLAlchemy 2.x + Alembic

SQLAlchemy 2.x's new style — Mapped/mapped_column, async sessions, integration with FastAPI's dependency injection, and Alembic migrations.

Modern Python in Practice #2: Routing, Pydantic Models, and Dependency Injection
7 min read

Modern Python in Practice #2: Routing, Pydantic Models, and Dependency Injection

Splitting routes with APIRouter, defining input/output schemas with Pydantic v2, and unraveling shared logic cleanly with Depends.

Modern Python FastAPI #1 Getting Started and Setup
7 min read

Modern Python FastAPI #1 Getting Started and Setup

Why FastAPI, first project setup with uv, Hello FastAPI, automatic OpenAPI/Swagger UI generation — all in one place.

Modern Python Advanced #7 Performance — cProfile, py-spy, Memory Profiling
8 min read

Modern Python Advanced #7 Performance — cProfile, py-spy, Memory Profiling

A toolbox for finding and fixing slow Python code — timeit, cProfile, py-spy, line_profiler, memray, and common optimization patterns.

Modern Python Advanced #6: Advanced typing — Variance, ParamSpec, Self, overload
4 min read

Modern Python Advanced #6: Advanced typing — Variance, ParamSpec, Self, overload

Next step from intermediate typing — covariance/contravariance, ParamSpec and Concatenate, Self, TypeGuard/TypeIs, and @overload.

Modern Python Advanced #5: GIL and concurrency — threading vs multiprocessing vs asyncio
7 min read

Modern Python Advanced #5: GIL and concurrency — threading vs multiprocessing vs asyncio

What the GIL is, the role of threading/multiprocessing/asyncio, and the free-threaded build of Python 3.13–3.14 (PEP 703/779) — all in one place.

Modern Python Advanced #4: Async in depth — event loop, gather/wait, async generator
4 min read

Modern Python Advanced #4: Async in depth — event loop, gather/wait, async generator

The next step from intermediate intro — how the event loop actually works, the difference between Future and Task, gather vs wait, async generator, and async iteration.

Modern Python Advanced #3: Metaclasses — when do you really need them?
3 min read

Modern Python Advanced #3: Metaclasses — when do you really need them?

Classes that build classes — what type really is, division of labor with __init_subclass__, what class decorators can solve, and the narrow places where you really need a metaclass.

Docker in Practice #1: Containerizing FastAPI — uv, Multi-stage, non-root
8 min read

Docker in Practice #1: Containerizing FastAPI — uv, Multi-stage, non-root

First post of the practice series. Containerizing the most common scenario — a FastAPI app. Slim base on uv, multi-stage to separate build from runtime deps, a non-root user, and HEALTHCHECK — in a shape that goes straight to production.

Modern Python Advanced #2: Descriptors and __set_name__
3 min read

Modern Python Advanced #2: Descriptors and __set_name__

How property works — the __get__/__set__ protocol and data/non-data descriptors, and clean validation fields with __set_name__.

Modern Python Advanced #1: Magic methods in depth and protocols
4 min read

Modern Python Advanced #1: Magic methods in depth and protocols

Every hook where Python objects integrate with language features — __call__, __getitem__, __hash__, __format__, __getattr__ — gathered in one place.