For those who don't regularly follow rachelbythebay.com, this post is a Google allegory. I disagree with a couple points.
First, Google really doesn't care as much about education as people think they do. They do love experience. I never graduated high school, and was hired into an SRE position (= programmer writing large-scale sysadmin tools) based on previous work experience. Grades are only useful if you've got nothing else to show off.
Second, if you want employees to be loyal to a company with unusually good perks, taking them fresh out of school is a terrible approach. Many people working here indeed have no real idea what working at non-tech companies is like, and that means they assume every other company is like Google. I have heard stories of employees getting frustrated on some project, leaving to work at (e.g.) a bank or webdev shop, and not realizing until their first day that there's no free food, or gym, or weekly heckling of the CEO. I used to work at a defense contractor, I know what it's like being a programmer employed at a non-tech company, and I don't want to ever go back.
(In other words, Google might get better retention by implementing Rumspringa)
Third, the proprietary parts aren't as pervasive as the article portrays. Our Linux kernel has weird Google-specific interfaces, but they're always in some stage of upstreaming and will eventually be in Linus's trunk. Our RPC system uses the same protobuf rpc-stubs that are generated by the open-source protobuf compiler. Desktops and Laptops run stock {Ubuntu,Windows,MacOS} with a few extra binaries. MapReduce and BigTable were published and inspired dozens of open-source implementations. Many of our Python-based tools have web frontends written with Django. Many systems persist data in MySQL.
When Google engineers avoid particular in-fashion systems such as Rails or MongoDB or node.js, it's not because we're ignorant of them, it's because we think they're not good enough.
First, Google really doesn't care as much about education as people think they do. They do love experience. I never graduated high school, and was hired into an SRE position (= programmer writing large-scale sysadmin tools) based on previous work experience. Grades are only useful if you've got nothing else to show off.
Second, if you want employees to be loyal to a company with unusually good perks, taking them fresh out of school is a terrible approach. Many people working here indeed have no real idea what working at non-tech companies is like, and that means they assume every other company is like Google. I have heard stories of employees getting frustrated on some project, leaving to work at (e.g.) a bank or webdev shop, and not realizing until their first day that there's no free food, or gym, or weekly heckling of the CEO. I used to work at a defense contractor, I know what it's like being a programmer employed at a non-tech company, and I don't want to ever go back.
(In other words, Google might get better retention by implementing Rumspringa)
Third, the proprietary parts aren't as pervasive as the article portrays. Our Linux kernel has weird Google-specific interfaces, but they're always in some stage of upstreaming and will eventually be in Linus's trunk. Our RPC system uses the same protobuf rpc-stubs that are generated by the open-source protobuf compiler. Desktops and Laptops run stock {Ubuntu,Windows,MacOS} with a few extra binaries. MapReduce and BigTable were published and inspired dozens of open-source implementations. Many of our Python-based tools have web frontends written with Django. Many systems persist data in MySQL.
When Google engineers avoid particular in-fashion systems such as Rails or MongoDB or node.js, it's not because we're ignorant of them, it's because we think they're not good enough.