Job description:
Sr Embedded Software Engineer
Essential Functions:
- Provide technical expertise within the Engineering department to solve difficult software challenges or problems or to bring in new technical capability
- Design, develop, document and test embedded software for space products
- Develop C or assembly code for Bootloaders, BSP, VxWorks 6.9 or 7.0 and future versions, Embedded Linux, RTEMS device drivers
- Able to debug, test, and verify component and board designs through software
- Develop test programs, test plans, and verification plans
- Represent Engineering in technical customer discussions / meetings
- Assist Manufacturing Engineers with technical assistance with production issues
- Able to Develop and Maintain Python based desktop GUI applications to control and monitor Automated Test Equipment (pyvisa, nidaqmx)
Responsibilities:
- Product Specifications: Implement innovative approaches and develop clearly written design specifications that ensure PDCs products are designed to succeed in the market relative to their technical performance, feature set, cost and time to market goals.
- Architecture: Facilitate the design of complex products by leading and coordinating engineering teams of varied technical disciplines through clearly documented architectural level design documents. Lead the decision and tradeoff process for issues that cross hardware/software or other technical discipline boundaries.
- Design (and Develop): Perform original and innovative software design and distill large-scale designs into architectural elements that facilitate the division of design work to teams of two or more engineers.
- Planning: Develop plans, schedules, and identify resources required to develop products from market requirement through product release. Identify risk areas and develop contingency plans to eliminate or mitigate risk that could result in schedule delays or failure to meet specification or design plan requirements.
- Innovation: Conceive methods for achieving product requirements and specifications using appropriate software architecture and design techniques. Anticipate possible difficulties and develop alternate methods.
- Maintenance: Provide support for maintaining existing products by investigating and resolving defect reports, creating documentation, and creating and releasing new versions of software packages.
- Continuous Improvement: Take the initiative to research, develop, propose, evaluate and/or implement new methods, processes, techniques, tools, components, or technology that improve quality, timeliness and/or performance of PDCs products or the efficiency or cost effectiveness of PDCs engineering work. Modify existing SOPs or create new SOPs to implement new processes.
Qualifications:
Required Knowledge, Skills and Abilities:
- Fluent in C and Python, strong VxWorks, Linux, and Bare Metal embedded background, development of bootloaders, BSP, VxWorks 7, Linux, and RTEMS device drivers test code and scripts
- Familiarity with Buildroot and or Yocto Linux build systems
- Good understanding of NAND FLASH memory file systems, drivers, and implementation
- Skilled in low level hardware code development and debugging. Skilled with debuggers/In-circuit emulators.
- Experience and skills in debugging using lab equipment and other tools
- Ability to work in a team setting effectively
- Successfully problem solves and manages conflict
- Has analytical, evaluative, and objective critical thinking skills
Educational / Experience Qualifications:
- Bachelor's Degree in Computer Science, Computer Engineering, or a related field, Masters degree is a plus
- 10+ years relevant work experience
Why is This a Great Opportunity:
Work on hardware that goes on the latest satellites, which is a fast growing industry. You will work in a small engineering environment where there is not multiple levels of management so you will work directly with those making the decisions.
Salary Type : Annual Salary
Salary Min : $ 160000
Salary Max : $ 180000
Currency Type : USD