- Be able to demonstrate experience of successfully leading the architectural design of a product or group of products.
- Have the ability and experience to co-ordinate technical and development activities across a team.
- Experienced in the breadth of software engineering activities within an evolutionary lifecycle process including: requirements capture and analysis; architectural and detailed software design; object-orientated software implementation; unit and system-level testing; installation and deployment.
- Familiarity with software lifecycle processes and support tools, estimation and quality assurance principles.
- Ability to manage day-to-day development and bug-fixing activities.
- Extensive day to day experience of writing software in an object orientated mainstream language (eg C#, C++, Java, Delphi). Good understanding of how to effectively employ object orientated principles. The candidate will have had design responsibility for successful software components and applications..
- A good appreciation of current and emerging technologies along with their potential benefits and limitations (eg XML, .net and the MS technology stack, web services, the various flavours of parallel computing, software component libraries, emerging operating systems).
The candidate will be numerate as the problems they will be dealing with will be mathematically based. However, they should be a practitioner of commercial software development rather than an "academic"