Skip to main content

Platform Engineering - Advanced

info

Work in progress.

1.1 Introduction to Platform Engineering​

Platform Engineering is all about delivering platforms to users as products. These users are usually developers themselves, yet they need tooling for their day-to-day work, such as source hosting platforms, task management, or documentation. As a Platform Engineer, you will be tasked with delivering and supporting these platforms' reliability and having a product-centric mindset, as this helps deliver the best experiences for the end users of these platforms.

What you need to know​

  • Platform engineers take the responsibility of infrastructure management out of the developer's hands and provide ready-to-use products.
  • They build, maintain, and operate internal developer platforms (IDPs), which are sets of tools and infrastructure that standardize software development, deployment, and operation processes.
  • Platform engineers work closely with software developers to ensure the platform is user-friendly and educate them on platform usage best practices.
  • They stay informed of the latest industry trends and technologies to make sure that business innovation can continue at high velocity, keeping their organization ahead of the curve.

Resources​

1.2 Platform Engineering Skillset​

What you need to know​

  • As with any other job title, it takes certain skills to be an efficient and productive Platform Engineer and a specific mindset. We will go through these two points in detail.
  • A successful Platform Engineer requires a diverse set of skills that combine technical expertise, strategic thinking, and a user-focused mindset.
  • The following is a list of key skills needed for a Platform Engineer:
    • Coding: Strong knowledge of languages like Python, Go, or Bash to build or automate the platform capabilities.
    • Cloud Computing: Expertise in cloud platforms such as AWS, Azure, or Google Cloud, which is usually the cornerstone of the platform.
    • Networking: Solid understanding of networking concepts, such as load balancing, DNS, firewalls, and service mesh technologies, to ensure reliable and secure platform operations.
    • CI/CD Pipelines: Advanced knowledge of continuous integration and continuous delivery (CI/CD) pipelines and a strong mindset for automating and streamlining delivery processes. That could be done using different tools like Jenkins, GitHub Actions, GitLab CI, or ArgoCD.
    • Containerization: Extensive experience with container tools like Docker and Kubernetes. Especially in managing multi-cluster environments.
    • Infrastructure as Code (IaC): Strong skills in IaC to define, deploy, and manage infrastructure in a scalable and reproducible manner. That could be done using tools such as Terraform, Pulumi, or Crossplane.
    • Observability: Proficiency in the 3 pillars of observability (logs, metrics, and traces) to ensure visibility into platform health. That could be done using tools like Prometheus, Grafana, ELK stack, or other services.
    • Security: Knowledge of securing platforms and infrastructure, which include identity and access management (IAM), encryption, and vulnerability assessment tools.
  • These skills collectively enable Platform Engineers to design, build, and manage scalable, efficient, and user-friendly platforms that empower development teams and drive business innovation.

Resources​

1.3 Platform Engineer Mindset​

What you need to know​

  • Adopting a product management mindset for platform engineering.
  • Building developer personas and understanding their workflows.
  • Creating feedback loops with end-users (developers and stakeholders).
  • Metrics-driven development for platform features.