When a scientist says a dashboard was slow this morning, our logs couldn't tell us which requests were theirs. I built a request context, stored in a ContextVar and forwarded as HTTP headers, that stamps request, session, user, and service IDs onto every log line. The post covers the middleware, why a logging filter beats a LoggerAdapter, and fixes for noisy health checks and unhelpful 403s.
How a .gitlab-ci.yml file is put together, how to make jobs run only on certain merge request events, and how to set up .pypirc and .netrc tokens so a pipeline can build a Python package and push it to a Gitlab package registry.
Notes from a lab meeting talk on how to structure, build, and upload a Python package to PyPI, with an example from my own code.
Translating, rotating, and warping an MRI slice with OpenCV, as a first step toward simulating head motion.