Develop software in the context of a focused project, while ensuring alignment to current and developing architecture. Understand and help refine un-stated requirements. Conduct design and peer reviews and exercise leadership through technical and domain knowledge.
Routinely deal with and resolve difficult technical issues and aid in the development of architectural framework and design. Take responsibility for the quality of deliverables. Evaluate and introduce new tools and techniques to the development team. Manage technical issues and the work of other developers.
Proactively identify areas for improvement, seek solutions and make recommendations, various other duties as required.