Microsoft principal software engineer jobs