Writes source code to design specifications, perform software testing including developing and running automated unit tests, drafting, and executing structured automated test cases, and provides software documentation