At my work, we have (all in-house and most are more than twenty years old):
- A (much more complicated) make clone
- A test running framework
- A remote session tool
- A test specification framework
- A preprocessing tool
- At least six domain-specific languages for specifying compilers, assemblers, linkers, simulators.
Of course, you also need to know Linux, bash, C, C++, Perl, and Python.Needless to say, it takes some time to get up to speed. On the other hand, you can run some very simple commands and have a bunch of servers run hundreds of thousands of tests on your code, on different OSes.