Have you looked into devcontainers? Could be a good option.
We use tilt right now for running the apps themselves. Haven’t delved into virtualized dev environments yet. We’re a Mac shop so we just have a list of brew commands to run. And for some critical tools they are invoked through docker so no cli install needed.
We have a file that houses the version and everything is done through a Makefile. So on the next main pull people will always invoke the correct version of a build tool.
Does using function as a const? Meaning: when a using variable is declared, is it immutable?