“And once you’ve understood the system, and worked out what has to be built, do you retreat to a cave and start writing code? If you’re a hobbyist, yes. If you’re a professional, especially one working on systems that can use terms like “planet-scale” and “carrier-class” without the slightest exaggeration, then you’ll quickly find that the large bulk of your job is about coordinating and cooperating with other groups”
Hardly. Okay maybe at Google. As a software contractor who has worked at many companies including a handful of Fortune 500 hundred companies, a couple of startups, and am now in Biotech, I want to take exception to your characterization of what it means to be a software engineer. As far as I can tell the only universal standard for software engineer is “can you code”. This hasn’t changed since the giddy dot.com days of dice.com when I entered the market in the late 1990s. That’s it. Can you code. Most ostensibly, “coordinating and cooperating with other groups” doesn’t apply to the *millions* of offshore developers. The good news is that such a low standard of “can you code” means offshore resources with limited English abilities and limited American social skills are employed ubiquitously throughout the industry because that standard is so low. Why anyone would consider “can you code” as a gender barrier is beyond me. Offshore resources have much built-in barriers due to time zone and cultural differences and companies hire them anyway. All of the propaganda you espoused fantasying some professional hierarchy of engineering is sadly naive in my experience and you are doing a HUGE disservice to any readers not in the industry who actually think you are stating reality. If only it were true! That would be nice. I reckon your vision of an engineer is a standard only possible for teeny tiny fraction of companies like Google. It certainly doesn’t apply to start ups. And I’d bet money that even at Google the experience varies widely team-to-team.
Also, this “coordinating and cooperating with other group” is malarkey in my experience. Everywhere I’ve been the opposite is true. There are always toxic environments around the key man engineers. Engineers who own the IP and hold everyone at a company hostage to their aggro personality and make life miserable for everyone around them. I would consider yourself lucky if you’ve never had that key man experience. These key man engineers *are* at the top of the engineering teams and are the antithesis of a leader “coordinating and cooperating with other groups”, to whit they are arrogant bullies. I really think you should reconsider your generalizations as applying to anything but your own experience.