Embedded Software Engineer
Job Type: Full-time, on-site (Richardson, TX)
-
Design and implement software of embedded devices and systems from requirements for production and commercial deployment
Design, develop, code, test, and debug system software.
Review code and design.
Analyze and enhance the efficiency, stability, and scalability of system resources.
Integrate and validate new product designs.
Support software QA and optimize I/O performance.
Provide post-production support.
Interface with hardware design and development.
Assess third-party and open-source software.
-
1-3 years experience in software engineering.
Bachelor’s degree in computer science, computer engineering, or equivalent practical experience.
Solid C programming (compiler, linker, memory, CRT, etc.) experience.
Knowledge of both high and low-level communication protocols, from I2C and SPI to CAN and TCP/IP Protocols.
Experience with low-level RTOS such as FreeRTOS.
Experience with processor architecture.
Experience with source code management (SCM) tools (Subversion, Git, Perforce, etc.).
Familiarity with battery management and battery charging circuits.
Strong documentation and writing skills.
Basic knowledge of electrical engineering fundamentals to support low-level debugging.
Experience with basic electronics test equipment, such as multimeters, logic analyzers, power supplies, and oscilloscopes.
Ability to work on-site.
Preferred:
Knowledge of networking and web fundamentals (TCP/IP, DNS, HTTP, REST, etc.).
Experience working directly with the Linux kernel.
Experience with and knowledge of Bluetooth Low Energy (BLE) devices and protocols.
Experience working with bootloader and OTA.
Disclaimer:
The above statements are intended to describe the general nature and level of work being performed by the people assigned to this job. They are not intended to be construed as an exhaustive list of all responsibilities, duties, and skills.