Senior Software Engineer

Cubic Transportation Systems   •  

Huntsville, AL

Industry: Transportation


5 - 7 years

Posted 56 days ago

This job is no longer available.

Business Unit:

Cubic Mission Solutions

Company Details:

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.

Job Details:

Job Summary:

Performs somewhat complex software engineering assignments following designated standards and procedures. Works closely with other engineering disciplines. Duties require application of engineering principles and techniques. This position typically works under general supervision and direction. Incumbents of this position will regularly exercise discretionary and substantial decision-making authority.

Essential Job Duties and Responsibilities:

� D evelop embedded software to manage control loop software and device I/O

� Develops design concepts for software work products.

� Manage software product development throughout lifecycle from requirements gathering to production and shipping

� Work with hardware developers (mechanical and electrical) to meet customer requirements

� Write device drivers, software algorithms to process data

� Develop Web user interface for application development

� Participates in the analysis, design, development, test, modification and integration of software systems or subsystems for designated products and/or customer applications.

� Understands and works with peripheral elements of assigned software work products (run time environments, databases, networks).

� Develops software requirements, related design, and code.

� Performs software testing.

� Applies and maintains quality standards.

� Assesses severity of problems, determines corrective action, resolves technical problems, and performs fault isolation and implements solutions.

� Revises and updates programs and documentation, including reviewing schedules and milestones.

� Maintains the host environment and toolsets required to implement software deliverables.

� Assists in specification preparation and the assessment of products.

� Assists in the writing of reports, manuals and procedures.

� Keeps abreast of improvements in programming techniques.

� Engages in continuous self-improvement of technical skills and improvements in programming techniques and toolsets.

� Recommends value added changes to existing coding practices, standards and tools.

� Shows commitment to company values, ethics, safety, security, labor charging, and quality.

Knowledge, Skills, and Abilities:

� Experience in C/C++ programming of Linux-based embedded systems

� Experience with multi-threaded applications in a Linux-based embedded environment

� Experience with different interfaces including i2c, SPI, USB, RS232, RS422, CAN, Ethernet

� Preferred experience with Web Services to include HTTPD and RESTful

� Experience with revision control software tools preferably Subversion

Minimum Job Requirements: Four-year college degree in computer science, computer engineering with 5 years of experience or a Master of Science degree with 3 years of related experience. Strong knowledge and hands-on experience in embedded software development desired.Requires proficiency using programming languages such as Java, "C/C++," Product Lifecycle Management, graphics or other developmental software. May require ability to develop software in a Linux, Windows, Integrated Development Environments (IDEs), or other PC environment. Ability to use PC software such as word processing, database, spreadsheet and flowchart, and Computer Aided Software Engineering (CASE) tools. Effective written and oral communication skills required. Able to analyze and solve complex software engineering problems. Able to prioritize work, complete multiple tasks and work under deadline and budget guidelines.

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.

Worker Type: