Job roles and responsibilities of software developer