Why do Microsoft software engineers tend to stay for a long time compared to other tech companies? Do Google, Facebook, Twitter and other tech companies hire contractors for software engineering/technical positions?