answers for software job interviews