Why I do not want to work at Google (2011)
(Full disclosure: I work for Google. My opinion does not necessarily represent my employer's opinion, yadi yada.)This guy's rant is really about the need for decentralization. I fully agree with him. But I disagree that decentralization is incompatible with Google's primary business model (regardless if the Internet is decentralized, there will always be ways to do advertising.) In fact Google Wave (http://en.wikipedia.org/wiki/Google_Wave) was a fantastic and radical attempt at decentralizing common use cases such as email, instant messaging, social networking, etc. Unfortunately this project failed to gain traction due to various reasons.To return to a more decentralized Internet, we need software and network protocols that let people easily host their mail and blog, publish their social pages, and share their vacation pictures, etc, without relying on the cloud but doing it via a device that runs at home. An ideal place to run this software would be your Internet router, as it really is a full-blown computer that is always on, always connected. And, as the router, it conveniently bypasses the issue of masquerading/NATing which is the one reason why non-technical people do not run server software more often. Another advantage is that uploading stuff to your Internet router (eg. sharing pictures) is much, much faster than uploading them to a cloud service (Wifi or Ethernet bandwidth can be 50x-1000x faster than the typical upload bandwidth of a home Internet connection.)It should all work out of the box with zero configuration. That is the only way the idea can gain traction. Not everybody is a sysadmin, so your grandmother should be able to make it work. Want to enable your mailbox? Just tick the appropriate checkbox on your Internet router as easily as you would sign up for some mail provider. Want to follow the social lives of your friends? Your browser can render your custom Facebook-style wall by pulling posts and pictures feeds directly from your friends' Internet routers.We already have most of the technologies needed to implement such decentralized features: HTTP with cross-origin resource sharing, SMTP, automatic registration of DNS names to make you discoverable on the net, OpenID authentication, etc. Maybe some other needed bits can be pulled from the Wave protocol.But the sad thing is that I am not aware of any attempt to implement any of what I described above. Perhaps it is a vision too ahead of its time. Or perhaps it is because there are 2 important problems that are very hard to solve in a fully decentralized way: (1) search, and (2) spam. You can easily search for and find your friend's blog via Google web search because it has an index of the entire web, but how do you provide this level of quality if the search engine is your Internet router? As to spam, you can easily filter email if you are the Gmail team running sophisticated analysis on the billions of emails processed daily because the more data you have the easier you can classify it, but how do you implement this filtering quality on an Internet router that does not have access to such a data set?Perhaps the solution is to run most of the services in a decentralized way (email, instant messaging, social networking, etc) while at the same time relying on a few central services for some features like search and spam filtering.Edit: thanks for the pointers to FreedomBox and Sandstorm, I will look into them.