Designing bug-proof engines
Suppose you have to make an engine that's going to operate in an environment with a lot of bugs. There are two strategies you can take: Which you choose is often downstream of requirements, but you should be aware of both options. Too often, the engineer gets stuck on one option when it would actually be easier to take the other path. What are some other instances of this problem? The Saturn V is an example of #1, whereas the Falcon 9 is an example of #2. In programming: C is an example of #1, whereas Java is an example of #2. In distributed systems: In writing: The list goes on, but the pattern is the same. I first had this thought when working at AWS on distributed systems. Before the "bug-proof engine" analogy, I visualized it like you're designing a device to transfer marbles across a room. You can design a device that never drops any marbles. Or you can design a device that sometimes drops marbles, and pay a janitor to sweep them up every night. So I'd call this "perfectionism vs
Suppose you have to make an engine that's going to operate in an environment with a lot of bugs. There are two strategies you can take: Design the engine such that it's impossible for bugs to get inside Design the engine to tolerate bugs getting inside Which you choose is often downstream of requirements, but you should be aware of both options. Too often, the engineer gets stuck on one option when it would actually be easier to take the other path. What are some other instances of this problem? Design a rocket engine that never fails Design a rocket that can tolerate engine failure…
saved by
related reading
- Design Patternsgrantslatton.com
- How to write complex softwaregrantslatton.com
- Everything I know about good system designseangoedecke.com
- Computers can be understood - Made of Bugsblog.nelhage.com
- Do the simplest thing that could possibly workseangoedecke.com
- Write code that is easy to delete, not easy to... — programming is terribleprogrammingisterrible.com
- Notes on Distributed Systems for Young Bloods – Something Similarsomethingsimilar.com
- Mistakes engineers make in large established codebasesseangoedecke.com
- How I ship projects at big tech companiesseangoedecke.com
- Would you fly on an AI-coded plane | Hackle's bloghacklewayne.com
- Jeeps, Ferraris, and Other Engineersmaheshba.bitbucket.io
- Writing an engineering strategy. | Irrational Exuberancelethain.com