job as a software engenier