what does a software engineer do on a daily basis