> It seems that sometimes we might actually enjoy grappling with complex, even byzantine systems. Can anyone relate?
This is the worst part about young, smart engineers: they revel in complexity -- often unnecessary -- as a way to "flex" (often ego driven). It often manifests in such a waste of time and effort, reinventing the wheel, or making poor technical design decisions.
I'm in my 40's now and have seen it all. My conclusion is:
- The simpler the better,
- Monoliths > microservices,
- Proven platforms > novel ones,
- Proven vendors > startups,
- Sensible defaults > illusion of choice,
- Enduring patterns > flavor of the month,
- OOP isn't as bad as it is made out to be and functional isn't the silver bullet people hype it up to be,
- Productivity is often sacrificed at the alter of ego
It can be frustrating watching teams and engineers learn some of these for the first time. Sometimes it's worse: I see the mistake, but I don't see the learning and the ego's can make it hard to direct them to the right place. I can see the friction and the source of friction, but I don 't have the energy in me to fight that fight -- I just want to ship code and create value, not flex my engineering chops.
A team has recently been having discussions on scaling and I pointed to Figma's excellent series on how they scaled their backend[0]. While non-trivial, it is a proven route built on proven scaling techniques -- all documented with plenty of real-world feedback. A team has been working on RBAC, but exploring exotic solutions instead of trying Postgres RLS and looking at guidance and success from Supabase[1].
I see the appeal to the ego of inventing something novel and learning your own lessons, but to me it seems a waste of effort when the team's value doesn't lie in blazing new paths in proven system design.
There's a great post by @pizlonator in another thread[2] on Hyman Rickover:
> [H]e succinctly summarizes the phenomenon where a technology that is substantially complete to the point that it has known issues is looked down upon while a technology that is purely "on paper" (the "paper reactor" as he calls it) is treated as a good alternative, since the paper technology isn't far enough along for the problems to even be known.
[0]
https://www.google.com/search?client=firefox-b-1-d&q=figma+s...[1] https://supabase.com/docs/guides/database/postgres/row-level...
[2] https://news.ycombinator.com/item?id=43450884