We are seeking a Senior Embedded Software Engineer with practical experience building robust, high-volume software solutions. You will be writing applications on embedded, IoT devices that provide 3D indoor positioning using RF and communicate to cloud applications for a Bay Area, CA. You should have at least 7 years or more of experience as a software engineer. Hands-on experience working with embedded Linux, OpenWRT, QNX, VXWorks, or other RTOS is required. You should be comfortable with microcontroller peripheral control buses (such as SPI, UART, I2C, JTAG, etc.) with a basic knowledge of device drivers, boot loaders, and communication protocol stacks. Signal processing experience and experience with DSPs and FPGAs are highly desired. This role is fast-paced, supporting a variety of embedded platforms, with the opportunity to be a key member in designing and bringing up a new embedded board for 3D positioning. This role operates closely with Research, Hardware, and business development teams. The successful individual must be self-motivated and have the ability to proactively solve problems and complete mission objectives.
JOB RESPONSIBILITIES
- Design, code, and work on IoT devices.
- Develop and implement algorithms utilizing peripheral I/O components (such as accelerometer) to improve positioning accuracy.
- Develop software for IoT device provisioning, diagnostics, and telemetry.
- Work with the hardware team to test, verify, and prototype new hardware functionality.
- Identify and champion proposals to improve development processes, reduce system cost, and improve system quality.
- Be a self-starter, own your work from concept to deployment.
- Work in an environment that supports your individual growth.
MUST HAVE ATTRIBUTES/SKILLS
- Development experience with C/C++ and Python (experience in other programming languages, such as Rust, is desirable).
- Experience developing on embedded RTOS is required. Experience on “bare metal” platforms is desired.
- Interpersonal skills and appreciation of other people's work discipline within a startup environment.
- The ability to work in an Agile team based in the US Pacific Timezone.
SHOULD HAVE ATTRIBUTES/SKILLS
- BSc or higher degree in Computer Science, Electrical Engineering, or a related subject.
- Experience with ISM band wireless devices such as wireless access points.
- Linux experience for running and developing test scripts.
- Experience with JTAG, logic analyzers, use of oscilloscopes, and other hardware development tools.
- Experience securing IoT devices (flash encryption, code signing, secure-JTAG, hardware fuse, etc.).
- Strong debugging and analytical skills for embedded platforms.
- Experience with board bring-up.
- Ability to read electrical schematics and electrical component datasheets.
- Experience using version control systems such as Git.
NICE TO HAVE ATTRIBUTES/SKILLS
- Experience with AWS IoT Core ( Authentication, Registry, Shadow, etc.).
- Experience with FPGA development (VHDL, Verilog).
- Experience developing and modifying the bootloader (UBoot).
- Experience developing device drivers.