Most software development jobs in the US are salaried, and since we are seen as professionals, we are exempt from the government requirement for overtime pay, and thus most companies won't offer it (this may be different in SV, I'm not sure, I don't work there).
As such, any time a deadline gets tight, management can be tempted to ask people to work later or come in on the weekends. The risk of losing the employee is the only thing that stops them sometimes, and sometimes not even then, they're only thinking short term.
And since most of the software development world has switched to some bastardization of 'Agile' development, with 2 or 3 week iterations, deadlines can get tight as often as every two or three weeks, especially if the company is trying to make do with less employees than they should have and people have too much on their plates (pretty common after a round or two of layoffs and the best employees also leaving afterwards...currently dealing with that now, should have left a long time ago myself, I've just had too much going on in my personal life to want to go through the job process again).
I've pretty much never seen compensation offered for overtime. I have seen 'you can take a few days off afterwards' offered, but not always granted afterwards, since it was just verbal, managers suddenly get forgetful, the company is still playing catchup even after your extra work and doesn't think they can let you take time off, and/or it usually has to be done off the books so people up the chain don't see it, because the higher up executives really, really don't care about you and only see you as a number (in big corporations, at least).