They seek candidates with strong engineering skills, and only do a little culture fit at interview time (this was my experience at least). The real culture fit test happens during bootcamp, where they try for 6 weeks to break any misfit. Now that isn't going to work for everyone, but their strategy is to go all-out and try get a strong candidate to work well in their culture.
It didn't work out for me. I constantly reflect on what made me decide to accept their offer, what I could have discovered that would have made me realise it wasn't going to work out for me. I take interviewing far more as a two-way discussion, trying to find out what a company sees in me that they like and sometimes I tell them they misread me rather than risk ending up in the same predicament.
There are a number of things not directly in my control that lead to me leaving though. I had some bad luck with many of my bootcamp tasks, e.g. task owner on vacation for a couple weeks, task owners not being responsive if I didn't get back to them with working code really fast (I was working on other tasks at the same time), etc. I was drawn in very strongly by a manager who recognised that my skills strongly matched his team's requirements. I felt uncomfortable around that team from day one and never really tried hard on their tasks, and that reflected very poorly on me. At the same time, teams I took the initiative to approach would setup an initial meeting and then I'd never hear back from them. It wanted to dig into stuff I was excited about, while my bootcamp manager wanted me to complete the boring tasks I was assigned. Other things at hackathons drew me in, and I spent too much time on those projects only to be told a week before being fired that those were not being counted in my evaluation so I had to scramble to work again with the team I didn't get along with. Soon after that, that team didn't want to give me new tasks and I was left with nothing.
If I was to go through the process again, there are a few things I'd do differently. I would avoid letting the side hackathon projects take up too much time in the early days until I was firmly settled in. I would get more clarification on tasks as early on as possible. I would focus on one or two tasks at a time, rather than trying to churn through five or six in parallel. This way turn around time with task owners would be faster making them happier to help. I would forget about looking for a team until week four at the earliest - focus on tasks instead. I wouldn't take their advice to pick any team, even if you had no experience in the area, too strongly. It's good to get a strong start, and take the other roads once you've proven yourself.
I found a new job within a month. As an H1-B holder, I needed to be quick, so I settled for what I could get. Companies reacted differently to me being fired. While I'm sure all of them take it as a negative, some seemed to sympathise. I'm now interviewing again, and depending on whether Facebook comes up I have told some companies what happened and not told others. It doesn't seem to make a huge difference, since I've proven myself at my current company, but some keep prodding to try find that fatal flaw in me that lead to the firing (which I don't believe exists). I'm considering removing Facebook entirely from my CV after my next job.