Resources
Step-by-step guides I've written, plus the tools and learning paths I actually use.
Learning in public
Everything I learn, written up as I learn it
Hands-on tracks built from my own projects, including the mistakes. Each lesson is the one I wish I'd had.
Browse by topic
Git
Version control: every change saved, explained and undoable.
Linux
The shell, files, processes and services: what every cloud server runs on.
Python
The language behind my APIs, data pipelines and scripts.
SQL
Asking a database questions, and changing its data without breaking it.
Networking and DNS
The building blocks of how computers talk, from IP addresses to load balancers.
Docker
Packaging apps into containers that run the same everywhere.
Kubernetes
Running, right-sizing and securing clusters.
Terraform
Infrastructure as code, from one cluster to many.
Compliance
What frameworks and controls ask of engineers, and how to show you meet them.
CI/CD
Testing and shipping every change automatically.
Argo CD
GitOps: Git decides what runs in your cluster.
Ansible
Automating servers with plain YAML playbooks.
Monitoring and alerting
Knowing when things break, including the things that fail silently.
Automation
Scheduling the boring parts, and knowing when they stop.
AWS
Learning and building on AWS without the surprise bill.
Security
Hands-on labs and the references worth keeping open.
Local LLMs
Small models on your own hardware, doing narrow, checked jobs.
Web development
Next.js, deployment and the docs I return to.
Career and certs
Certifications and learning paths, with honest notes on each.
Logos are trademarks of their owners and are shown only to identify each tool. Git Logo by Jason Long, licensed CC BY 3.0. Jenkins logo by the Jenkins project, licensed CC BY-SA 3.0.