Define, design, implement, and test components of wireless protocol stacks, ranging from physical layer algorithms to layer 2/layer 3 procedures.
Contribute to systems-level engineering discussions that reconcile the various use cases for our software in pursuit of best-in-class solutions.
Work with customers (both internal and external to CACI) to help integrate our solutions into a wide variety of applications and use cases.
Debug, test, and validate our capabilities using both unit tests as well as scenarios reported by our end users.
Travel to other CACI locations and/or customer sites in the US as necessary (travel requirement is typically 0
15%).
Requirements
A bachelor’s degree (or higher) in Computer Science or Electrical Engineering or equivalent technical degree or an additional 4+ years of experience in lieu of degree.
5+ years of related experience
Experience writing software for Linux-based operating systems
C/C++ programming experience, shown through project work or code examples.
Demonstrated ability to read and understand technical specifications, and create software-based implementations of the procedures and methods described therein.
Experience working in both SW and HW domains.
Ability to read and understand schematics.
Experience with low level debugging techniques (SW, probes, oscilloscopes).
Embedded SW development experience on custom designed hardware (Bootloaders, Device Drivers for: Ethernet, PCIe, I2C, SPI, GPS, MDIO, Sensors)).
Embedded Linux OS development experience on custom designed hardware (Yocto, Kernel, Device Driver, File system, Containerization).
Software development experience for products based on 64-bit ARM and 64-bit x86 processors.