Scientific software engineer