Railway

All Positions

Senior Infra Engineer: Networking

Job description

Our core mission at Railway is to make software engineers higher leverage. We believe that people should be given powerful tools so that they can spend less time setting up to do, and more time doing.

Many infrastructure platforms simply focus on how you deploy your singular application, and not how these applications function in concert. Questions like “How do you build systems for zero downtime deployment”, “How do you do service-to-service communications”, etc are usually left up to the engineers to define.

At Railway, our goal is to be an all encompassing solution to all these problems. As such, we take special care as we define our networking infrastructure.

Note: Networking falls under the platform engineering umbrella. If you’re specialized, we’d love to chat! That said, we’d also like it noted you’re probably going to do a lot of non-networking + platform things

“But the world would be a better place if more engineers, like me, hated technology. The stuff I design, if I'm successful, nobody will ever notice. Things will just work, and will be self-managing”

- Radia Perlman

About the role

For this role, you will:

  • Setup, maintain, and evolve our edge routing networking layer (Homegrown eBPF L4 proxy)
  • Build an internal private network for dynamically meshing together services on the platform (eBPF/WireGuard)
  • Manage baremetal rack eBGP broadcasting to create a fault tolerant, network peered, bulletproof world wide anycast network
  • Build sophisticated-er-than-attacker DDoS mitigation strategies (yes we know it’s a cat and mouse game)
  • Build Golang GRPC services from scratch capable of supporting millions of users, and billion+ to come.
  • Define infrastructure that can be torn down, failed over, and reconstituted from scratch using principle of immutable infrastructure.
  • Write Engineering Requirement Documents to take something from idea, to defined tasks, to implementation, to monitoring it’s success.
  • Interface with our TypeScript and GraphQL to expose your microservice APIs for both internal and potentially external consumption
  • This is a high impact, high agency role with direct effect on company culture, trajectory, and outcome.

    About you

  • Experience with overlay networking technologies (VXLAN, WireGuard, etc)
  • Experience writing eBPF code to mux packets around a network
  • Hands-on experience operating and troubleshooting production-grade datacenter networks
  • A solid intuition about how long your solutions will last. All systems age. In startups, we can hope for 2-3 orders of magnitude, or 12-18mo.
  • The tact to implement your solution, creator monitors for it’s error boundaries, and document any requirements for when you’re not around
  • A great sense of direction and prioritization when it comes to dealing with the ambiguity of an early stage startup
  • A sense of grit to dive into a problem, implement a solution, scale that solution, and replace it when needed
  • A great set of communication skills for getting your point across, solution implemented, and beyond
  • Familiarity with the Linux networking stack and its various knobs and dials that require tuning because the out of the box settings are not suitable for our scale
  • Network latency charts excite you as you look for opportunities to make things faster/more reliable
  • Familiarity with BGP and internet routing (understanding of L1, especially in a DC is a huge plus!)s
  • We value and love to work with diverse persons from all backgrounds

    Things to know

    For better or worse, we're a startup; our team dynamics are different from companies of different sizes and stages.

    • We're distributed ALL across the globe, and that's only going to be more and more distributed. As a result, stuff is ALWAYS happening.
    • We do NOT expect you to work all the time, but you'll have to be diligent about your boundaries because the end of your day may overlap with the start of someone else's.
    • We're a small team, with high ownership, who are not only passionate about what we do, but seek to be exceptional as well. At the time of writing we're 21, serving hundreds of thousands of users. There's a lot of stuff going on, and a lot of ambiguity.
    • We want you to own it. We believe that ownership is a key to growth, and part of that growth is not only being able to make the choices, but owning the success, or failure, that comes with those choices.

    Benefits and perks

    At Railway, we provide best in class benefits. Great salary, full health benefits including dependents, strong equity grants, equipment stipend, and much more. For more details, check back on the main careers page.

    Beyond compensation, there are a few things that we believe that make working at Railway truly unique:

    • Autonomy: We have very few meetings. Just a Monday and a Friday to go over the Company Board. We think your time is sacred, whether it's at work, or outside of work.
    • Ownership: We're a company with a high ownership, high autonomy culture. We hope that you'll come in, help us, and over the course of many years do the best work of your life. When we bring you onboard, we expect you to change the company.
    • Novel problems/solutions: We're a startup that's well funded, with cool problems, which lets us implement novel solutions! We abhor “busywork” and think, whether it's community, engineering, operations, etc there's always opportunity for creative and high leverage solutions.
    • Growth: We want you to grow with us, but we know that talent is loaned, so when you figure out what area you want to grow in next, whether it's at Railway or outside, we'll make sure you land there.

    How we hire

    No tricks. No surprises. Here's the entire process.


    1

    Talk with us about the role

    This is completely open ended and we're just trying to see who you are, what you want to do, and where you wanna go.

    2

    Work on a small project to discuss in the interview

    Asynchronously implement the following:

  • Imagine a theoretical or actual system like Railway which can manage stateless and stateful compute workloads. Design the engine for managing networking
  • Interview Structure (60 Minutes):
  • Pre-work (before your interview): Complete your solution (advised)
  • 0-5m: introduction
  • 5-50m: Building (or expanding) your solution
  • 50-60m: Questions on Railway/Tech/etc
  • You can, and SHOULD! ask us questions ahead of time. Ask away!

    3

    Review your solution with the Team

    You'll sit down with someone on the team and go over the above. We'll poke into your solution, as well as get you acquainted with two more members of the team.

    Looking for: Learn about your problem solving skills. How you break down a problem and how you present a solution.

    4

    Meet the Team

    You'll meet the Team, which will be comprised of 4 people from vastly different sections of the company.

    Looking for: How you work with the rest of the team and communicate.

    5

    Chat with CEO

    Sit down with our founder and CEO for 30 minutes. This is a 1:1, open ended conversation.

    6

    Offer call

    Finally, we will present the offers, hammer out the details about your position, tee up onboarding, and start our journey together.


    Final Note: The interview goes both ways. Once again, please ask us things. Many things! Hard things. That's what we're here for.

    Apply for
    this position