高级平台工程师:存储
Senior Platform Engineer: Storage
职位描述
Railway的核心使命是让开发者以最小的摩擦创建、发布和运行软件。实现这一使命的基础是一系列坚固且可组合的基本组件,其中最重要的就是存储。
作为存储工程师,你将构建、演进并运维使Railway能够托管有状态工作负载的系统。Railway在多个自建数据中心和大量云虚拟机上运行。这要求我们构建高可用性原语,这些原语能够在任何地方运行,并且可以在不同环境中迁移,几乎(理想情况下为零)停机时间。移动存储是这个任务中最困难的挑战之一,这迫使我们从基础原理出发,投入资源构建定制系统。
你将主要负责我们新的日志结构块存储系统,该系统专为性能、高密度和跨云和裸金属环境的高可用性而设计。
想了解我们的工作文化吗?这里有三部分的博客系列,可以帮助你看到我们团队独特的工作方式(第1部分 https://blog.railway.app/p/how-we-work,第2部分 https://blog.railway.app/p/how-we-work-volume-ii,第3部分 https://blog.railway.app/p/how-we-work-volume-iii,第4部分 https://blog.railway.com/p/how-we-work-volume-iv)。
好奇吗?这里有三篇博客文章,深入介绍了这个团队曾参与的令人兴奋的项目:1 https://blog.railway.com/p/launch-week-01-scale-to-zero,2 https://blog.railway.com/p/data-center-build-part-one,3 https://blog.railway.com/p/data-center-build-part-two
关于该职位
在这个职位中,你将:
- 领导Railway块存储系统的开发
- 支持存储系统的运维并参与值班轮班
- 推动存储服务器硬件的规格制定
- 构建支持容量规划的系统
- 设计并构建与编排服务的接口,以支持协调的工作流程,如在线备份和零停机/实时工作负载迁移
- 编写工程需求文档,将一个想法从概念阶段转化为明确的任务,再到实现,并监控其成功
- 制定更长期的架构方向,以扩展平台
这是一个影响深远、自主性强的职位,对公司的文化、发展轨迹和结果有直接影响。
关于你
你需要满足以下条件之一:
- 你曾构建和运维过分布式存储系统,并对基本原理有深刻理解。
- 你具备强大的系统工程能力。
查看英文原文
Job description
Our core mission at Railway is to let developers create, ship and operate software with minimal friction. Fundamental to that mission is an array of rock-solid and composable primitives, principal among these - storage.
As a Storage Engineer you will build, evolve and operate the systems that allow Railway to host stateful workloads. Railway operates across multiple colocation datacenters and large fleets of cloud VMs. This demands we build high-availability primitives that “work anywhere” and that can migrate between different environments with minimal (ideally zero) downtime. Moving storage is the hardest challenge in this task, and it has required us to invest in building custom systems from first-principles.
You will principally be working on our new log structured block-storage system that is designed for performance, high-density and high-availability across cloud and baremetal environments.
Want to learn about our work culture? Here is a three-part blog series that will help you see the unique ways our team works (Parts 1 https://blog.railway.app/p/how-we-work, 2 https://blog.railway.app/p/how-we-work-volume-ii, 3 https://blog.railway.app/p/how-we-work-volume-iii, and 4 https://blog.railway.com/p/how-we-work-volume-iv).
Curious? Here are 3 blog posts that dive into exciting projects this team has worked on: 1 https://blog.railway.com/p/launch-week-01-scale-to-zero, 2 https://blog.railway.com/p/data-center-build-part-one, 3 https://blog.railway.com/p/data-center-build-part-two
ABOUT THE ROLE
For this role, you will:
- Lead the development of Railway's block storage systems
- Support the operation of storage systems and participate in on-call rotations
- Drive the specification of storage server hardware
- Build systems to support capacity planning
- Design and build interfaces with orchestration services to support coordinated workflows such as on-line backups and zero-downtime/live workload migration
- Write Engineering Requirement Documents to take something from idea, to defined tasks, to implementation, to monitoring its success
- Set the longer-term architectural direction to scale the platform
This is a high impact, high agency role with direct effect on company culture, trajectory, and outcome.
ABOUT YOU
You should meet one or more of the following requirements:
- You've built and operated distributed storage systems and have a strong grasp of first-principles.
- You have strong systems engineering experience in one or more of: filesystems, block devices, kernel I/O paths, SPDK, io_uring, vhost-user-blk, ublk or virtualization
- You have a deep understanding of the algorithms and techniques behind building fast, performant and reliable storage systems.
- You have experience building large distributed systems where consistency and availability was critical.
- You have a strong background in performance engineering at the I/O layer on Linux.
- You have strong foundation in systems programming with Rust.
- You're comfortable owning a problem alone at a small company.
- You have 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-18 months.
- You have the grit to dive into a problem, implement a solution, scale that solution, and replace it when needed.
- You communicate well enough to get your point across, your solution implemented, and documented for when you're not around.
If your background is in adjacent infrastructure (hypervisor I/O, kernel development, distributed systems, persistent memory) and you want to apply that depth to storage, we want to hear from you.
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 https://railway.app/careers/full-stack.
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:
- Pre-interview: Design a Storage Engine to power something like Railway's Volume
- You can, and SHOULD! ask us questions ahead of time.
3. Review your solution with the Team
1. 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.
1. Looking for: Learn about your problem solving skills. How you break down a problem and how you present a solution.
2. Interview Structure (60 Minutes):
1. Prework (submitted before your interview): Complete your solution
2. 0-5m: introduction
3. 5-50m: Building (or expanding) your solution
4. 50-60m: Questions on Railway/Tech/etc
4. Meet the Team
1. You'll meet the Team, which will be comprised of 4 people from vastly different sections of the company.
1. Looking for: How you work with the rest of the team and communicate.
5. Offer and Details Chat with CEO
1. Finally, we will go over the process, the role, and hammer out the details about your position, onboarding, and all the deets.
#Global