AUTOMATION SOFTWARE ENGINEER ABOUT THE ROLE
We are looking for someone to lead the day to day activities of coordinating a small development team on a fast paced project. Someone who can propose and implement excellent design solutions for new and existing products, solve system problems and develop engineering solutions. You will report to the work package leader and be responsible for documenting the sub-system design, producing software architectures for individual sub-systems and coordinating the team to develop against the design and following process. Development will be using open source software in C++, Java with some Python and a mix of other technologies.
Much of the software is safety related and requires adherence to software processes, coding standards and safety standards such as Cenelec EN 50128.
You will have at least 5 years software development experience and demonstrated ability in object oriented design and ideally enterprise integration patterns. Expertise in one of C++ or similar object orient languages, experience with XML, XSLT, MySQL and unit testing frameworks will all be considered highly. Experience in or supporting system/subsystem integration is desirable.
Job requirements Description of role:
You will be responsible for a team of up to 6 developers managing the changes and new features being added to an existing system following the roadmap set by the work package leader. This will involve complex designs in a semi-real time system with changes to existing systems and the addition of new applications being primarily micro services. Your primary tasks will be:
CRITERIA Essential criteria:
- Definition of product requirements
- Subsystem and product design
- Team coordination including work-allocation
- Defect management
- Source control management
- Build management
- Automated product testing
Highly desirable criteria:
- 5+ years of professional industry experience in C++ or demonstration of strength in a similar programming language;
- Demonstrable ability in object oriented design;
- Demonstrable experience with UML/SysML or other design modelling;
- Experience with unit test frameworks both custom or frameworks such as cppunit, nunit, junit, etc;
- Demonstrable capacity to work independently and collaboratively;
- Demonstrable ability to deliver to tight deadlines while maintaining a high quality of work.
Education, skills and experience
- Experience with JMS, message brokers, enterprise integration patterns, micro service patterns;
- Real time/semi-real time software development experience;
- Software development experience in the rail industry;
- Experience in or supporting system/subsystem integration;
- Experience with XML and XSLT;
- Experience with MySQL or any similar DBMS;
- Experience in Cenelec standards.
- 5+ years of professional industry experience in C++ or demonstration of strength in a similar programming language.
Bachelor degree qualified in software engineering, computer engineer, computer science, information technology or equivalent.