Hello everybody, and welcome to this week’s episode of Cognixia’s podcast. We are very glad you enjoy listening to us and we hope we are helping you learn something new every week. We also love all the feedback and suggestions you are sending to us so keep it coming.
This week we talk about a very popular role in recent times – the role of a platform engineer. Platform engineering has become a very important discipline in organizations everywhere as they grow to realize how indispensable a platform engineering team is for the enterprise.
But before we begin, let us try to understand what is platform engineering.
According to platformengineering.org, Platform engineering is the discipline of designing and building toolchains and workflows that enable self-service capabilities for the software engineering organizations in the cloud-native era.
Now that we know what is platform engineering, let us try to answer who is a platform engineer. A platform engineer is a person in an organization who provides an integrated product that covers the operational necessities of the entire lifecycle of an application. This integrated product that the platform engineers provide is often referred to as an Internal Developer Platform. Since we have set out to answer questions, let us also try to answer what is an Internal Developer Platform. An Internal Developer Platform or IDP is a layer of best-in-class tech and tooling that an engineering team would have at hand. The IDP would help the operations team to structure their setup and it also enables the development team to meet their needs.
It is commonly said that if platform engineering is done correctly, it would mean providing golden paths and paved roads to the teams which would match the preferred abstraction levels of individual developers who would be primarily interacting with the IDP layer.
So, what are these ‘golden paths and paved roads’?
Well, let’s look at it this way. In today’s times, most CI/CD setups lay major emphasis on updating images. The CI would build these images and update the image path in configs, and the task is accomplished. This is the baseline for most deployment use cases that we encounter these days. However, if one encounters tasks that go beyond this basic workflow, things would very quickly get extremely complicated and take up a lot of time. And we already know how scarce a resource time can be in today’s competitive times, right?
Let us give you some examples of these tasks we are talking about that go beyond the basic workflow but could quite commonly be required:
- Adding environment variables and changing their configurations
- Adding services and dependencies
- Rolling back builds and de-bugging
- Spinning new environments
- Refactoring
- Adding resources
- Changing resources
- Enforcing RBAC, etc.
This is where platform engineering becomes critical and it would tell you about what a platform engineer is tasked with doing. A platform engineer would bind these complex tasks into a paved road that a developer could literally take off on. Instead of everybody getting their hands into operating everything leading to utter chaos since not everybody would have an understanding of the complete toolchain, a platform engineer would supply the essential glue which would bind everything together to form a consistent self-service experience.
We would like to quote Evan Bottcher from the renowned company, Thoughtworks, on this:
“Platforms are a foundation of self-service APIs, tools, services, knowledge, and support, which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace with reduced coordination.”
Similarly, we have Kasper von Gruenberg from Humanitec, who gives a very interesting definition of an Internal Developer Platform. He says that an Internal Developer Platform is a self-service layer that allows developers to interact independently with their organization’s delivery setup, enabling them to self-serve environments, deployments, databases, logs, and everything else they might require for running their applications smoothly.
So, let us come back to the main question that we had set out to answer. What does a platform engineer do?
A platform engineer writes code that would bridge the gap between software and hardware. They play a very critical role in the software and hardware spaces. They are responsible for running diagnostic tests which would verify if the right hardware has been designed for the requirement at hand. They are also responsible for administering all software service configurations into a range of different environments, as well as supervising the application packaging processes while also working to maintain optimal quality for every application. Apart from this, platform engineers also manage and maintain all the applications, prepare ad hoc reports for the different systems and assets they manage, and they evaluate as well as document all the operating systems according to the required standards & compliances plus associate requests. Platform engineers design and maintain all desktop and separate appointment activities. They would help out with template installation and would be responsible for preparing the scripts for all software development activities. They would be managing and preparing the reports for the automated process deployment while also working to further develop and refine these reports for being presented to the leadership team and the management.
So, this should give you some idea of what the role of platform engineers involves. Let us do a quick recap of the responsibilities performed by platform engineers, shall we?
A platform engineer acts as a technical point of contact for customer engagements. They educate the customers on solutions as appropriate throughout the project duration or service life. They are responsible for technical decision-making and ensuring successful outcomes. They would be regarded as owners of the engineering execution tasks in their teams. They would develop the business cases for obtaining investments for driving improvement in the metrics. They would work to build the automation for supporting the product development and data analytics teams. They would create, maintain, and track the designs at the high levels as well as at the detailed design level along with actively engaging in issue resolution. They would identify new and emerging technologies for adoption while driving consistent and thorough code reviews. They would supply high-quality content deliverables using different document templates. They actively work with the product management teams to direct the priorities suitably and make sure that everything gets executed perfectly. Their role would require constant research and learning of current and emerging technologies so they can propose changes and modifications where required.
Now that we have some understanding of what a platform engineer does, let us quickly look at what skills you need to have to be a successful platform engineer, shall we?
A platform engineer needs to have a Bachelor’s degree n computer science or engineering. They need to be adept with Python and other computer programming languages. They should be proficient in working with APIs. They need to be skilled in working with scripting and frameworks. And lastly, they should be well-versed in working with a range of operating systems.
And with that, we now have a basic understanding of the role of a platform engineer and what you need to pursue a career as a platform engineer. To get the right skills and knowledge in emerging technologies, do check out our live online instructor-led training and certification programs on our website.
With that, we come to an end to this week’s episode of the Cognixia podcast. Keep sending us your feedback and suggestions. Until next week! Happy learning!