Salary: £45,000 to £85,000
Type: Permanent, Full-Time
Design, develop, document, test, and debug new and existing software systems and/or applications for market sale or large-scale proprietary software for internal use. Serve as technical expert on development projects. Participate in full development lifecycle including requirements analysis and design. Write technical specifications based on conceptual design and stated business requirements. Support, maintain, and document software functionality. Identify and evaluate new technologies for implementation. Analyse code to find causes of errors and revise programs as needed. Participate in software design meetings and analyse user needs to determine technical requirements. Consult with the end-user to prototype, refine, test, and debug programs to meet needs. Work without supervision on highly complex projects. Extensive latitude for independent judgement. Assist less experienced peers.
Duties and Responsibilities:
- Participate in defining and implementing technical direction
- Help develop specification, program and documentation
- Develop, implement, and maintain application software.
- Perform or review systems analysis, design, programming, testing, debugging and documentation
- Implement approved changes to application software to maintain standards as set forth, correct problem, modify or enhance application function
- Maintains integrity of program logic and coding and establishes requires checks and balances for operational controls
- Produce procedural documentation as required
- Works effectively with peers, team members and superiors
- Review and analyse existing application programs and programs development to ensure efficiency and effectiveness of programs
- Lead or participate in process improvement
- Duties listed above describes typical duties and responsibilities and is not intended to limit management from assigning or reassigning other work to meet the needs of the company
- Required skills:
- Extensive experience of designing, coding debugging and testing in various software languages, in particular C, C++ or C#.
- Linux kernel or device driver experience with an understanding of low-level interactions between hardware and software.
- Ability to develop and maintain good working relationships with a geographically distributed team.