Compared with development, the subject changes: not the feature but the machine it runs on and the traces it leaves behind.
Do now
- I take a service that has fallen over or gone slow apart layer by layer instead of rebooting itI get from it does not work to a specific place: DNS, a route, TLS, the load balancer.
- I build my own image and make it smaller deliberatelyI can explain what every layer in the image is for.
- I make the build and the deployment repeatable somewhere other than my laptopThe pipeline builds the project from scratch on a clean machine.
- I put my scripts in the repository and send them to reviewThe script lives in a repository rather than in a chat thread.
Where next
Sideways out of the role
- Backend developer back
- Architect deeper
- Data and machine learning sideways
- Team lead, tech lead, engineering manager sideways
What this step asks of you
I live confidently in Linux with no graphical interface
I can find what ate the disk and the processor without installing anything extra.I take a network problem apart layer by layer, not by rebooting
I can get from it does not work to a specific place: DNS, a route, TLS, the load balancer.I build and run containers deliberately
I understand how a container differs from a virtual machine and why my image weighs a gigabyte.I build the pipeline for build and deployment
The project has a repeatable build that can be run from somewhere other than my laptop.I write code, not only configs
My scripts live in a repository, go through review and have tests.
Common mistakes
- Fixing things by rebooting: the cause stays and comes back at the worst moment.
- Collecting knowledge in your own head and your personal scripts: the team starts depending on you being there.
- Treating configs as something other than code: with no review and no history a change takes production down silently.
What to learn
- FoundationsOperating systems
- Languages and paradigmsPython
- Infrastructure, tooling and qualityCI/CD, infrastructure and cloudsComputer networks