- Developing high quality software which meets requirements, promotes re-use of software components, and facilitates ease of support
- Diagnosing, isolating, and implementing remedies for system failures caused by errors in software code
- Identifying and implementing process improvements in Engineering practices
- Utilizing software-based system maintenance and tracking tools
- Providing input and technical content for technical documentation, user help materials and customer training
- Conducting unit test, tracking problems, and implementing changes to ensure adherence to test, planning, and functional/nonfunctional requirements
- Analyzing, designing, and implementing software mechanisms to improve code stability, performance, and reusability
- Participating and leading code review sessions
- Creating high fidelity estimates of their own work efforts
- Assisting others in estimating task effort and dependencies, responsible for team commitments within the Sprint
- Leading and advising other Engineering resources as part of project activities
- Participating with industry groups, and staying current with technology and industry trends, disseminating knowledge to team members, forms, and best practices