1. Research, design, implement and manage software programs.
2. Test and evaluated new programs.
3. Identify areas for modification in existing programs and subsequently developing these modifications.
4. Write and implemented efficient code.
5. Determine operational practicality.
6. Develop quality assurance procedures.
7. Deploy software tools, processes, and metrics.
8. Maintain, Troubleshoot, debug and upgrade existing code and software.
9. Work with developers to design algorithms and flowcharts, produce clean, efficient code based on specifications.
10. Gather and evaluate user feedback.
11. Create technical documentation for reference and reporting.