Firmware/Embedded Software Engineer
Greenville, TX 75402
Specific Duties and Responsibilities:
Maintain and enhance firmware for existing product lines.
Take ownership of embedded system design cycle from requirements through launch and beyond.
Design, develop, code, test, and debug system firmware.
Integrate and validate new product designs.
Perform design/code reviews.
Interface with cross-functional team of engineers.
Support Tech Support team with intimate product knowledge.
Maintain a fun and innovative work environment.
Ability to write low level programming for Kernel device drivers.
Bachelor s degree in CS or EE, with a minimum of 5 years of experience developing embedded systems.
Strong understanding of computer architecture and embedded software development best practices, with significant experience in low level development and programming.
Strong knowledge of C programming language in an embedded environment.
Working knowledge of embedded protocols and interfaces, such as SPI, I2C, and UART.
Knowledge of Ethernet and USB at both the embedded and application level.
Product development with and without RTOS.
Device driver development for various peripherals.
Familiarity of various microcontroller/microprocessor architectures, such as ARM, PIC, MSP430, and so on.
Experience with oscilloscopes, logic analyzers, protocol analyzers, and in-circuit emulators and have the ability to troubleshoot and debug hardware, including board bring-up.
API design and implementation.
Scripting in Python or similar language.
Good written and verbal communication, interpersonal, facilitation, presentation, quantitative, analytical, organizational, and follow-up skills. Ability to effectively present technical concepts, ideas, and information in terms that both engineers and non-engineers can understand.
Excellent problem-solving skills. Highly technical, quickly grasping how things work.
Ability to meet deadlines on multiple projects as well as the ability to converse effectively with all levels of employees.
Exceptional team attitude.
Motivated by continuous learning and development.
Dedicated to delivering exceptional solutions.
Ability to work independently with minimal supervision, as well with a cross functional team.
Physical requirements include occasional lifting/carrying of 20 pounds; visual acuity, speech and hearing; hand and eye coordination and manual dexterity necessary to operate a computer keyboard and basic office equipment. Subject to sitting, standing, reaching, walking, twisting, and kneeling to perform the essential functions. Working conditions are primarily inside an office environment with limited exposure to traffic sites.
10+ years relevant design experience.
Key contributor to at least 5 embedded system product development cycles.
Experience in low-power, mixed-signal embedded development.
BLE firmware development and integration in a real-world application.
Test Driven Development in the embedded domain.
Knowledge of application development in a high-level language, such as C# .NET or Java, for testing.
Experience with embedded audio, using I2S.
Knowledge of Assembly language.
Mastery of C programming language in embedded environment, with knowledge of C++.
Working experience of OOD/OOP principles in C.
Ability to mentor and train other engineers.
Ability to professionally interface with customers.