Develop and test software based upon software specifications and design. Troubleshoot and resolve issues in existing software