Business Unit:
Cubic Transportation Systems
Company Details:
When you join Cubic, you become part of a company that creates and delivers technology solutions in transportation to make people’s lives easier by simplifying their daily journeys, and defense capabilities to help promote mission success and safety for those who serve their nation. Led by our talented teams around the world, Cubic is committed to solving global issues through innovation and service to our customers and partners.
We have a top-tier portfolio of businesses, including Cubic Transportation Systems (CTS) and Cubic Defense (CD). Explore more on Cubic.com.
Job Details:
This position will be responsible where relevant for the design, development, maintenance, automation of: integrated development environments; engineering and automated test environments; build and release tooling; version control application(s) and artifact storage.
Works closely with local and global Software Engineering teams and management by proving timely and targeted feedback around software quality. Provides technical guidance and leadership based on experience with and knowledge of industry standards as moderated by the global One Cubic Engineering team. This position typically works under limited supervision and direction.
Essential Job Duties and Responsibilities:
- Effectively maintaining Integrated Design Environments tooling to create an environment for the software team developers to deliver code from their local system to subsequent environments smoothly.
- Designs, develops and maintains the engineering unit and integration test hardware and software to enable continuous software regression testing on simulated and physical hardware.
- Supports the delivery of Automated Test Equipment for Cubic hardware.
- Designs, develops and maintains build tools such as software build servers, code quality dashboards and static code analysis.
- Provides automated provisioning of applications and tooling where such work adds value by reducing setup time and providing consistent configuration.
- Ensures all tools and applications involved in software development and release regarding versions and license requirements are current and update to date and that their data integrity is safeguarded in terms of storage and cyber security.
- Applies and maintains software quality standards on all development work performed for the role through application of Cubic change management process. Participates in defect and enhancement management processes.
- Provides inputs to formal software project estimation though long-term tracking of software metrics.
- Provides software documentation in line with OneCubic policy and implementation of Product Lifecycle Management system.
General Duties and Responsibilities:
- Complies with Cubic’s values and demonstrate adherence to all company policy and procedures. In particular with the code of conduct, quality, security and occupational health, safety and environmental policies and procedures.
- Engages in continuous self-improvement of technical skills and improvements in programming techniques and toolsets.
- Drives value added changes to existing coding practices, standards and tools.
- Provides leadership and mentorship to junior engineering staff.
- Performs other duties as assigned from time-to-time as may be reasonably required.
Minimum Job Requirements:
Qualifications
Essential:
- Tertiary qualification in the field of engineering, computer science, information systems, or other relevant technical discipline
Skills/Experience/Knowledge:
Essential:
- Five years minimum proven experience developing and maintaining software systems.
- Five years minimum proven experience using Python3, including the use of Virtual Environments.
- Five years minimum proven experience using Docker and Jenkins
- Five years minimum proven experience managing Linux systems across different distributions.
- Familiarity with, or willingness to learn, Ruby and Rake.
- Apply knowledge of good software development practices (TDD, SOLID design principles etc.).
- Read and understand the source code of the existing product lines with the purpose of maintaining and improving documented functionality.
- Understands and works with peripheral elements of software work products such as run time environments, databases and networks.
- Effectively use Microsoft Office, Diagramming, Issue and Requirements Management tools to create derived software-level specifications and supporting documentation.
- Work well in a team environment, relating to a range of different personality types.
- Produce effective written and oral communication.
Desirable:
- Experience with CMake
- Embedded C development experience
- Familiarity with PC-lint, Sonarqube or Clang-tidy.
- Able to debug simple electrical and electronic systems (using DMMs, oscilloscopes etc)
- Scripted document generation.
- Passionate and believes in the benefits of automation!
Worker Type:
Employee