The Exit Interview: JP Phillips

Question 1: Why, JP? Just why? LOL. When I looked at what I wanted to see from here in the next 3-4 years, it didn’t really match up with where we’re currently heading. Specifically, with our new focus on MPG [Managed Postgres] and [llm] [llm]. Edit

Thomas Ptacek
11 min readadvanced
--
View Original

Overview

The article features an exit interview with JP Phillips, a key member of the Fly.io engineering team, who reflects on his four years at the company. He discusses his contributions to the Fly Machines platform, his thoughts on the company's direction, and insights into the technologies and designs he worked on.

What You'll Learn

1

How to build a distributed system that enables developers to run workloads globally

2

Why using finite state machines (FSM) can improve system design and execution

3

How to leverage OpenTelemetry for effective system monitoring and troubleshooting

Prerequisites & Requirements

  • Understanding of distributed systems and cloud computing concepts
  • Familiarity with Golang and Rust programming languages(optional)

Key Questions Answered

What were JP Phillips' main contributions at Fly.io?
JP Phillips contributed significantly to the Fly Machines platform, enabling developers to run workloads from an OCI image and an API call globally. He also focused on eliminating the reliance on HashiCorp Nomad, achieving a more streamlined orchestration system.
What are the design principles behind the Fly Machines API?
The Fly Machines API is designed to operate without central coordination, allowing for quick create calls with a P90 response time of under 5 seconds in most regions. This design choice emphasizes efficiency and scalability in managing virtual machines.
What did JP Phillips think about GraphQL and Elixir?
JP Phillips expressed a strong dislike for GraphQL, stating it slows down development, while he found Elixir to be a mixed experience, indicating that both technologies posed challenges during his work at Fly.io.
How did JP Phillips utilize OpenTelemetry at Fly.io?
JP Phillips implemented OpenTelemetry at Fly.io to enhance system monitoring and troubleshooting capabilities. He emphasized its importance in managing tracing data and ensuring system reliability, despite initial concerns about costs.

Key Statistics & Figures

P90 response time for Fly Machine create calls
sub-5-seconds
This performance metric applies to most regions, highlighting the efficiency of the Fly Machines API.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Consider implementing finite state machines (FSM) in your systems to enhance reliability and execution flow.
FSMs can help manage complex workflows by breaking them down into manageable states, making it easier to track progress and handle failures.
2
Leverage OpenTelemetry for comprehensive monitoring of your applications to improve troubleshooting and performance analysis.
Using OpenTelemetry can provide insights into system behavior and performance, allowing for quicker identification of issues and better resource management.
3
Evaluate the trade-offs of using technologies like GraphQL and Elixir in your projects to ensure they align with your team's workflow.
Understanding the impact of these technologies on development speed and team productivity can help in making informed decisions about tech stacks.

Common Pitfalls

1
Over-reliance on specific technologies like GraphQL can hinder development speed.
JP Phillips noted that GraphQL slowed down the development process, suggesting teams should carefully assess the impact of their technology choices.

Related Concepts

Distributed Systems
Finite State Machines
Cloud Computing
Opentelemetry
Golang And Rust Programming