Job Description
Design, code, integrate, test, support and enhance software solutions for embedded microprocessors used in wired and wireless communication devices, switching power supplies, sensors, and gateways
Clearly communicate design constraints and trade-offs to other team members and management, playing an advisory role as a subject matter expert to ensure that optimal design decisions are made
Perform system integration and validation testing activities, including verification of interoperability within overall solution
Assist with evaluating existing and emerging technologies to identify solutions that will reliably operate in a wide range of installed environments
Architecting, developing, integrating and delivering embedded and PC software in a regulated product development process.
Participating in all project lifecycle phases – from design and code development through unit testing, documentation, and release.
Working with a broad team to translate customer requirements into the best possible solution within resource, time, and technical constraints.
Other duties may be assigned
Minimum Qualifications
3-5 years of related work experience
Experience in C programming
Must have experience in creating/debugging C code drivers and legacy codes for
8bit, 16bit, 32bit micro-controllers and DSPs (Microchip, TI, ST, Freescale, etc)
Must have experience with some communication protocols such as I2C, SPI, RS-485, Ethernet, etc.
Must have experience interacting with software debugging in an embedded and electronics environment
Experience in making state machines and flow charts
Comfortable using oscilloscopes, multi-meters, power supplies, etc.
Capable of reading hardware schematics and data sheets
Prefer familiarity with software development life cycle such as Agile, Scrum, CMMI
Familiarity with version control systems (SVN), and release methodologies
Familiarity with MISRA or other coding standards is a plus
Disciplined and detail-oriented; experience delivering robust, readable code
Experience in PC Application programming such as Python, .NET, VBA is a plus
Excellent communication skills, both verbal and written
Excellent analytical and problem-solving skills
Experience in recreating sporadic types of issues/failures using various debugging techniques
Experience working in a fast paced, growing organization with the ability to balance multiple priorities and objectives simultaneously