Analyse, design and develop complex systems. Understand system functionality. Understand databases and data relationships in respect of Change Control. Test and debug between programs and interface between sub-systems. Construct and implement programs. Understand and interpret complex technical system functionality and specification. Support on production systems. Provide an advisory service to users and advise on user training. Direct system construction. Develop technical and user documentation and specifications. Be responsible for quality code walkthrough. Train and supervise junior trainees. Work as part of a project team. Willing to travel and be on standby.