Senior Software Engineer

Cubic

  • Salfords, Surrey
  • Permanent
  • Full-time
  • 12 days ago
Business Unit:Cubic Transportation SystemsCompany 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:Job Title: Senior Software Engineer (Devices - Java)Conceptualise, designs, codes, debugs, and performs development activities in accordance with designated standards and procedures to meet specific project requirements. Shares technical expertise and provides training and guidance to other team members.Essential Job Duties and Responsibilities:
  • Using the relevant programming language and technologies provide creative, thorough, and practical solutions to a wide range of technical problems.
  • Share technical expertise within the department and other departments as requested.
  • 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.
  • Provide training and guidance to other team members.
  • Comply with Cubic’s values and adherence to all company policy 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.
Education and Qualifications:
  • Bachelor of Science degree in Computer Science, Electrical Engineering, or related field or equivalent professional experience or combination of both.
Personal Qualities:
  • Ability to work as part of a team towards individual and shared goals; a team player in a cross-functional environment.
  • Excellent written and verbal communication skills with the ability to communicate effectively at all levels.
  • Demonstrates excellent interpersonal skills with a willingness to share knowledge, coach and collaborate effectively with individuals and other departments.
  • Diligent, with attention to detail.
  • Able to problem solve and find effective and timely resolutions.
  • Self-motivated with the ability to work on own initiatives and under pressure.
Skills, Knowledge, and ExperienceEssential:
  • Proficient modern Java development experience.
  • Experience in production-grade Software Engineering with a proven track record of specification, design, and development, emphasising the need for robust, secure, maintainable code.
  • Delivered highly functional, performance-driven applications.
  • Experience in developing multi-threaded applications.
  • Experience of debugging on target hardware (Linux).
  • Experience of networking and IPC messaging protocols.
  • A solid understanding of the Linux platform and administration
  • An effective problem solver with the ability to understand and resolve complex issues.
  • Experience in troubleshooting and debugging applications.
  • Experience of Object-Oriented Design and implementation, along with Software Design patterns.
  • Ability to contribute to the development of the architecture for applications.
  • Experience of maintaining and improving coding standards.
  • 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), Continuous Integration, Test Driven Development, SOLID and Clean Code principles.
  • Scrum or Kanban experience.
  • GIT and Jenkins experience.
  • Experience using JIRA.
Desirable:
  • Proficient modern C++ experience (14 or later).
  • Experience writing simulators and test harnesses.
  • Experience with protocols such as RS485 or CANopen.
  • Experience with the Yocto Linux on Arm.
  • Experience working in a similar industry.
Essential Job Duties and Responsibilities:
  • Using the relevant programming language and technologies provide creative, thorough, and practical solutions to a wide range of technical problems.
  • Share technical expertise within the department and other departments as requested.
  • 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).
  • Prepare reports, manuals, procedures, and status reports.
  • Provide training and guidance to other team members.
  • Keeps abreast of improvements and developments within software engineering, supporting continuous improvement within engineering.
  • Comply with Cubic’s values and adherence to all company policy 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.
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.Due to the nature of the work, this role is primarily office-based.Worker Type:Contingent Worker

Cubic