Building systems which should run for multiple years while being maintainable is quite a challenge. In the embedded space, you would look for supply guarantees, but those are only part of the solution - what good is a processor for which no SDK exists anymore? Using the latest and greatest technology needs to be balanced against maintainability, in the end the lowest common denominator wins. I call this graceful degradation for software development: Starting out with a full blown setup of an advanced IDE, LSPs, coding agents, build systems, source code control, CI systems, HIL testing and whatnot, it needs to be possible to strip all these amenities away but still be able to maintain the system and fix bugs.
As an example, an embedded framework should still be usable by having a shell script compile the application, or in the worst case, do this manually from the command line. Next up would be a Makefile, then maybe CMake or PlatformIO, and so on. I’ve been playing around with this a bit, and while it does not really support the goal of learning new things, it definitely helps to build some more long lasting solutions.