I&#x27;ll be an asshole. Defense contractors hire Electrical Engineers straight out of college and throw them at programming tasks. They hire Computer Scientists straight out of college and throw them at testing tasks. Of the two, the CS graduates (still woefully underexperienced) should be doing the programming, but not the design work. Instead you have EEs with 0-3 programming courses under their belt doing it. You end up with software like what I saw in my defense contractor days, where fucking <i>BUBBLE SORT</i> was used on an embedded system to sort 100 items. Not that long, really, but in the worst case it&#x27;s 5050 iterations of a loop. These same &quot;programmers&quot; insist on minimizing function calls because the overhead of function calls is clearly where the hotspots are.<p>EDIT: But yeah, the major issue (regardless of their preference for engineers over computer scientists) is a general lack of experience in the people they hire [for the domain].