We’re working on super fun problems and are looking for more people to join us. In particular: we’re looking for full-stack developers. We expect this will be a good role for early-to-mid-level career developers.
Fly.io’s users interact with us almost entirely with
flyctl, our CLI interface. We are a CLI-first team. But our UI and UX work is starting to get more ambitious. And that’s what “full-stack” means here: the parts of our product that users interact directly with, particularly when those parts have user interfaces.
Our UX stack today is a combination of Rails, GraphQL, and some Go (our platform stack is Rust and Go). But a few months ago, we fell in with a bad crowd, and got ourselves a little hooked on Elixir (Elixir is easy to love, but it also really sings on Fly.io). So there’s Elixir in our plans as well; probably more new Elixir than Rails.
We don’t care if you’re a Rails or Elixir expert, or if you have a mile-long resume. All we really care about is whether, if we give you a problem that involves reading or writing some Rails or Elixir code, you can marshal the resources needed to solve it. If that involves having Programming Elixir open in front of you while you type your first ever Elixir symbols into an editor, that’s fine, as long as your work holds up!
The Part Where We Sell the Role
There are lots of different dev jobs out there and different gigs are good fits for different people. Here’s a stab at some things that might indicate this role is a good fit for you:
- You’re the kind of person who gets a dopamine hit from standing up Rails, Phoenix, or Django-type applications, maybe sometimes just to scratch an itch. Unlike platform and backend development, which involves a lot of deep and subtle low-level changes, this role is all about stuff that directly impacts our customers experience. It’s a lot of visible stuff, and, unlike platform changes that can be tricky to roll out, this is mostly “instant gratification” development in rapid development environments.
- You enjoy learning new stuff, even when the learning is getting out of hand. We’re a small team building something that is both very ambitious — a whole new cloud hosting platform! — and very technically deep. We’re unafraid of new technology, from frameworks to languages to kernel features, maybe even to a fault.
- You think about starting your own company some day. This work is connected directly into the mains electricity of our business. Your portfolio here would start from the moment a prospective user reads one of our blog posts, clicks through to our home page, continues through our sign-up flow, and gets their own app deployed successfully.
Some other things you’d want to know about us:
- We’re a small team, almost entirely technical, and everyone wears a lot of hats.
- We’re remote, with team members in Colorado, Quebec, Chicago, London, Virginia, Rwanda, and Utah.
- We’re an unusually public team, with an online community (at community.fly.io) that we try to be chatty with; you’d want to be comfortable not working secretively in a dark room (you can work noisily in a dark room if that’s your thing).
- We’re a team, not a family, but we have families and want to be the kind of place where work doesn’t get in the way of that.
- We’re a real company – we hope that goes without saying – and this is a real, according-to-Hoyle full-time job with health care for US employees, flexible vacation time, hardware/phone allowances, the standard stuff. The compensation range for this role is $90k-$97k per annum, pro-rated for the three-month duration of an internship.
How We Hire People
We are weird about hiring. We’re skeptical of resumes and we don’t trust interviews (we’re happy to talk, though). We respect career experience but we aren’t hypnotized by it, and we’re thrilled at the prospect of discovering new talent.
The premise of our hiring process is that we’re going to show you the kind of work we’re doing and then see if you enjoy actually doing it; “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 don’t time candidates or look over their shoulders. We’re not interested in gotchas; we want you to show yourself in your best light, and we want the environment you work in to be comfortable and realistic (every one of us has 90 Google tabs open looking up random programming stuff).
As a heads up, here’s some stuff you’d want to be comfortable getting yourself into gear to work on:
- Comprehending and hacking on existing Rails and Elixir/Phoenix code. Once again: we don’t care if you’ve never before updated an ActiveRecord object in anger, or run an IEx session before; we just need you to be comfortable jumping into it now.
- Deploying an application soup-to-nuts on your own (we’ll ask you to do it on Fly.io, which should make it easier).
- Building code with browser user-interface components. This isn’t a visual design role; we’ve got visual design people on the team. But you’d want to be comfortable building stuff that visual designers can chrome up.
Shoot us an email at email@example.com. You can tell us a little about yourself if you like. Either way, tell us a short story about the last language or framework you picked up that you didn't enjoy (maybe you like it now, though).
We'll get back to you with an opportunity to connect with us on a call at your convenience (we don't do phone screens, but we will certainly take the time to answer any questions you have) and details about our work sample challenge.