It's October 2023 and there are so many engineering roles in the industry. One area in particular has an identity crisis and that is the role that creates environments and helps developers get their code there. Is it a Platform Engineer? Is it a DevOps Engineer? SRE? Something else !?
It makes it hard for new engineers in this space to know how to get to the coveted Senior Role, hard for a Senior to guide new engineers, and a silly amount of hard for anyone involved in recruitment to get it done !
It is provisioning virtualised infrastructure, like a VM or anything in the cloud. It is being the steward of the infrastructure, feeding and watering it. It is taking that infrastructure, integrating it with other things and turning it into a system of value, like an API. It's adapting the system to change, like giving it more CPU at Christmas or fixing the expired certificate. It's helping developers get their code to production.
In this brave new world we embrace the principles of DevOps, SRE, Agile etc etc. We are the courier of change and the engineers of resilience.
The dust for Platform Engineering seems to be settling in the realm of providing Internal Developer Platforms, such as a Continuous Development platform like Spinnaker. So, while there is a strong need for Developer Advocacy in Platform Engineering it isn't really about delivering application code to an environment. It is more like an enablement function.
You want to be right there, with the developers. Providing that autonomy to adapt, closing in the feedback loops, understanding the purpose of the application for the business and the customer. You want to be part of that team where the developers live, alongside the other engineers or people that create and maintain the system. Team being a loose word for a group for people, or, a group of groups of people that work on a product.
If you don't know who's who, what they do, and what they are good at, then you are probably too far away.
- Networking (TLS)
- Datacentre basics (racks, servers, switches)
- Virtualisation platform basics
- Storage
- SQL
- VM basics (what is a VM, provisioning, destroying, maintaining)
- Operating system administration
- A programming language
- Load balancing and scaling
- Continuous integration
- Continuous development
- Security (RBAC, Least Privilege, CVEs)
- Observability
- Monitoring and Alerting