Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

How does Google develop software?

Someone told me they did all their development in the cloud and you aren't allowed to check out software locally? Does that mean they just use their macs as thin terminals? But what's running in the cloud for development then? Linux X desktops, or do you edit in a browser, or do you develop entirely in a console over SSH?

Nobody seems to talk about the developer experience at Google that I've seen, despite how much they talk about how they do operations and site reliability.



It depends.

Many googlers work on the centralized google3 source tree where the source lives in the cloud and your workstation is mostly a frontend for editing a FUSE view (citc): https://cacm.acm.org/magazines/2016/7/204032-why-google-stor... among other documentation gives some details on the process.

Typically that work will be done on a workstation at your desktop. But if you want to work remotely, and you can't access citc from your laptop. So, you'd ssh into your workstation, or use Chrome Remote Desktop (personally, I ssh from a ChromeOS laptop to a glinux workstation with tmux). Others use CRD for a full remote desktop. At that point the dev experience is mostly what like other people experience, except that the source and build and test environments are in the cloud, rather than on your local machine.

That just describes one common case- devs and researchers writing stuff that runs on Google's internal resource management system, borg. There are many other teams, who have their own standards and approaches, which don't use the technology I described abvove. I'm sure there are plenty of devs at Google who actually build directly on their laptop, and commit code to open source repos without ever touching citc, or google3.

For me at least, the dev experience at Google feels like every other dev job I've had: ssh to a LINUX machine, write code, compile it, run tests, send it for review, submit. A lot of people who are C++ server developers and python client developers could drop into the Google environment and quickly be productive.

A lot of this is documented in external talks but it takes a ton of work to assemble all of it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: