software engineer trainee job