POSITION SUMMARY: We are looking for a versatile embedded software engineer to join our team. As an early member of the team, you will help bootstrap our embedded development, prototype new ideas, and convert prototypes to robust implementations. You must have extensive experience with C and C++, particularly with bare-metal firmware development.
RESPONSIBILITIES:
· Designing and implementing high quality software end to end from high-level specifications
· Developing software and algorithms for constrained bare-metal embedded systems
· Interface with hardware design, development, and debug
· Debugging issues with software/hardware interactions
· Quickly prototyping new ideas and strategies
· Code review, testing, and applying modern software engineering best practices to embedded development
· Effective verbal and written communication skills
· Able to work closely and effectively with team members
· Can work independently or with minimal supervision
· Ability to think outside the box and strong problem-solving/troubleshooting skills
REQUIRED SKILLS:
- Familiarity with common embedded communication protocols: I2C, SPI, etc...
- Some familiarity with signal processing
- Ability to read vendor datasheets and basic schematics
- C++
- C
DESIRED SKILLS:
· Experience with PCB design
· Python proficiency for quick prototyping/scripting
· Basic electronics lab proficiency (e.g. probing signals with scope)
EDUCATION:
Bachelor’s Degree
Masters Preferred
Job Type: Contract
Application Question(s):
- All qualified applicants will be asked to complete a coding challenge. Are you willing to meet this requirement?
Experience:
- Embedded software: 5 years (Required)
Ability to Commute:
Work Location: Hybrid remote in New York, NY