Topic index

CI and containers are normal parts of modern software development. Working knowledge of automated checks, reproducible builds, images, and deployment workflows is a baseline for shipping and operating software. These notes show where I use those foundations in projects and infrastructure work.

Distributed systems security

Anti Hardening

An HTL systems security assignment extended into a distributed application across k3s, Docker Swarm, PostgreSQL, a Go API, Tailscale, and Windows Server infrastructure.

The project compares deliberately insecure and hardened deployments, covering authentication, secret management, CSP, encrypted connectivity, access control, observability, and backup design.

  • k3s
  • Docker Swarm
  • PostgreSQL
  • Tailscale

Container foundations

Practical material built around deployable examples rather than isolated command references.

Used in projects

CI and containers are ordinary project plumbing for validating changes, building artifacts, publishing releases, and retaining useful execution data.

  • tethux CI: reproducible NixOS runners, Woodpecker orchestration, portable Dagger graphs, and OpenTelemetry traces.
  • eval-mobile CI: Bun validation followed by cached container builds and commit-addressed GHCR images.
  • typed-errs workflows: Ruff, mypy, basedpyright, pytest, package builds, and trusted PyPI publishing.