JOB DESCRIPTION:
The Group is seeking eager candidates to develop embedded and real-time software to support prototyping, lab experimentation, and field experimentation of novel communications and sensing applications.
- Designs and implements software of embedded devices and systems from requirements to production and commercial deployment for product lines.
- Designs, develops, codes, tests, and debugs system software.
- Involved in specifications, design, and development of embedded firmware in engineering projects.
- Analyzes and enhances efficiency, stability, and scalability of system resources.
- Integrates and validates new product designs.
- Supports software QA.
- Provides postproduction support.
- Interfaces with hardware design and development.
- Experience in embedded systems development.
- Experience in hands-on development and troubleshooting on embedded targets.
- Solid programming experience in C or C++.
- Proven experience in embedded systems design with preemptive, multitasking real-time operating systems.
- Knowledge of reading schematics and data sheets for components.
- Strong documentation and writing skills.
REQUIRED SKILLS:
- Bachelor s degree, Master s degree, or PhD in Computer Science, Computer Engineering, Electrical Engineering, Mathematics, Physics, or related scientific/engineering field
- Strong experience with C/C++ development
- Experience designing software for real-time and near-real-time software on embedded processors (such as ARM Cortex-class processors)
- Experience with multi-threaded programming in Linux and real-time OS environments
- Familiarity with continuous integration (CI) pipelines for joint FPGA and embedded software development
- Experience with laboratory benchtop testing of embedded software designs including the use of integrated debuggers and/or laboratory equipment such as stand-alone logic analyzers or digital oscilloscopes
- Familiarity with multi-stage boot loader configuration
- Experience programming in Python.
- Experience designing software for embedded ARM processors in FPGA System on Chip (SoC) architectures
- Experience with Yocto-based Linux OS development and deployment, preferably with PetaLinux.
- Strong verbal and written communications skills including collaborating with other on-site and/or remote technical team members, preparing and sharing technical results with others, and documenting work to aid other team members and activities.
DESIRED SKILLS:
- Familiarity with assembly programming
WORK MODE:
- Position requires on site activities each week - including classified discussions, prototype development, test, debug.
- Candidates should expect to be onsite 4 days/week with one remote day initially.
CLEARANCE:
- Interim clearance for the start of the position is ok, but a FULL SECRET clearance is HIGHLY PREFERRED.
INTERVIEW PROCESS:
- Interview process will be an initial phone screen and then there will be a larger audience panel interview (in person would be preferred for the second-round interview if the person is local and available).