From what I know of Google, their internal staffing of projects is done much the same way: you're assigned to certain teams when you first join the company, but after that the various Product Owners try to recruit and advertise within the company for engineers to join their team.
When I was interviewing there I recall seeing flyers posted in common areas advertising different projects that were in need of engineers to come join them ("Interested in _____? Google ___ could use your help!").