Engineering notes that start with the basics
Every topic answers the same three questions first — what is it, what is it made of, and how do you actually use it — before going near the advanced material.
Foundations
DNS turns a name into an address. Every answer is cached with an expiry, and there is no way to recall a cached answer early — which explains almost every DNS problem you will meet.
Linux Basics L1Almost every server, container and cloud instance you will ever touch runs Linux — so this is the layer underneath everything else in these notes.
Networking Basics L1Every "it can't connect" problem is one of four things: wrong address, wrong port, a firewall, or nothing listening.
SSH L1SSH is how you reach every server you will ever manage — and once `~/.ssh/config` is set up, it becomes one short word instead of a long command.
DevOps
Git tracks snapshots of your whole project, not changes to individual files — once that clicks, most of Git stops being confusing.
CI/CD L2CI answers "did this change break anything?" CD answers "can this change reach users safely?" They are different problems and people conflate them constantly.
Jenkins L2Jenkins is a job runner with an enormous plugin ecosystem — which is both why it survives everywhere and why every neglected Jenkins becomes a liability.
GitOps L3The cluster pulls its desired state from Git instead of a pipeline pushing into the cluster — which turns "what is deployed?" from an investigation into a `git log`.
Containers
Docker packages an application together with everything it needs to run, so the same package behaves identically on your laptop and in production.
Docker Images and Registries L2An image is a stack of read-only layers. Understanding that one fact explains build caching, image size, and why deleted secrets are still in there.
Kubernetes
You describe what you want running; Kubernetes keeps making reality match that description. Everything else is detail.
ConfigMaps and Secrets L2Both are key-value objects that decouple configuration from images. The only real difference is that a Secret is base64-encoded and handled slightly more carefully — it is **not** encrypted by default.
Helm L2Helm is a templating engine plus a release ledger. Separating those two jobs in your head explains every Helm problem you will have.
Ingress and TLS L2An Ingress object is a set of routing rules that does nothing on its own. A **controller** has to be installed to read it — and "my Ingress is ignored" is almost always that it is not.
Kubernetes Deployments L2A Deployment is how you get zero-downtime updates: it never edits a running pod, it creates new ones and removes old ones in a controlled order.
Kubernetes Pods L2A pod is not "a container" — it is a small group of containers that share an IP address and a filesystem, and always live and die together.
Kubernetes Services L2Pods get a new IP address every time they restart, so nothing can talk to them directly. A Service is the stable address that stays put.
Kubernetes Troubleshooting L2Three commands solve most problems: `describe` tells you what Kubernetes thinks, `logs` tells you what the app said, `get endpoints` tells you why traffic is not arriving.
Autoscaling and Scheduling L3Autoscaling adds pods; the scheduler decides where they go; the cluster autoscaler adds machines when there is nowhere. Three separate systems, and most "autoscaling is broken" is really one of the other two.
Building a Cluster with kops L3kops treats a cluster as a declarative object stored in S3 — you edit the spec, then tell it to make reality match, which is exactly the Kubernetes model applied to the cluster itself.
Kubernetes Architecture L3Nothing in Kubernetes calls anything. Every component watches the API server for a gap between what you asked for and what exists, then acts to close it — and that single sentence explains the whole system.
Kubernetes RBAC L3Four object types and one rule: permissions are **purely additive**, there is no deny. If someone can do something they should not, you remove a binding — you cannot add a rule to stop them.
Kubernetes Storage L3A PVC is a **request** for storage; a PV is the storage itself. You write the request, the cluster finds or creates the disk, and separating those two roles is what makes storage portable between clouds.
StatefulSets, DaemonSets and Jobs L3A Deployment assumes its pods are interchangeable. The other three workload types exist for the cases where they are not — because they have identity, because you need one per node, or because they are meant to finish.
Infrastructure as Code
SRE
Observability
Grafana stores no data. It queries other systems and draws the answer — which is why "Grafana is broken" is almost always the datasource or the query.
Observability Fundamentals L2Monitoring tells you **that** something is wrong. Observability is whether you can work out **why** without shipping new code — and the difference is what you can ask, not how many dashboards you have.
Prometheus L2Prometheus does not receive metrics — it goes and fetches them, on a timer, and that one design decision explains almost everything else about it.
Interviews
Almost nobody is rejected for not knowing a command. They are rejected for not being able to say *why*, and for having no method when the question has no clean answer.
Interview Tips and Tricks L4The same knowledge scores a rejection or a staff offer depending on how it is framed — and framing is a skill you can practise in an afternoon.
Troubleshooting Scenarios L4The round that decides most offers, and the one people prepare least — because it is the only round where a confident guess scores worse than an honest method.