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.