Building Railway with Jake Cooper

Vedant: To start off, can you just give us some generic information, like your name, what you do, and maybe some hobbies you have?

Jake: My name is Jake Cooper. I am 26 years old now. I run a company called Railway. In my spare time, I play a bunch of video games, I read some books, I hang out with my lizard, hang with my roommates. I'm from a small town called Nanaimo on Vancouver Island, up in Canada, and now I live and work in San Francisco.

aerial photo of Nanaimo

Vedant: What made you go into the tech industry in general?

Jake: Yeah, I was always a pretty dorky kid, constantly fiddling with a bunch of stuff. I started in hobbyist electrical engineering, sort of. I was building portable Nintendo 64s. Actually, I guess that's not true. I started writing some hacks for video games in C++, but that was very, very brief.

I guess the core of getting into tech was building portable Nintendo 64s, and I ended up on Palmer Luckey's old forums, the guy who founded Oculus. I was working on these forums, and I was also writing a bit of code on the side, because I was trading Team Fortress 2 hats, and I was like, well, I really need some UIs for visualizing people's backpacks. So I was constantly using coding or tech as this tool to just do the things that I wanted to do.

I worked on those things for a little while. I think I was 15 or 16 at the time. Then went off to college, and I thought, cool, I'm gonna go do electrical engineering. It sounds really sweet. I got to college and I realized that if you want to do electrical engineering, you need a bunch of grants, and it takes a really long time. There was no real "good" way to print CPUs, or print boards, or anything like that at the time. So it was constantly this big bullshit exercise of designing a bunch of stuff on these really long feedback loops.

I don't wanna say it sucks, because [electrical engineering] is still really, really cool, but it's not fast enough, right? I've been one of those people that's like, I really need to see my thing, because that's what fills my gas tank and motivates me. So I thought, how do you make this process quicker? Because I just can't see myself working for an electrical engineering job where I have to do this, and it takes a while to machine these things. Then if you fuck something up, there's a whole assembly line. Code is just a lot quicker, right?

So I switched out of electrical engineering into software engineering, and ended up graduating with an amalgam of electrical engineering and software engineering courses. My college said, yeah, fuck it, here's a software engineering degree. So I said, okay, cool, I'm gonna go do some engineering stuff. That led into my first job. I was working for Wolfram part time near the end of college, and then I just rolled through a few jobs. I worked at Bloomberg, I worked at Uber. And then I started Railway.

Vedant: What was the big motivator for you to start Railway?

Jake: I just thought everything needed to be a lot easier, right? I started Railway after I left Uber. I was looking for the next thing I wanted to work on, I knew it was software infrastructure, and I knew I wanted to hack on a few different things. So I built this crappy little script that just dumped a bunch of Postgres instances on a VM. Whenever I needed anything else, whether it was a Postgres instance or whatever it may be, I would just have access to it. Then I would use Vercel to build and deploy all my stuff.

I'd always loved the Vercel and the Heroku experience, but it never really seemed to extend well to databases. There was always this huge hole. So I went and asked Vercel, are you guys wanting to build this? They said, no, we don't really want to go and build that. I said okay, and then went and asked a few other people. I thought Prisma would be doing a hosted cloud version, but Johannes from Prisma said, no, we don't want to do the database stuff. We just want to do the layer in between the application layer and database.

zero to blog in 5s - 10/23/20

So I was like, shit, doesn't look like anybody's building this. I went to a few other people, I went to talk to GitHub, and I was like, now you guys have the code layer, you have Azure, you might be wanting to do this, right? They also said, no, we're not really interested in doing this. So I thought, fuck, I guess I'm gonna have to build this myself, right?

I'd just been hacking a bunch of things, and I wasn't really hyped on anything. But I was constantly going back and editing a provisioning engine to add these things, because I wanted Redis, I wanted to be able to deploy arbitrary application code, etc. It just ended up that the thing worked, and then I was sharing it with a few friends. That's just how it got started.

Vedant: Did you leave Uber to start Railway? Or was there another reason?

Jake: I got to Uber because a friend told me, hey, we just bought this company called Jump, which did bikes and scooters. I really, really always loved the idea of electrical transport, as well as non-car mechanisms to get around. I think cars are an enormous waste of space, and it's so tragic. But at the same time, I understand why people don't really want to get on an overcrowded bus. I honestly think trains are a really, really good way to get around, so I don't know why more people don't use them.

But anyways, I thought it was cool, sustainable electric transport that was subsidized by this large company. They're gonna lose a bunch of money, etc., but I get to work on these cool problems. They were like, hey, we have this really shitty Rails app. It needs to be Uber scale, so we have to go in and build all the distributed systems for it. Do you find this interesting? I was like, cool. Yeah. So I joined Jump, and we were on a team of six people building out the core backend system. We built this really, really awesome system, and it was going great. We had people just using it, went to San Diego, I ended up going to Paris to launch a third-party scooter integration.

Then Uber axed the whole program, because they were going to, I guess, become a sustainable company and not lose a bunch of money, which, you know, fair play. I was sensing it from... I don't know if you've ever been in a company with layoffs or anything like that?

Vedant: I'm 14.

Jake: Probably not. But yeah, there's this tension in the air. I guess it's like the calm before the storm. You can usually tell when shit isn't going right.

So I asked my manager and said, "Hey, man, if you are hypothetically going to lay people off, I'm 25. I'm kind of done with this. If you guys are going to shelve the whole thing, and if you have to fire somebody, fire me, right?" A few weeks later they ended up firing a third of the people on the team. They kept a third of them on to go and transition a bunch of the stuff over the line, and I think they kept a third of the people and just moved them to other parts of Uber.

But I thought, cool, I'm done with Jump, so what do I want to do next? I was just hacking on a few things, and I came back to that infrastructure provisioning engine. This engine ended up becoming Railway. Yeah, I had no aim at the time. I was just trying to figure out what to do, and I had just started writing a bit of code for spinning up these databases after I left Uber.

Vedant: Right now, are you gaining or losing money by providing a generous free plan for hosting?

Jake: Oh, we are 100% losing money, absolutely, without a doubt. Even just in this initial interim stage, we're losing a nice chunk of money, probably five figures a month. It's more like low five figures per month in terms of free plan costs. But I think providing accessible infrastructure for users is really, really key, because then people just start using [Railway]. There's no mechanism for people to try it out if you don't have a free plan or anything like that.

I think it's really powerful, especially when, I don't want to say there's no money to be made at the lower end, but the money you make at the lower end of the spectrum for developer tools is negligible in comparison to the money you make when you're selling into large enterprise companies. There's two unit step functions, essentially. You go from the hobbyists who are just piddling on their projects, paying maybe anywhere from zero to eight bucks a month, because they want to just host some random stuff. Then you do a unit step function, where you go from those hobbyists to the startups, and that gets you into a little bit more meaty territory, where people are paying, let's say, on the order of hundreds to tens of thousands of dollars per month. That's a really good unit step function. Then you have another one, where you go from startups to enterprises, where people start paying you six, seven figures a month.

But if you try and monetize that lower end of the spectrum, it's not really where the money is long term. It is where the interest is, though. It is where people will just pick this up and play with it. You can think of the free plan as a marketing or an R&D kind of thing, where we are definitely gonna lose money on it. But I think it's really, really important to help provide that, because, one, it will help you grow the platform in terms of scaling. Two, it will help you market the platform, and people will see it, share it, etc. And three, it will also just help you buff out any sort of issues, because people will just come to you with gripes.

Hilariously enough, it's almost always the free people who will have the highest standard for gripes and issues. They're like, oh, why isn't this like this? Or why isn't this like this? Then you go to these enterprise people who are paying you hundreds of thousands of dollars a month, and they're just like, yeah, no, this is great, we don't really have any complaints. So you can honestly get really, really good feedback from people on the free plans, because for some reason, I have no idea what it is, they'll just tell you everything. They'll tell you all of these things as to what could be better, or what their issues are. They're very, very forthcoming about it.

So to answer your question, we're definitely used to losing money, but I think to build a large cloud business, it's not cheap. It's just gonna cost a lot of money over the long term to build a large cloud business, full stop.

Vedant: I know when you're giving out free resources to people, some people are gonna abuse it. How are you going to handle people that break platform ToS? Issues like crypto miners, people torrenting, etc.

Jake: Yeah, we've already started handling this, and I think we have a relatively good handle on it. We have a few rudimentary models that we use to go in and flag projects, and when we flag projects, we can add them to the training set and say, okay, cool, this similarity of malicious code, if X matches within Y percentile of tolerance, we can flag their account. If it matches [the malicious code] with a very, very high percentile, like 99% or over, we can just go ahead and ban them.

There's other stuff you can do for, let's say, crypto miners. You can look at traffic patterns, you can look at request profiles, you can look at, let's just say, is your CPU pegged at all times, things like this. That gives you a very, very solid approximation as to what these abusers look like. There's mechanisms you can implement too, like providing a higher level of verification. Looking at their GitHub and asking: is this GitHub new? Do they have active repos in it? There's a lot of feeder things that you can do to figure out with a very, very high degree of confidence that the actors that you have and are onboarding are good.

Vedant: Do you think you're facing a lot of competition from other hosting providers like Heroku and DigitalOcean?

Jake: I think if you look at the business as it stands right now, then yes, you would say probably. I was talking to one of our engineers today about this. We are competing on our cloud offering right now, but we have this inordinately large roadmap of things we want to build on top of the core stuff, but we really, really needed to build an infrastructure company. So the version you see of Railway right now is probably just not going to be what Railway looks like in the next two years. It will probably look almost entirely different. We already have some things that we're going to be rolling out in the next little while that showcase how we believe people should be building software, how we believe people should be building networking infrastructure, and how we believe people should evolve their system over time.

If you're a VC and you're looking at these businesses, you could say, yeah, you're competing with companies like Render or Fly, which are really, really great, by the way. I have a vast admiration for these people building these tools that make everything a lot easier to use. I think, regardless of what happens over the next five years, developer tooling is gonna get a lot less shitty, which I'm stoked about, regardless of the size of a successful company. Obviously, we want [Railway] to be very, very large, and we obviously want it to succeed. But the end goal is just to make it easier for everybody to build, ship, and deploy stuff.

So I would say yes, it does look competitive, and you're seeing more and more people pop up every day in the landscape. But what we're trying to do here is inherently a very, very hard problem, on a very, very pin-sized dot that we're trying to hit. We're trying to hit the perfect abstraction, the perfect level of infrastructure orchestration. It's very, very hard. So I think it's gonna come down to us competing with ourselves and just building out the best platform that we can. And that will come down to everybody else who is trying to hit this golden abstraction, this holy grail of infrastructure provisioning.

Vedant: What do you think, in general, is the biggest risk for Railway right now?

Jake: The biggest risk for Railway is probably an economic recession, which means that we can't burn a ton of money, because, again, I think it just costs a lot of money to build software like this. There are obviously things that you can do. You're basically doing supply cost optimization on a bin-packing problem for this. You can grind those numbers out over time, and you can get extremely efficient with them, so that's not totally of a concern. You see that with Uber. Despite Uber not having flipped yet,* there's a pretty large consensus in the market that at some point, Uber will be able to monetize this supply and demand structure. I think it's very, very similar to how you're going to see cost optimization in terms of cloud stuff. So that one doesn't concern me too much.

But there's this hump, this inordinately large amount of money that you need to spend to be competitive in the cloud landscape, and for you to build the infrastructure to get there. There's almost this activation function, where you're in this trough of losing a bunch of money, you're building out the core infrastructure, and things like this. If we get into an economic slump where we can't burn that money to go build those things, the dream could die early. And there's a potential for [Railway] to be extremely large.

That's one of the large reasons I'm working on this, because I think this can be an extremely large company, on the order of hundreds of billions to a trillion dollars. I think it's really important to build on something that can be bigger than yourself. And I think to get there, it just takes that inordinate amount of money. Even right now, you're seeing GCP, I think they're losing money on their cloud offering. I think AWS is the only one who has managed to monetize, at least on an inordinate scale, and really get past that activation function I was talking about. So I think that's probably the biggest risk. I don't see a ton of other stuff. On the tech side, we seem to be solid, and things seem to be going relatively well.

Vedant: I guess on the funding side, the investor market right now is full of sharks. Did you find it easy to get funding for Railway? Or was it hard?

Jake: No, it was actually quite easy. I think the market right now is very, very weird.

I think it's really easy to raise money if you have a really solid product, or if you have a good pedigree, and I think it's really, really hard to raise money if you're not, I don't know, ex-Uber or ex-whatever. I think right now, it's a really weird time in the market. Especially because of COVID, investors are doubling down on the [companies] that are going really, really well, and they're very apprehensive to fund new people or meet new people. And I don't know if what I'm saying is necessarily true, just looking back on those days. I just said that because our most recent investor, I haven't even met them yet. I'm going out tomorrow evening with them for the first time for dinner.

It wasn't too hard to raise money, but I think the initial rounds here are going to be relatively, I don't wanna say easier, but a little bit simpler in terms of actually raising money, because I think the seed stage right now is very, very frothy. Once you get to that Series A, Series B territory, I think people start to ask a lot more questions. They say, okay, so you've been justifying these multiples so far on a lot of hype, but at some point, your business needs to become a business, right? We're acutely aware of that. So we were developing out our core business so that it makes sense. We're a seed-stage company right now. We'll probably do our Series A in 12 to 18 months, despite us having almost four years of runway right now. So yeah, we'll continue to work on that. It wasn't too difficult for us to end up raising. I was in and out of the fundraising process in like two weeks.

Vedant: Do you find working in a small team really beneficial? I know a lot of big tech companies have these huge teams, where things start to get complicated.

Jake: Railway right now is actually just five people, and we've only recently started hiring a little bit more. So I would hazard on the very small team side. My immediate team at Uber was six engineers, a PM, and then me. Eight people. The whole Jump team was 50-ish, and Uber was, I don't know, just a shitload of people, just a ton of people.

So yeah, I've always tended towards smaller, more compartmentalized teams. I very briefly worked at Bloomberg in New York, and it was just such a large entity. It was a difficult engineering culture, because I don't think they really had a ton of autonomy or allowed people to do a ton of stuff. Whereas when you're a smaller team, you are forced to have this autonomy. I keep trying to drill into the engineers' heads, we need to be able to just step up to these things that we don't necessarily feel like we're qualified to do, because there's quite literally nobody else to do them. On smaller teams, that's what happens.

I always tend towards smaller teams, because I think it's where you learn the most. You're given responsibility, not because people necessarily think you can 100% handle it, but because they're 90% sure you can handle it, and also, who else is going to handle this? So yeah, I think working in smaller teams is a lot better. But there's something to be said about working at larger companies with really, really good standards. There's a lot of standards. Like, we write design docs at Railway, and that was something I learned at Uber, laying out your thought processes. So I think there's benefits and drawbacks to working at each of them. But I think if you're looking for the best way to accelerate your learning with a good foundation, you should be working at a smaller company.

Vedant: Do you think that it was beneficial to get a company like Railway up and running during a pandemic of such magnitude?

Jake: I think so. I think it was really, really beneficial, because there was pretty much nothing else to do. I wasn't constantly like, oh, I really want to take a vacation to Europe, I really want to go do whatever. And as a side note, I've tried to do pretty much everything else I wanted in my life before starting Railway, so that I didn't feel like that. But because of the pandemic, there was literally nothing. I thought, okay, well, I can't go back and visit my family, I can't go on vacation. Really, all I can do is go for runs, work out, do all the things that would keep you healthy, and then build a business. So I think it was probably one of the best times to be building a business, if I'm being honest.

Vedant: I think we might run a little late, but there's two more questions I want to get to. So, do you have any advice for anyone trying to get a tech startup of their own running?

Jake: Any advice for a person to try and get a tech startup running? Yeah, don't go out and try and get a tech startup running. Just try and do a thing that you really think somebody needs or is valuable. I see lots of people like to come out and be like, oh, yeah, I want to be a founder, I want to be whatever. And it's like, why? There's so much headache, there's so much responsibility, and most of these things go to zero. Most of these things don't work out. Even the ones that look really, really good, sometimes they just explode or crash or just whatever, for a variety of reasons.

I could honestly say that if you were trying to maximize expected value for your life, what you should go do is go into investment banking, or work at Facebook or something like that. You're going to learn a lot, you're going to earn a lot, and you're going to be solid in terms of technical proficiency. And then once you really feel like you want to take a risk, because I think startup stuff is really, really fun, but it's mostly risky, I don't really know what to say other than you shouldn't start a startup for the sake of starting a startup. You should really try and solve a problem. The only reason you should start a startup is if you firmly believe that nobody else is going to solve this problem.

I think you're gonna see a lot of people pop up. When we started working on Railway, I don't think anybody was moving towards what we're moving towards. Now I see a few companies that are scratching the surface of what I think infrastructure could be. That gives you hope, but again, there's high odds that things just don't end up working out.

So I think if you're gonna start a startup, and you know what you want to do, just go and do that. That's the second piece of advice: just do the thing. Railway started because I was like, okay, cool, I'm working on this really, really cool problem. I just posted about it on Twitter, and I was like, this is interesting, who would I talk to in the infrastructure space? Then people said, oh, I want to see what you're working on.

Even the first version of Railway I showed off, it was one Postgres database with a bunch of tables. Anytime that we needed a new user, we would just create a new table, and then they would have access to it. People were like, can I connect to this or whatever? And I was like, yeah, I guess so. But then they were like, why are all these tables in here with these usernames? And I was like, yeah, well, we're working on it. But that was enough, right? It was this super shitty thing. Anybody could drop any tables, anybody could do whatever. But it was the idea of getting that thing out there, that people were like, hey, this is easy enough to spin up, I can just get access to this. Then we worked backwards there from first principles.

So I guess, to summarize, the first thing would be: don't start a startup for the sake of starting a startup. If you're gonna start a startup, do it immediately. Don't piddle around, just know what you're doing, do the thing, and then show it off as quick as possible to whoever, right?

Vedant: This is the last question, but if a company or someone asked to buy Railway out, do you think your investors or you would be on board with it? Or no?

Jake: So we actually had this happen a few weeks ago. Pretty much everybody was like, no, this is way too early. The investors were like, no. I was trying to be impartial and say, okay, cool, I want to leave it up to the team. My interest here is to keep this going for as long as possible, full disclosure, and I really want this to succeed. Not because it became a big company, but because I really think that we need a tool like Railway to make shipping and delivering software a lot quicker, because most of the job, when you're a software engineer, actually kind of sucks. It's gluing shit together. It's figuring out stuff in an AWS console. It's just not the programming I fell in love with as a child. The idea here is that we can offer that experience to everybody and say, okay, let's just take away the bullshit and give the most magic.

So when companies come to us, there's not really a number that strikes in my head to kill the dream. The only reason I actually brought this to the team was, okay, this company is pretty in line with what we're doing. I think on the really long time horizon, we actually might be competing with them, but there's still a very, very high chance that they end up choosing their market over the market that we're actually trying to pursue. So all the investors said no, all of our engineers said no, and then I was like, pretty much like, no.

But again, I wanted to be impartial. I want people to feel like they have high agency, even when it comes to the sale of the company. People who come in the door, and they've been here for a month, they're part of the team. They have this agency to make these calls. And it's like, cool, what do you think about selling the company? This is a person that we've had for a month, and they can be super open and honest about it. They can be like, actually, I joined because I think that this is going to be larger, and I think we still have a really, really good shot at building this thing. And we are continuing to build this thing out.

So the answer is, if we think that we can continue to do the thing that we are already doing and want to keep doing, we could consider it, especially if that buyout would accelerate the vision. If you look at companies like Oculus, when Oculus was acquired by Facebook, I think their budget for R&D titles was $5 million a year. When Facebook bought them, that budget went to something like half a billion dollars a year for just giving developers money to develop on Oculus. That vastly accelerated the way that VR is out in the market.

So if a company came to us and said, hey, listen, we can vastly speed up the rate at which you guys are iterating, because of X, Y, and Z feature, that would be something that we would consider, because we're very, very goal-focused. We want this to succeed as quick as possible, so that we can continue to build really, really cool stuff. All of us have really high interest in lots and lots of fields, and Railway happens to be the candy store that has brought us all together. We all think working on Railway is really cool, but there are plenty of other things that we want to work on, all of these infinitely deep lakes, and most of them just happen to be around Railway. I guess there are a few things, like I would love to work on a brain-computer interface before I die or whatever.

So yeah, I think if there was something that came to us and was like, we can make this happen, and we were 100% certain, or at least 99% certain, that they weren't bullshitting us, cough, Amazon, cough, then I would consider it, because the end goal is literally just to make building software easier for everybody.


this interview was lightly edited for clarity

* Uber became profitable in 2023, two years after this post was published.