Job Summary :
Head Of Engineering (HOEs) are the creative minds developing the software applications that make life easier for customers.
Responsible for entire development and support process for a software programme. Your applications make previously complex tasks simple with the impact ranging from saving time, effort or money to redefining normal.
Apply my in-depth knowledge of multiple programming languages, associated frameworks and the tool ecosystem to create elegant solutions to problems.
Adopt new languages and new paradigms applying them to the problem domain where they deliver significant benefit.
Test drive features in applicable programming language and be comfortable with the TDD cycle.
Shape the wider application landscape.
Apply distributed programming models (e.g. Actor frameworks) appropriately.
Model multiple domains, articulating contexts & boundaries and articulate the rationale behind them.
Am an expert at translating requirements into tasks & code.
Develop high quality code that can lead to rapid delivery. Ruthlessly pursuing continuous integration and delivery. Committing code early and often, with an understanding of version control & branching strategies.
Implement continuous live testing.
Implement infrastructure as code.
Implement infrastructure as cattle not pets - configuration and deployment are automated.
Apply my understanding of elastic scale and build highly available systems.
Build manageable code and observe basic hygiene practices.
Follow the best practices of continuous BDD / TDD / Performance / Security / Smoke testing.
Work effectively with my product stakeholders to communicate and translate their needs into improvements in my product.
Lead group discussions on design within appropriate bounded context
Support production systems, resolve incidents and perform root cause analysis.
Debug / find complex problems and support / maintain the software solution.
Share knowledge and influence with the wider engineering community.
Mentor and develop those around me.
Raise the bar of the organization.
Produce proof of concepts to evaluate new tools