Embedded Software Lead
Role details
Job location
Tech stack
Job description
Our equipment software team is looking to hire a driven, motivated, embedded software lead engineer! This lead will supervise a team of system and embedded software engineers developing software on bare metal, embedded Linux as well as higher level interface software. You will work with other software engineers and other engineering subject areas to develop custom semiconductor testers from the ground up. We work in a challenging, goal-focused, multi-disciplined develop engineering environment. We develop and support software for a variety of equipment built by our design team. Be a part of our team!
What's Encouraged Daily:
Your daily work on our equipment software team would involve:
- Providing technical and soft skills mentoring to team members.
- Providing performance coaching and performance goal follow-ups with team members.
- Performing administrative tasks for team members.
- Embedded software development (bare metal, Linux development), hands-on hardware debug, providing feedback to schematic design, reviewing PCB layouts, prototyping circuits, debugging analog and digital hardware, testing, and documenting.
- System software development for back-end command and control framework, employing IOT protocols, collaborating with third party control devices, automating testing, and documenting.
- Coding primarily in C++, and Python under Linux for various microcontrollers and computing modules acting as the interface to in-house designed hardware. Other languages are used as needed.
- Working in cross-discipline design teams involving software, electrical, controls, and mechanical engineers.
- Collaborating globally with other team members.
- Crafting design and manufacturing documentation., * 50/50 people leader and technical contributor role
- Supervise 4-6 team members, providing mentorship and performance management
- Help the team meet design commitments
- Work closely with software, electrical, mechanical, and control engineers in the design, development, and support of next-generation memory testers
- Develop/Debug in C++ and Python
- Use of lab equipment for design bring-up, debug, and testing
- Communication - written, spoken, creating technical documents in English
- As vital attend occasional off-hour collaboration meetings with portions of the distributed team
Requirements
- Degree in Electrical Engineering, Computer Engineering, Computer Science, or equivalent
- 5+ years of technical experience in a similar design role
- Software
- Proficiency in C++ (low-level and OO concepts)
- Familiarity with Linux and GNU tool chain
- Familiar with advanced OS concepts
- Familiar with concurrency concepts
- Inter-process communication experience
- Network configuration and debug experience
- Hardware
- Desire to work in a hands-on lab environment, curiosity of how things function
- Familiarity with schematics, and PCB layout
- Experience with lab equipment - power supplies, oscilloscopes, DMMs, SMUs
- Knowledge of intermediate electrical engineering concepts, * 3+ years supervisory experience
- Project leadership experience
- Experience with using containers in development and deployment
- Experience with traceable calibration standards
- Software build tool familiarity
- System design experience (HW/SW)
- Familiarity with PLM software