Lead Systems Developer
Systems Development Manager
To make a significant contribution within the Development Team towards their objectives of ensuring that the Information Systems Department develops, delivers and maintains reliable and accurate business website applications and systems that provide real benefits to the business areas throughout the company and our external users.
- Specifies user/system interfaces and translates logical designs into physical designs taking account of target environment, performance & security requirements and existing systems. Produces detailed designs and documents all work using required standards, methods and tools, including prototyping tools where appropriate.
- Working alone on simple systems and modifications to existing systems, or with colleagues on more complex systems, specifies user/system interfaces, including for example: menus, screen dialogues, inputs, wireframes, reports, validation and error correction procedures, and processing rules.
- Translates logical designs into physical designs taking account of target environment, performance requirements and existing systems. Produces detailed designs including for example: physical data flows, class diagrams, file layouts, common routines and utilities, program specifications or prototypes, and backup, recovery and restart procedures.
- Documents all work using required standards, methods and tools, including prototyping tools where appropriate.
- Produces logical system designs showing for example: processes, objects, data flows, inputs, stored data and outputs. Identifies common processes.
- Working with data analysis colleagues where appropriate, produces or updates system object/data models and correlates these with corporate models.
- Working with database design or database administration colleagues where appropriate, translates object and data models into appropriate DB schemas within design constraints.
- Sets or participates in the setting of standards for programming tools and techniques, including security guidelines, and the selection of appropriate development methods. Advises on application of standards and methods and ensures compliance. Takes technical responsibility for all stages and/or iterations in a software development project, providing method specific technical advice and guidance to project stakeholders. Assigns work packages, monitors performance and manages change control dynamically, to optimise productivity. Provides advice, guidance and assistance to less experienced colleagues as required.
- Prepares project and quality plans and advises system development teams. Allocates work packages to technical staff, taking account of individuals’ abilities and the requirements of the work, monitoring and reporting progress.
- Oversees performance of programming staff, reports on their effectiveness and takes action to remedy deficiencies. Provides advice, guidance and assistance to less experienced colleagues as required.
- Puts in place mechanisms and procedures for the structured review of work produced and ensures that these are adhered to.
- Establishes and maintains agreed standards applicable to the work undertaken and ensures that they are adhered to.
- Takes responsibility for the design, coding, testing and documentation of particularly large, complex or mission critical programs.
- Provides expert advice in some or all aspects of the programming methods, tools and/or standards used in the organisation.
- Evaluates and reviews programming methods and tools used in the organisation.
- Undertakes, or arranges for, the recruitment, training and development of programming staff.
- Monitors service component capacity and initiates actions to resolve any shortfalls according to agreed procedures. Applies techniques to control the demand upon a particular resource or service.
- Recommends available tools and techniques to fulfil requirements to generate accurate information for measuring, estimating, planning and tuning capacity.
- Takes delegated responsibility in investigating, diagnosing and resolving problems as directed. Where appropriate, applies techniques to control the demand for a particular resource or service.
- Maintains a good understanding of the disposition and capacity of installed system components, available as-a-Service components, and the capacity and performance implications of their interworking.
- Maintains awareness of existing and future service commitments and the configuration designs associated with them.
- Escalates any potential points of failure either identified or understood from previous experience.
- Supervises one or more developers. Allocates routine tasks and/or project work. Provides direction, support and guidance as necessary, in line with individuals’ skills and abilities. Monitors progress against agreed quality and performance criteria. Acts to facilitate effective working relationships between team members.
- Supervises Developers in line with organisational strategy. Supports and guides the work of the development group.
- Allocates routine tasks and assigns project work to the development team, according to their particular skills, capabilities, and development needs.
- Creates job descriptions, as appropriate, in order to develop the development team and appraise performance.
- Understands link between professional development and performance management.
- Conducts formal appraisals of the performance of the one or more developers. Facilitates a dialogue with team members about expectations, progress, performance and development needs
Release and Deployment
- Assesses and analyses release components. Provides input to scheduling. Carries out the builds and tests in coordination with testers and component specialists maintaining and administering the tools and methods – manual or automatic – and ensuring, where possible, information exchange with configuration management. Ensures release processes and procedures are maintained
- Provides input to scheduling of tests and deployment.
- Carries out the builds and tests in coordination with testers and component specialists maintaining and administering the tools and methods – manual or automatic.
- Ensures that release processes and procedures are maintained.
- Develops specialist knowledge of database concepts, object and data modelling techniques and design principles. Translates object and data models into appropriate database schemas within design constraints. Interprets installation standards to meet project needs and produces database components as required. Evaluates potential solutions, demonstrating, installing and commissioning selected products.
- Develops specialist knowledge of database (DB) concepts, object and data modelling techniques and design principles.
- Translates object and data models into appropriate DB schemas within design constraints.
- Works with clients/users on development projects to make effective use of (object) database management systems (O/DBMS), query languages, other DB tools and techniques. Interprets installation standards to meet particular project needs and produces database components as required.
- Constructs, extends or maintains, tests, corrects and documents software components of O/DBMS to achieve well engineered products.
· Minimum of 3 years’ experience as a senior systems developer using Microsoft tools.
· Minimum of 1 years’ experience leading a team of individuals.
- Previous experience within the Life Assurance industry.
- Experience of working within software development using the following software development lifecycles:
- Waterfall (V Model).
- Experience of working for an international organisation with offices in different jurisdictions.
Technical Knowledge & Skills
- Expert in Microsoft.Net.
- Proficient in one or more of the following
- C# · VB.NET
- Familiar with SOAP and XML.
- Familiar with SOA principles
- Familiar with SOLID principles
- Advanced SQL Skills.
- Understanding of SCRUM Projects and the ability to act as Product Owner (with responsibility for the Project Backlog).