Job Title: Embedded Developer (C++)
Location: Lake Forest, CA (Onsite- 5 days in a week onsite)
Duration: 12+ Months
Job Description:
5+ years of experience in embedded software/firmware development.
Ability to organize and drive improvement efforts and establish standardized processes;
Strong experience in C and C++ for embedded systems.
Strong knowledge and experience - RTOS (ThreadX, FreeRTOS, or similar)
Would be a plus experience with scripting languages (e.g., Python) for automation and testing;
Strong Experience with Embedded SW development on microcontrollers (Cortex M or PowerPC cores) based system on chips from ST Micro, NXP, Renesas or similar silicon vendors.
Understanding of embedded systems architecture, operating system fundamentals, and real-time software development and testing;
Able to understand PCBA schematics to aid software development and troubleshoot problems by probing signals on oscilloscopes and logic analyzers
Experience in developing software to directly interface with HW electromechanical or electrooptical systems: motors, valves, position encoders, solenoids, galvos, analog sensors (pressure, temperature, voltage, current etc.)
Experience with interfacing with communications buses: CAN, Ethernet, SPI, I2C
Experience using lab equipment: Power supplies, oscilloscopes, logic analyzers, network sniffers
Familiarity with Windows as a software development environment
Experience with multiprocessing/multithreading in an RTOS;
Strong knowledge of algorithms, OOP principles;
Good analytical skills, debugging and troubleshooting;
Strong communication skills for technical and non-technical audiences;
Well self-organized personality;
Ability to work in a fast-paced environment and meet tight deadlines.
Job Responsibilities:
Responsible for implementing, documenting and testing bug fixes or new features for hard real time and safety critical surgical subsystem(s)
May act as a co-software lead and work under the direction of a software lead to manage subsystems, use strategic planning, and mitigate technical and/or schedule risk.