Embedded Software Development Engineer: Mid-Level
Responsibilities
- Design, develop, test, and maintain embedded software for optical telecommunications equipment
- Develop software in C/C++ for embedded Linux SoC systems and microprocessors
- Collaborate closely with hardware design engineers to support rapid embedded software development:
- Provide software input during schematic design reviews
- Assist with board bring-up, debugging, and validation
- Support the production team with software testing and production workflows
- Provide customer technical support, including bug fixes and implementation of new software features
- Recreate customer reported issues and test scenarios using optical laboratory test equipment
- Participate in project planning, task estimation, and schedule development
- Contribute to system-level design and embedded software architecture (preferred)
Requirements
- Bachelor’s degree in Electrical Engineering, Computer Engineering, Computer Science, or equivalent experience
- Strong proficiency in embedded C; working knowledge of C++ is a plus
- At least three (3) to (5) years of relevant professional experience in embedded software development
- Experience developing software for embedded Linux systems
- Familiarity with ARM and/or MIPS processor architectures is preferred
- Ability to debug software at the Linux and embedded system level
- Understanding of electronic hardware fundamentals
- Ability to read and interpret schematics and datasheets
- Experience using laboratory test equipment, such as multimeters, oscilloscopes, logic analyzers, and JTAG tools
- Experience with SDK design, gRPC, protobuf, or similar communication frameworks is a plus
- Familiarity with scripting languages, such as Python, and Linux command line tools, including bash scripting
- Strong written and verbal communication skills, including technical documentation
- Self-motivated individual capable of working independently and in small teams
- U.S. Citizenship required for ALL positions