What are the responsibilities and job description for the Junior Embedded Firmware Engineer position at New York Technology Partners?
Embedded Software Engineer (Baremetal/FreeRTOS/FPGA/Control Loops, MATLAB)
- Job Title: Embedded Software Engineer
- Location: Andover, MA (Fully Onsite)
- Experience Level: 2 years professional software development
Required Skills & Qualifications
- 2 years of professional software development experience with strong emphasis on C/C on microcontrollers like K60, STM32, FPGA (Microblazes or similar soft cores)
- Experience in embedded systems, ideally within medical devices
- Proven experience developing, debugging, and tuning motor control with closed control loops using MATLAB
- Proven experience working with Microblaze or similar soft-cores on Xilinx FPGAs
- Experience working with and troubleshooting multiple hardware interfaces: PCIe, CAN, I2C, I2S, UART, SPI, USB, etc.
- Solid understanding of CI/CD pipelines and tools such as Jenkins or GitLab CI
- Ability to write unit and component level tests for C/C applications (manual and automated) with frameworks like GoogleTest, Unity, etc.
- Experience with Lua, Python, or Shell scripting for automation, testing, and tooling
- Strong problem-solving abilities and comfort working in a fast-paced, dynamic environment
- Excellent communication skills, including experience collaborating with external contractors and reviewing technical deliverables
Role Overview
Develop hands-on C/C software and integrate work within Smith & Nephew's Agile Scrum teams. Support and augment an internal team of 10 software engineers. Deliver against sprint commitments and program increment objectives.
Technical Core & Responsibilities
- Develop hands-on C/C software on microcontrollers and FPGAs
- Debug and tune motor control with closed control loops using MATLAB
- Work with Microblaze or similar soft-cores on Xilinx FPGAs
- Troubleshoot multiple hardware interfaces (PCIe, CAN, I2C, I2S, UART, SPI, USB)
- Implement CI/CD pipelines using Jenkins or GitLab CI
- Write unit and component level tests using GoogleTest, Unity, etc.
- Use Lua, Python, or Shell scripting for automation and tooling
Collaborate with external contractors and review technical deliverables