The primary area of work is C++. Our projects all involve embedded software control of robotic and other motion related hardware. The following specific tasks will be performed during the project life cycle:
• Gather requirements, write design specification and have spec reviewed in Peer Design Review
• Interact with Mechanical and Electrical engineers and understand system
• Implement the design with C++ programming
• Get code reviewed by Peer Design Review
• Unit testing over software emulation
• Unit testing on hardware
• Integrate software component to overall system
• Work with rest of team in debugging system integration problems
• Write release notes for software developed
• Weekly status report to project lead
BS Degree in Software Engineering Computer Science, or related field, or relevant experience in embedded programming. Excellent written and verbal communication skills. Previous experience in working with a small team of 6 – 12 engineers. Working knowledge on C++ Programming, embedded RTOS, Atollic or similar Eclipse based IDE, microcontrollers and peripherals like SPI, ADC, I2C, etc. Working knowledge of experience in UML based state-machine design and coding, programming multi-threading in Java/C++, software in instrumentation or equipment control, robotics and motion control related software.
Experience in some of the following areas are desired: NutTx type of RTOS, microcontroller with embedded RTOS, file systems, programming for the Microsoft .NET compact framework, programming devices based on Windows CE, experience in any of ISA/PCI/UCB/CAN bus based device programming, TCP/IP based network programming, C# based rich GUI development.
Experience with motion control and robotics
The ideal candidate must be a self-starter, a motivated and quick learner, proactive in problem solving, requires minimal supervision and enjoys working with hardware.
This position may require travel up to 15% to support our existing customer within the US and/or International.