Alongside architecture and frontend, I've been deepening my DevOps and Linux expertise year over year. Provisioning, hardening, and maintaining servers, writing systemd units that behave properly, doing network and firewall configuration that doesn't silently lock everything down — it has become craft of its own next to the building itself.
Containers are a central tool in that. I've worked intensively with Docker for years — from standalone development images to multi-stage builds, compose stacks, and private registries — and slot in seamlessly with Podman where rootless or daemonless setups fit better. The underlying OCI standards, image layers, volumes, and networks aren't a black box to me but the tooling I use to build reliable environments.
In practice this means reproducible development, staging, and production environments, CI/CD pipelines that push the same images through every stage, and deployments where rollback isn't an adventure. Observability — logs, metrics, health checks — is built in from day one rather than bolted on after pain hits.
Holding architecture, development, and infrastructure in one head means I can make decisions that line up on every side: code that fits the runtime, runtime that fits the code, and a way of working that keeps teams productive for the long haul.