POSITION PURPOSE
- Design, test and implement software systems from concept through to production.
- Provide support on software systems as applicable.
- The Job Holder will advise the project leader on the project approach and technology to be used.
- If acting as the project leader, the Job Holder will also make decisions on risk management, resource levels and legislative issues.
- The Job Holder must be aware of new technology coming to the market and ensure best practices are used in designs.
- The Job Holder will make recommendations on approaches to solve problems which will involve other departments.
QUALIFICATIONS and EXPERIENCE
- [URL Removed] equivalent in Computer Science, Software Engineering, Electronics, or related discipline
- Complete life cycle experience from initial specification through unit design, test, integration, system test, commission, regulatory approval and production in an Agile environment
- Embedded software – design development and testing
- Real-time software development interfacing into hardware
- Experience of USB, Ethernet, serial interfacing
- Experience of motion control systems and motor driving
- Experience in project team environment of peer review, mentoring, progress reporting and setting & meeting targets (weekly, monthly)
Skills / Knowledge (Relevant to the role):
- Specialist knowledge of multi-threaded real-time embedded software development
- Specialist knowledge of the LabView programming environment, including PC, PXI, and cRIO platforms.
- Specialist knowledge of LabView programming architectures and their respective fields of application.
- Technically self-sufficient in Windows application development (in C++ and C#) with Visual Studio
- Key SW development skills
- Desirable – Familiarity in network communication protocols, IEEE802 family, TCP/IP
- Desirable – PC architectures, Window and Linux operating systems
- Develop code using best practice object-oriented software design techniques throughout the software lifecycle e.g. DRY, SOLID, YAGNI, etc.
- Familiar with the use of source control systems (Git/Subversion) and automated software building (Azure DevOps)
POSITION OUTPUTS
Project Work:
- In conjunction with the customer, produces the overall software requirements. Using appropriate analysis and/or modelling techniques, generates an initial structural design, and agrees it with the customer.
- (The Job Holder may be the project leader, sub project leader or a senior member of the project team).
- Working from the initial design, and as directed by the Project Leader where appropriate, the Job Holder defines detailed designs for the individual software elements, and/or supervises and directs Software Engineers in doing so.
- The detailed design will be discussed and agreed with the customer and other members of the project team and will consider product quality and maintainability.
- From the detailed design the Job Holder generates the appropriate code and carries out initial testing and debugging or supervises Software Engineers in coding and debugging.
- Oversees testing of the system by an appropriate tester, from a systems & software view.
- Monitors the project progress, with regard to the software.
- Advises the project leader on risk strategy as the project progresses.
- Conducts design reviews on projects and ensures company design principles are met and quality is maintained.
- Develops customer contact.
- Organises and gives training to the customer, and Service Engineers on the project.
- Visits end user sites for installation and support of software.
- Supports other designers in area of expertise and in promoting standardisation of software and design techniques.
- Keeps up to date with advancing techniques/technology in the software field.
Department Responsibilities:
- Present ideas, projects etc., to others. This may be the customer, senior management, or peers.
- Advises on/and undertakes training programme required to enhance department staff or other departments staff where appropriate.
Project Leader
- Directs the work on a project in defining the systems engineering approach by analysing the risk and co-ordinating the research/ development for the project.
- From the concept of a project, generates requirements and specification documents for the instrument/machine.
- Discusses with the customer and Project Manager to gain acceptance of the approach and breaks the project into its systems components for the team.
- Identifies risks in the project and the strategy to eliminate and overcome these risks.
- Conducts and documents critical design reviews.
- Organises project and customer meetings, compiles and distributes minutes of the meetings.
- Plans the project and generates/keep up-to-date timelines to show the milestones, target dates for the project, and project progress.
- Contributes to the project backlog.
- Takes responsibility for estimating the resources required for a project, and the budgeting and managing of the expenditure.
- Authorises expenditure on the project and arranges second signature in own absence.
Desired Skills:
- USB
- Ethernet
- serial interfacing
- motion control systems and motor driving
- PXI
- PC
- cRIO
- IEEE802 family
- TCP/IP
Desired Work Experience:
- 5 to 10 years
Desired Qualification Level:
- Degree