Hi, I'm Ethan K. Francis

Platform Engineer I build and run the systems teams depend on, including automation, reliability, and clear alerts when something breaks Automation, Observability, and Machine Learning Go, Python, and automation, plus hands-on learning for running models in production Collaborate, Learn, and Ship Work That Matters Passionate about high-impact projects with talented, collaborative teams

Writing

Trunk-Based Development vs Long-Lived Feature Branches I am breaking a long-lived branch habit and learning to keep main honest with short branches and frequent merges Demystifying ADRs A simple way to write down why you made a big decision, so you can actually find the answer later. Atomic Habits: systems over goals You do not rise to the level of your goals. You fall to the level of your systems.

…more

I'm currently working on…

Media Vertical Modernization Leading how we modernize legacy media workflows without stopping production Concourse to RabbitMQ Pipeline Migration Moving a Go pipeline from CI orchestration to message queues with a safe place for failed jobs Learning C++ A lower-level language with more control and more responsibility, worth understanding even if it is not my daily driver

…more

I'm planning to work on…

Cache-Aside API Go API that checks Redis first, falls back to the database, with metrics on hits and misses Search API Python search API backed by OpenSearch to index documents and run full-text queries Event Patterns Hands-on Go demos for RabbitMQ and Kafka, comparing queues and event logs side by side

…more

I've also worked on…

This is a non-exhaustive list and omits client projects due to contract reasons.

Edge Observability with Prometheus Custom Cloudflare metrics exporter for fewer false alerts and a clearer picture of edge traffic Ticket Queue Manager and PATRA Merge duplicate alert tickets automatically; renew expiring pipeline tokens before they break builds OpenSearch Migration at Scale Led ElasticSearch to OpenSearch migration with single sign-on and staged rollouts per environment RabbitMQ Video Processing Pipeline Queue-backed video resize API that accepts requests fast and does heavy work in background workers Kubernetes Internal Load Balancing HAProxy internal load balancers on one of our first Kubernetes clusters, volunteered when the platform was still greenfield HedgeDoc Team Rollout Self-hosted collaborative markdown so teams could replace scattered email threads with searchable shared docs Kube Pod Self-Healer Watches failing Kubernetes pods and auto-fixes common problems like crash loops and out-of-memory kills Observability Toolkit Custom metrics plus deliberate failure tests to prove monitoring and alerts actually work

…more