Job Id: 1034
Firmware Engineer Position
Use your strengths in embedded programming in many of new and existing optical metrology instruments. The successful candidates will have a keen mathematical aptitude, a history of developing optimized control and analysis algorithms, and a proven record writing creative bulletproof code. Experience with optics or image processing is a big plus but is not essential. This position reports to a senior software engineer, but requires a high degree of self-motivation as well as the ability to work in multidisciplinary teams.
- Minimum of five-years of firmware development experience using compiled C code on Microchip PIC Microcontrollers using MPLab IDEs.
- Expertise utilizing direct memory access (DMA), hardware interrupt routines, and function pointer programming skills.
- Experience programming CANbus, UART, SPI, I2C, etc communications.
- Hands on experience with programming some of the following: motion controllers, LCD displays, DACs, A/Ds, I/O controls, PWM controls, PID loops
- Experience in a full cycle of instrumentation development.
- Experience in programming computer device interfaces such as general I/O, serial communications, CANbus, Ethernet card, USB, FireWire etc.
- Experience with Microsoft .Net programming is a plus.
- FPGA programming is a plus.
- Bachelor or higher degree in computer science or a relevant engineering or science degree
- Experience or knowledge of optics, photonics, or image processing is preferred.
- Must be enthusiastic, self-motivated, and eager to learn.
- Good verbal and written communication skills are essential.
- US Citizenship or permanent residency required.
- Write firmware for new and existing instrumentation, mostly on Microchip PIC devices.
- Collaborate with Electronic Engineering in the concept and design phases for new control circuitry.
- Manage software development projects.
- Participate in engineering consulting projects.
- General maintenance, support, and improvement of existing product application code.
- Writing technical documentation such as user manuals and interface documents.
- Provide technical support to customers and projects on software related issues.
Please click the green APPLY button below and include your resume.