Fly.io builds computers for agents. It’s the thing we’re excited about right now and the future we’re building toward: agents that need a real computer, fast to start, isolated, disposable, reachable from anywhere, spun up thousands at a time and gone again. That unlocks a category of work that doesn’t happen on a shared sandbox, and demand for it is a big part of why our fleet is growing the way it is.
The good news, and the reason we can move quickly on it, is that we already built the machine that does this and it has thousands of customers. Our platform transmogrifies Docker containers into Firecracker micro-VMs that run on our own hardware around the world, and connects all of them to a global Anycast network that picks up requests from everywhere and routes them to the nearest VM. That’s what runs apps close to users, and teams run their production workloads on it today. Computers for agents isn’t a separate product bolted on the side, they are born out of the same platform. Our infrastructure needs to support everything, be it an app made by an agent, or a computer that an agent runs on, or the millions of apps that have been running on our platform since before the age of agents.
Every other engineering team at Fly owns a vertical and sees its own slice of the customer. The Fullstack team sees the path the customer actually walks across all of them: sign up, get to a first deploy, run something, get billed for it, come back and administer it. That path crosses every vertical and belongs to none of them, which is why the seams between them are where the experience can quietly break.
About this role
Fullstack engineers at Fly are versatile, so the work they do can be sourced from other engineering teams or from go-to-market, and they adapt to scenarios they have not seen before. They are zoomed out, so they carry the parts of the product that span verticals rather than sitting inside one: the adoption journey from first touch to first deploy, the billing path from usage to invoice, and project administration across Fly and Sprites.
Fullstack engineers work primarily in Elixir/Phoenix and Ruby/Rails, but they might dip into JavaScript, Golang or just about any other language and framework we use. The work is front-end and interaction design as much as backend forensics, stitching APIs together for new features, and combing through existing code and telemetry to understand where the seams are breaking down and turning into reliability issues. User needs drive what we work on.
We aim to ship tightly scoped features and continue to refine them with rapid iterations. We use coding agents to accelerate this process, but not blindly so; humans are still in the loop before anything ships.
Finally, Fly.io is weird about product management, and that’s especially the case with the type of UX work you’ll be doing. You will not have a PM to rely on for feature breakdowns or roadmaps. You’ll need to be prepared to come out of the gate with strong ideas about what’s going to make our users’ lives better, and what’s going to make them happy in the long run.
Seriously, this is a fussy role
We’re not afraid to talk you out of it. You’ll need to be:
- Attuned to the needs of users who ship things on public clouds. Check out our public community if you think that’s easy to do consistently.
- Relentlessly focused on cutting scope to ship the most important thing for customers and then iterating from there based on user feedback. We work with 2-week horizons here; 6 months from now might as well be the year 3000.
- Rock solid with Elixir/Phoenix. Unafraid of Go. Or Ruby. Or anything else.
- Comfortable leveraging AI and agents to help you achieve significant outcomes quickly.
- Able to keep a model in your head of ambitious features that are implemented across many layers of software, many of which you don’t own. You have to be willing to get your brain dirty.
To us, all these things that make this job complicated also make it interesting. If we’ve held your attention this far, let’s see if we can make something work.
How We Hire
This is a senior level, remote, full-time position. We’re consolidating the regions we’re hiring in to make our operations run more smoothly. At this time, that means we’re looking for candidates based in Australia, Brazil, Canada, France, Germany, Greece, New Zealand, Poland, Portugal, the United Kingdom, and the United States.
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 $190k USD, and we offer competitive equity grants with a long exercise window. We provide 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+fullstack@fly.io. You can tell us a bit about yourself, if you like. Please include your location, your Github username for work sample access, and your go-to snack when you’ve got a craving you just have to satisfy.