In many ways, I prefer the Meta approach where they hire you and then you spend 6-10 weeks in bootcamp and working on different teams for a week each time and then the engineer gets to decide which team they want to join (rather than the hiring manager - if the position is open, they have to take you).