←back to thread

1070 points dondraper36 | 1 comments | | HN request time: 0.199s | source
1. uberduper ◴[] No.45069968[source]
I wanted to like this article and there's some things in there to agree with but ultimately it's a very uninteresting take with a very unconvincing rate limiting example.

> System design requires competence with a lot of different tools: app servers, proxies, databases, caches, queues, and so on.

Yes! This is where I see so many systems go wrong. Complex software engineering paving over a lack of understanding of the underlying components.

> As they gain familiarity with these tools, junior engineers naturally want to use them.

Hell yea! Understanding how kafka works so you don't build some crazy queue semantics on it. Understanding the difference between headless and clusterIP services in kubernetes so you don't have to build a software solution to the etcd problems you're having.

> However, as with many skills, real mastery often involves learning when to do less, not more. The fight between an ambitious novice and an old master is a well-worn cliche in martial arts movies

Wait what? Surely you mean doing more by writing less code. Are you now saying that learning and using these well tested, well maintained, and well understood components is amateurish?