George Hotz
👤 PersonAppearances Over Time
Podcast Appearances
I mean, the first thing that I would do is build tests. The first thing I would do is get a CI to where people can trust to make changes. Before I touched any code, I would actually say, no one touches any code. The first thing we do is we test this code base. I mean, this is classic. This is how you approach a legacy code base.
I mean, the first thing that I would do is build tests. The first thing I would do is get a CI to where people can trust to make changes. Before I touched any code, I would actually say, no one touches any code. The first thing we do is we test this code base. I mean, this is classic. This is how you approach a legacy code base.
This is like what any, how to approach a legacy code base book will tell you.
This is like what any, how to approach a legacy code base book will tell you.
This is like what any, how to approach a legacy code base book will tell you.
We look at this thing that's 100,000 lines and we're like, well, okay, maybe this did even make sense in 2010, but now we can replace this with an open source thing, right? Yeah. And we look at this here, here's another 50,000 lines. Well, actually, we can replace this with 300 lines ago. And you know what? I trust that the go actually replaces this thing because all the tests still pass.
We look at this thing that's 100,000 lines and we're like, well, okay, maybe this did even make sense in 2010, but now we can replace this with an open source thing, right? Yeah. And we look at this here, here's another 50,000 lines. Well, actually, we can replace this with 300 lines ago. And you know what? I trust that the go actually replaces this thing because all the tests still pass.
We look at this thing that's 100,000 lines and we're like, well, okay, maybe this did even make sense in 2010, but now we can replace this with an open source thing, right? Yeah. And we look at this here, here's another 50,000 lines. Well, actually, we can replace this with 300 lines ago. And you know what? I trust that the go actually replaces this thing because all the tests still pass.
So step one is testing. And then step two is like the programming languages and afterthought, right? You know, let a whole lot of people compete, be like, okay, who wants to rewrite a module, whatever language you want to write it in, just the tests have to pass. And if you figure out how to make the test pass, but break the site, that's, we got to go back to step one.
So step one is testing. And then step two is like the programming languages and afterthought, right? You know, let a whole lot of people compete, be like, okay, who wants to rewrite a module, whatever language you want to write it in, just the tests have to pass. And if you figure out how to make the test pass, but break the site, that's, we got to go back to step one.
So step one is testing. And then step two is like the programming languages and afterthought, right? You know, let a whole lot of people compete, be like, okay, who wants to rewrite a module, whatever language you want to write it in, just the tests have to pass. And if you figure out how to make the test pass, but break the site, that's, we got to go back to step one.
Step one is get tests that you trust in order to make changes in the code base.
Step one is get tests that you trust in order to make changes in the code base.
Step one is get tests that you trust in order to make changes in the code base.
So I'll tell you what my plan was at Twitter. It's actually similar to something we use at Comma. So at Comma, we have this thing called Process Replay. And we have a bunch of routes that'll be run through. So Comma is a microservice architecture too. We have microservices in the driving. We have one for the cameras, one for the sensor, one for the planner, one for the model.
So I'll tell you what my plan was at Twitter. It's actually similar to something we use at Comma. So at Comma, we have this thing called Process Replay. And we have a bunch of routes that'll be run through. So Comma is a microservice architecture too. We have microservices in the driving. We have one for the cameras, one for the sensor, one for the planner, one for the model.
So I'll tell you what my plan was at Twitter. It's actually similar to something we use at Comma. So at Comma, we have this thing called Process Replay. And we have a bunch of routes that'll be run through. So Comma is a microservice architecture too. We have microservices in the driving. We have one for the cameras, one for the sensor, one for the planner, one for the model.
And we have an API, which the microservices talk to each other with. We use this custom thing called Serial, which uses ZMQ. Twitter uses Thrift. And then it uses this thing called Finagle, which is a Scala RPC backend. But this doesn't even really matter. The Thrift and Finagle layer was a great place, I thought, to write tests. To start building something that looks like process replay.
And we have an API, which the microservices talk to each other with. We use this custom thing called Serial, which uses ZMQ. Twitter uses Thrift. And then it uses this thing called Finagle, which is a Scala RPC backend. But this doesn't even really matter. The Thrift and Finagle layer was a great place, I thought, to write tests. To start building something that looks like process replay.
And we have an API, which the microservices talk to each other with. We use this custom thing called Serial, which uses ZMQ. Twitter uses Thrift. And then it uses this thing called Finagle, which is a Scala RPC backend. But this doesn't even really matter. The Thrift and Finagle layer was a great place, I thought, to write tests. To start building something that looks like process replay.