Remix.run Logo
ninetyninenine 5 days ago

A lot of backend engineers are obsessed with infrastructure.

I've seen engineers have servers spin up lambdas to do async jobs that are just database calls.

So the server essentially waits for lambda which waits for a database. Why? Why can't you just have the server wait for the database?

It's like I'm going to pay a person to wait in line for me while I wait for him. Why? You're waiting anyway!? And you just paid to involve an additional person to unnecessarily wait with you for what?

When I told the engineer that you can just spin up a coroutine or like maybe you can allocate some cores before you spin up a new server... he looked at me like I was crazy. He said I was doing things so low level it was like assembly language programming. Going to low level and that lambdas were so cheap it was inconsequential.

If you're reading this and you're thinking, wow that other engineer is right, well this quote from the article refers to you:

"I’m often alone on this. Engineers look at complex systems with many interesting parts and think “wow, a lot of system design is happening here!” In fact, a complex system usually reflects an absence of good design."