How we built a small Python smoke test tool for a safety-critical alarm backend: a 300-line harness, one package per feature, blocker ordering, honest SKIPs, simulators, and the regression it caught.
Lessons from upgrading Docker Engine and moving from docker-compose v1 to the Compose plugin on production hosts: restart policies, legacy links, env-file interpolation, and the five-year-old cron job that took the API down.
Understand how Docker containers communicate over networks and persist data with volumes. Learn bridge networking, service DNS, named volumes, and bind mounts with practical examples.
Learn Docker Compose from scratch. Define and run multi-container applications with a single docker-compose.yml file — app, database, and cache all together.
Learn how to write a Dockerfile from scratch. Understand every instruction, optimize layer caching, and use multi-stage builds to create lean production images.
Understand Docker images and containers from scratch. Learn what they are, how they differ, and run your first container with hands-on examples in under 30 minutes.
Learn how to handle two of the most common Docker production failures: image pull errors on deploy and database connection failures on startup. Practical patterns with healthchecks, retry logic, and rollback strategies.
Master Docker networking and storage. Learn bridge, host, and overlay networks, container DNS, network security, volumes vs bind mounts, and production storage patterns with hands-on examples.
A practical comparison of local development and production environments for new web developers. Understand the gaps in networking, security, scaling, databases, and deployment that surprise juniors on their first real project.
Set up a local SMTP relay server that wraps SendGrid, accessible on port 25 from Docker containers using an external fixed network. Perfect for self-hosted apps that need email delivery.