Responsibilities for a typical software / firmware engineer may include many of the following :
- Work with customers and project lead to refine requirements
- Assist with system architecture and high-level hardware design
- Develop software, embedded software and firmware per requirements on a variety of platforms, from embedded systems, to Microsoft Windows, to Linux
- Assist with hardware bring-up
- Integrate software / firmware with customer’s hardware platform(s)
- Produce design release packages for delivery to customers, including external documentation of source code and protocol specifications
- As required, meet with customer(s) to discuss project status and to resolve problems
The following is a list of skills and experiences that we find attractive in candidates.
BS in Computer Science, Computer Engineering, Electrical Engineering, or related engineering discipline, MS degree preferredMinimum 7 years software / firmware development experienceMust be proficient in C / C++Experience with hardware / software integration in embedded systemsThorough understanding of networking protocols and techniquesHands-on experience with logic analyzers, oscilloscopes, etcStrong written and oral communications skillsExcellent troubleshooting / diagnostic capabilityExperience with and discipline in using revision control systemsBecause the skill sets needed for each project vary, we expect all candidates to be able to learn new skills and adapt to quickly-changing technology. If you have experience across a number of these technologies, we want to talk with you :
Processors
TI MSP430 microprocessorsMicrochip PIC microprocessorsFreescale / Motorola Coldfire and PowerPC microprocessorsARM 7 / 9 microprocessorsIntel x86 microprocessorsTI Power-efficient and high-performance DSPsOperating Systems / Languages
WindowsVisual Studio 6.0 through 2013 (both MFC and .Net)MobileLinuxJava, Perl, CGI, PHP, XMLMySQL and PostgreSQL database applicationsWeb-based GUIsDevice driversEclipse