Senior Software Engineer

at  Cubic Corporation

Salfords, England, United Kingdom -

Start DateExpiry DateSalaryPosted OnExperienceSkillsTelecommuteSponsor Visa
Immediate29 Jul, 2024Not Specified01 May, 2024N/AEclipse,Platform Skills,Object Oriented Design,Design,Software Design Patterns,Continuous Integration,Test Driven Development,Linux,Jira,Platform Development,Coding Standards,Computer Science,SoftwareNoNo
Add to Wishlist Apply All Jobs
Required Visa Status:
CitizenGC
US CitizenStudent Visa
H1BCPT
OPTH4 Spouse of H1B
GC Green Card
Employment Type:
Full TimePart Time
PermanentIndependent - 1099
Contract – W2C2H Independent
C2H W2Contract – Corp 2 Corp
Contract to Hire – Corp 2 Corp

Description:

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:
REQ & ADVERT – External Brief Job Description
Job Title: Senior Software Engineer (C++)

Job Description:

  • Design, develop and test software programs.
  • Analyse and contribute to system and subsystem requirements specifications and design definitions.
  • Complete high- and low-level detailed software design specifications, storyboards, and interface specifications.
  • Provide support of products from conception through to product delivery including problem solving, defect maintenance.
  • Prepare reports, manuals, procedures, and status reports.
  • Provide training and guidance to other team members.

Education and Qualifications:

  • Bachelor of Science degree in Computer Science, Electrical Engineering, or related field or equivalent professional experience or combination of both.

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 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.
  • 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 DOORS, Test Rail and JIRA.
  • Experience working with test teams to optimise application performance.

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.

C++ development experience requirements:

  • Proficient modern C++ experience (11 and later).
  • Proficient client-side development experience.
  • Experience in developing multi-threaded applications.
  • Experience of debugging on target hardware.
  • Experience in platform development and a solid understanding of Linux.

JOB DESCRIPTION

Job Title: Senior Software Engineer (C++)
Job Summary:
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 C++ 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.
  • Analyse and contribute to system and subsystem requirements specifications and design definitions.
  • Design, develop and test of 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).
  • 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.

Minimum Job Requirements:
Education and Qualifications

Essential:

  • Bachelor of Science degree in Computer Science, Electrical Engineering, or related field or equivalent professional experience or combination of both.

Desirable:

  • 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

Essential:

  • Experience in production-grade Software Engineering with a proven track record of specification, design, and development, emphasising the need for robust, secure, maintainable code.
  • 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.
  • Organised with the ability to prepare reports, manuals, procedures, and status reports.
  • 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 DOORS, Test Rail and JIRA.
  • Experience working with test teams to optimise application performance.

Desirable:

  • Experience working in a similar industry.
  • Experience with Bitbucket and Conan.

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.
  • Strong organisation and planning skills with the ability to handle multiple projects and undertake new tasks quickly.
  • 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.

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.

C++ development experience requirements:

  • Proficient modern C++ experience (11 and later).
  • Delivered highly functional, performance-driven, user-friendly applications.
  • Proficient client-side development experience.
  • Experience in developing multi-threaded applications.
  • Experience of debugging on target hardware.

Mandatory platform skills:

  • Proficient skills in CLion or Eclipse.
  • A solid understanding of the Linux platform.

Desirable:

  • Experience in developing in other high-level languages, such as Python, JavaScript, and XML.
  • Experience with Valgrind.
  • Efficient memory management experience.
  • Efficient usage of disk IO experience.
  • Cryptography.
  • Low-level smart card comms/NFC interfacing.
  • Experience writing simulators and test harnesses.
  • Experience with the Yocto Linux on Arm.

Worker Type:
Contingent Worke

Responsibilities:

  • Using the C++ 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.
  • Analyse and contribute to system and subsystem requirements specifications and design definitions.
  • Design, develop and test of 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).
  • 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


REQUIREMENT SUMMARY

Min:N/AMax:5.0 year(s)

Computer Software/Engineering

IT Software - QA & Testing

Software Engineering

BSc

Computer science electrical engineering or related field or equivalent professional experience or combination of both

Proficient

1

Salfords, United Kingdom