The fullstack team is the front door to the Fly.io platform. Our goal is to surface the platform to developers in a simple and straightforward way.
In this role, you'll get up close and personal with our users. You'll develop the APIs that power the web and command line experience, and build the plumbing developers rely on to track their Fly.io usage. These are things our users directly interact with, and we think that's pretty fun.
We want you to help us solve some big problems:
- Give developers insight into their infrastructure usage. When a dev runs 10,000 VMs across six continents, they need a special UX to understand exactly what they're paying for.
- Help developers bring our tools to their big organizations. This means investing in features that make it ok for devs to use us at work. Stuff their bosses need. All without detracting from the developer experience.
Like most roles at Fly.io, your day-to-day work will touch a lot of other important things, from UX to security and even the low-level platform. You'll also help encode how we think about concepts like organizations, memberships, and billing at Fly.io.
This Role Is a Good Fit for You If:
- You're comfortable with Rails (our core API is written in Rails) and you're not scared to dive into some big, hairy database projects (we use Postgres, but we may need to expand beyond that and you'll help make those decisions). You're energized by the opportunity to help Fly.io's API scale and grow.
- Speaking of databases, you know how to model real life problems in Postgres, and you know when Postgres may not be the right fit. And you somehow keep things simple along the way.
- You care about users. You can empathize with developers and make decisions to improve their lives.
- You love jumping into something different every day! Sometimes that will be a web service in Rails, Elixir, and Go. Sometimes you'll wind up digging into our CLI or interfacing with our lower-level platform. Sometimes you'll be working through weird infrastructure problems that no one's solved before to make a feature possible.
- You're comfortable with uncertainty, maybe even thrive in it; you can take big ideas and break them down into small, concrete features and then build those incrementally.
- You like to move quickly to get your work into people's hands, even if it means pushing your messy drafts and improving them later. We're OK with imperfect solutions that have a really good UX and solve a real customer problem.
- You view writing code as part of, but not the whole, of your role. You're down to answer questions, help someone get unstuck, and mentor and develop the people around you. You are the younger version of you's favorite engineer.
You'll Know You're Succeeding in This Job If:
- You feel comfortable making Fly.io better for developers.
- You're an expert in our APIs, and you are constantly making it easier for other people at Fly to work on them.
- Our API is more stable and reliable because of your contributions.
- You've built features with flexibility in mind. We can experiment on the business side of things without needing to undertake big infrastructure projects.
- You know when to optimize for now versus later. You can make quick progress while keeping your eye on the end-goal.
- You're actively contributing to the growth of the people around you.
This is a mid to senior level fully-remote full-time position. You can live anywhere in the world; your work hours and holidays observed are up to you. The salary ranges from $120k to $200k USD. We offer competitive equity grants with a long exercise window. Hopefully that's enough to keep you intrigued; here's what you should really care about:
- We're a small team, almost entirely technical.
- We are active in developer communities, including our own at community.fly.io.
- Virtually all customer communication, documentation and blog posts are in writing. We are a global company, but most of our communication is in English. Clear writing in English is essential.
- We are remote, with team members in Colorado, Quebec, Chicago, London, Mexico, Spain, Virginia, Brazil, and Utah. Most internal communication is written, and often asynchronous. You'll want to be comfortable with not getting an immediate response for everything, but also know when you need to get an immediate response for something.
- We are an unusually public team; you'd want to be comfortable working in open channels rather than secretively over in a dark corner.
- We're a real company - hopefully that goes without saying - and this is a real, according-to-Hoyle full-time job with health care for US employees, flexible vacation time (with a minimum), hardware/phone allowances, the standard stuff.
How We Hire People
We're weird about hiring. We're skeptical of resumes and we don't trust traditional interviews. We respect career experience but we're more excited about potential.
The premise of our hiring process is that we're going to give you two challenges, a "work sample" and a "work day", that simulate the kind of work you'll actually be doing here. 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. For the "work sample", you'll build an invoices model and migration so we can properly bill users (we'll tell you more). You can do this challenge at your own pace, and it should take about 2 hours. For the "work day" you'll join two of us on Slack to work through a problem together.
If you're interested, mail email@example.com. You can tell us a bit about yourself if you like. Please also include 1. your GitHub username (so we can create a private work sample repo for you) 2. your location (so we know what timezone you're in for scheduling) and 3. a sentence about your favorite food (so we know you're not a bot.)