Master's or Bachelor's in Computer Science, Electrical Engineering, Aerospace Engineering, or related
3-5 years of engineering programming experience
Expertise in embedded software and firmware development, particularly in C and C++
Familiarity with the Software Development Life Cycle
Experience with C# for GUI programming
Ability to read schematics and debug digital hardware
Strong problem-solving and analytical skills
Responsibilities
Design and maintain embedded software using RTOS for aerospace applications
Coordinate system and software requirements alongside design and code development
Conduct software verification, validation, and peer code reviews
Integrate software and hardware systems effectively
Participate in audits with FAA representatives for product certification
Support flight testing throughout the development and certification phases
Develop and present ideas for system improvements focused on cost and efficiency
Create software test procedures and related documentation
Benefits
Life insurance
Comprehensive medical and dental plans
Profit sharing and retirement plan
401(k) plan
Full Job Description
Software Engineer-II (Embedded Systems)
Job Summary:
We are seeking a Software Engineer-II (Embedded Systems) to work collaboratively within our team of engineers to design, develop and maintain products and test system functionality.
Responsibilities:
Assist in design, development, and maintenance of Embedded software using RTOS (Real-Time Operating system) which is used for data acquisition, evaluation, and display systems for the Aerospace Industry
Coordinate system/software requirements, design, and code development and maintenance
Perform software verification and validation activities along with peer reviews of designs and software code
Perform software/hardware and system integration
Attend SOI audits with the FAA representatives and DER to certify the product
Support of flight test from development through certification
Prepare and present ideas for new/improved systems, addressing cost, schedule, and risks
Assist in design or develop programs of use in the company's engineering projects aligned with DO-178B & C standards
Evaluate product demand from customer and express theoretical design to meet customer requirements
Translate technical guidance received from supervisor into usable data applicable to a particular project
Develop software test procedures, software programs, and related documentation
Day to day work with different microcontrollers (STM32F4 STM32F7-ARM based controllers) setting up their memory, assigning timers, ports and other peripherals, also communication protocols (ARINC825, ARINC429, RS232, RS422, I2C, UART, SPI, MODBUS) that are independent and codependent on other system variables to interact with larger mainframe devices
Work closely with hardware in a lab setting, and debug using lab equipment (e.g. spectrum analyzer, digital oscilloscope)
Perform source code management and version control management (GIT, Subversion and SourceSafe)
Perform additional duties as required
Requirements:
Master's Degree or Bachelor's Degree in Computer Science, Electrical Engineering, Aerospace Engineering or related field from accredited college or University
Three to five years of experience in engineering programming
Expert knowledge of embedded software and firmware development, including C and C++
Knowledge of Software Development Life Cycle
Knowledge in Graphical User Interface programming, preferably in C#
Ability to read schematics and debug digital hardware using oscilloscope, logic analyzer, or similar tools for troubleshooting
Must understand coding and OOP software design principles
Experience parsing and assembling of packets for use over the serial data ports on a system that has RToS
Problem solving and analytical reasoning capabilities
We offer an excellent benefits package, including life insurance, comprehensive medical and dental plan, profit sharing and retirement plan and 401(k) plan. Salary will be commensurate with experience, education and ability.