Perform functional analysis, application design, development, unit test, deployment, maintenance and support.
Research, develop and adopt software engineering best practices including Test Driven Development, Source Code Version Control, automated built and test.
Collaborate closely with software architects to discuss project requirements, design, and related technologies.
...