I seek out projects that “push the boundaries,” but I do so carefully. I don’t try to implement a new air traffic control system.
This has the significant advantage, that almost everything I learn has an immediate practical application. I am constantly learning to ship.
It has the significant disadvantage, that it may not address some theoretical elements that could lead to practical advantages, down the road. That’s a real issue. I tend to reinforce established lore; not come up with creative new ways. Since my method favors practical application, it can be conservative. It can take some time time to “get around to” new tools, techniques, theories and discoveries. I am not “surfing the bleeding edge.”
It also means that I’m not so good at LeetCode, and I’m a lousy jargonaut. I do feel that my way reinforces a “ship mentality,” and that (I believe), is incredibly valuable.
I write about my approach, here: https://littlegreenviper.com/miscellany/thats-not-what-ships...