Cubic Transportation Systems
Cubic offers an opportunity to provide innovative technology for government and commercial customers around the globe, helping to solve their future problems today. We’re the leading integrator of payment and information technology and services for intelligent travel solutions worldwide, and the leading provider of realistic combat training systems, secure communications and networking and highly specialized support services for military and security forces of the U.S. and allied nations. If you have an entrepreneurial spirit and thrive in an innovative environment, we want to talk to you about your next role at Cubic! We are seeking employees inspired by technology, and motivated by the rewards of hard work, commitment, teamwork, quality, integrity, and respect. We invite you to explore opportunities with Cubic.
Conceptualise, designs, codes, debugs and performs development activities in accordance with designated standards and procedures to meet specific project requirements.
Essential Job Duties and Responsibilities:
- Using the current programming languages and technologies provide creative, thorough and practical solutions to a wide range of technical problems.
- Analyse and contribute to system and subsystem requirements specifications and design definitions.
- Design, develop and test applications and programs to support the company’s products.
- Design, develop and test software programs following established quality standards and in accordance with internal engineering procedures including coding, unit testing, peer reviews and software configuration control.
- Complete high and low level detailed software design specifications, storyboards and interface specifications.
- Provide support of products through conception to product delivery including problem solving, defect maintenance and support to customer services (which may require out of hours support in certain circumstances).
- Keeps abreast of improvements and developments within software engineering, supporting continuous improvement within engineering.
- Comply with Cubic’s values and adherence to all company policies and procedures. In particular, comply with the code of conduct, quality, security and occupational health, safety and environmental policies and procedures.
- In addition to the duties and responsibilities listed, the job holder is required to perform other duties assigned by their manager from time-to-time, as may be reasonably required of them.
Minimum Job Requirements:
Education and Qualifications
- Bachelor of Science degree in computer science, electrical engineering, or related field or equivalent professional experience or combination of both.
- Master’s Degree in computer science or related discipline or equivalent qualification/experience.
- Certification in a relevant programming language or framework.
- Certified Scrum Master.
Skills, Knowledge and Experience
- Experience in Software Engineering with a proven track record of specification, design and development.
- Demonstrable experience of defining test plans and test data requirements.
- An effective problem solver with the ability to understand and resolve complex issues.
- Experience in troubleshooting and debugging applications.
- Experience of Object Oriented Design (e.g. UML) and implementation, along with Design patterns.
- Ability to contribute to the development of the architecture for applications.
- Able to build reusable code and libraries, ensuring thorough application documentation for future use.
- Experience of software best practices such as Automated Testing (Google Test and VSTest), Continuous Integration, Test Driven Development, SOLID and Clean Code principles.
- Scrum or Kanban experience.
- GIT and Jenkins experience.
- Experience working with test teams to optimise application performance.
- Previous experience of CTSL products/industry or similar is desirable.
- Desirable to have BitBucket and Conan experience.
- Desirable to have DOORS, Test Rail and JIRA experience.
C++ Embedded development experience requirements:
- C++ experience.
- Delivered highly functional, performance-driven, user-friendly applications.
- Client-side development experience.
- Experience in developing multi-threaded applications.
- Experience with REST, JSON & web services.
- Experience using a crash reporting solution.
- Experience of debugging on target hardware.
One of the following mandatory platform skills:
- Win32/64 developers need
- Skills in Visual Studio 2015 or greater.
- Win32/64 specific UI / UX concepts should be understood.
- An understanding of the nuances of the MS Windows platform.
- Familiarity with using patching / installers.
- Linux developers need
- Skills in CLion or Eclipse.
- Linux-specific UI / UX concepts should be understood.
- An understanding of the nuances of the Linux (Ubuntu) platform.
- Familiarity with using RPM / installers.
- Experience with Valgrind.
- Efficient memory management experience.
- Efficient usage of disk IO experience.
- Low-level smart card comms/NFC interfacing.
- Experience writing simulators and test harnesses.
The description provided above is not intended to be an exhaustive list of all job duties, responsibilities and requirements. Duties, responsibilities and requirements may change over time and according to business need.