
Fly.io
15 days ago

- Now Hiring
- Intern
- Level 1
- Level 2
- Senior
We’re building something ambitious at Fly.io: a new public cloud, running on our own hardware all over the world, built to make it easy to run apps close to users everywhere.
Fly Machines are containers running under hardware virtualization in our cloud. They’re so lightweight that, once created, they can be stopped and clean-started fast enough to respond to an incoming HTTP request. Unlike “function-as-a-service” platforms, they don’t have time budgets: you can run a Fly Machine for the duration of a single request, or for weeks or months.
The Fly platform connects Fly Machines to an Anycast network routing traffic into over 30 regions on all but one (guess) continent. There’s no load balancers to set up or network rules to write: you launch a Fly Machine and you’re live, worldwide, immediately.
We think this is pretty neat, and we’re looking for people to work with us on it.
This Role
We’re looking for engineers to join the team working on our Anycast network and its core component, fly-proxy
.
Our networking stack is almost entirely Rust (with a smattering of eBPF C). fly-proxy
is a relatively complex and advanced async Rust codebase, built on Tokio and Tower. We automatically track and balance loads for hundreds of thousands of applications deployed worldwide, maintaining independent execution pools for each customer. We take incoming traffic at edges and backhaul it over HTTP/2 to the closest machine, which changes in real time.
Fly Machines, which are built primarily in Golang, connect up with fly-proxy
through a Rust-based state distribution system called Corrosion, which is an open source project you can check out for yourself. Corrosion does SWIM gossip to drive a CRDT-structured SQLite database, with an end result that any component on any host in our fleet can get a real-time picture of what’s happening by making a native SQLite query.
If you’re ambitious, you can also check out our infra-log to see every way this can go wrong, because being right in the middle of all this is the job you’d be signing up for.
What We’re Doing Now
There are two big projects happening with our network stack right now.
The first is regionalization. We’ve gotten as far as we’re going to get with a single flat global topology. The next iteration of our proxy architecture runs multiple Corrosion instances, for each region, and publishes summary information to the global cloud; for a deep-cut analogy, think of how OSPF does areas. This has profound implications on how our proxies handle things like balancing and fly-replay
.
The second big project is evolving our private networking primitives. This will involve giving Fly Machines stable addresses that can be moved from hardware server to hardware server, and providing finer-grained access control, so that it’s even easier to run untrusted workloads on Fly Machines without having to do fiddly things inside of Fly Machines.
We think these are fun problems. We can’t promise they won’t be stressful problems. If that’s a kind of bittersweet you’re interested in, let’s see if we’d work well together.
How We Hire
This is a senior, fully-remote, full-time position.
In order to optimize for pay equity, Fly.io doesn’t negotiate salaries. We have standardized salaries for each employee level. The salary for this role is $190 to $225k USD, depending on level. We offer competitive equity grants with a long exercise window. We provide health care benefits, flexible vacation time (with a minimum), hardware/phone allowances, the standard stuff.
Our hiring process may be a little different from what you’re used to. We respect career experience but we aren’t hypnotized by it, and we’re thrilled at the prospect of discovering new talent. So instead of resumes and interviews, we’re going to show you the kind of work we’re doing and then see if you enjoy actually doing it, with “work-sample challenges”. Unlike a lot of places that assign “take-home problems”, our challenges are the backbone of our whole process; they’re not pre-screeners for an interview gauntlet. (We’re happy to talk, though!)
There’s more about us than you probably want to know at our hiring documentation.
If you’re interested, mail jobs+platform-proxy@fly.io. You can tell us a bit about yourself, if you like. Please also include your location (country), and your Github username, for work sample access.
- Work From
- Anywhere