Engineer, Firmware
Role details
Job location
Tech stack
Job description
- Develop and maintain embedded firmware modules for processor-based systems and ASIC/SoC platforms.
- Assist in implementation, integration, and debugging of firmware features under guidance from senior engineers.
- Support development and validation of drivers and interfaces for embedded peripherals such as I²C, SPI, UART, GPIO, DMA, and related hardware modules.
- Participate in RTOS-based firmware development activities including task creation, scheduling, and debugging.
- Support board bring-up activities and system-level integration and validation.
- Collaborate with hardware and software teams to integrate firmware components into the overall system architecture.
- Assist in debugging firmware and hardware interaction issues.
- Write unit tests and participate in system-level testing and validation activities.
- Use debugging and lab tools such as JTAG, oscilloscopes, logic analyzers, and related tools for troubleshooting.
- Participate in code reviews and follow software development best practices.
- Document firmware designs, implementation details, and test results.
- Work closely with cross-functional teams including ASIC, hardware, software, and systems engineering teams.
Requirements
Do you have experience in Version control systems?, Do you have a Master's degree?, Join our firmware team to develop and support embedded software for next-generation Mixed signal ASIC/SoC for Optical circuit switching platform. This role is ideal for recent graduates or engineers with up to one year of experience who want hands-on exposure to embedded systems, firmware development, RTOS environments, and hardware bring-up. You will work closely with experienced engineers across hardware, software, and system teams to develop production-quality firmware and gain practical experience with embedded platforms., * Bachelor's, Master's, or PhD degree in Computer Science, Computer Engineering, Electrical Engineering, or related field.
- 0-1 year of experience in embedded systems or firmware development (internships, research work, and academic projects are acceptable).
- Basic understanding of C/C++ programming for embedded systems.
- Understanding of computer architecture concepts including memory systems, interrupts, and processor fundamentals.
- Basic understanding of embedded systems and microcontroller-based design.
- Familiarity with communication protocols such as I²C, SPI, UART, GPIO, Ethernet or similar interfaces.
- Familiarity with software development tools and version control systems such as Git.
- Strong problem-solving and analytical skills.
- Good written and verbal communication skills.
- Ability to learn quickly and work effectively in a collaborative team environment.
- Internship, academic research, or project experience in embedded systems or firmware development.
- Exposure in IC design, processor design or optical system design.
- Exposure to RTOS environments such as FreeRTOS, Zephyr, ThreadX, or similar systems.
- Basic scripting experience with Python or similar programming languages.
- Familiarity with Linux-based development environments.
- Exposure to debugging tools such as oscilloscopes, logic analyzers, or JTAG-based debugging.
- Understanding of software testing concepts including unit testing and debugging methodologies.
- Familiarity with embedded software development workflows and build systems.
Benefits & conditions
Pulled from the full job description
- 401(k)
- Paid time off
- Vision insurance
- 401(k) 3% Match
- Health savings account
- Dental insurance
- Flexible spending account, Base pay is scaled depending on experience + Performance based Quarterly Bonus + Equity. Benefits include but not limited to: Health, dental and vision FSA, HSA PTO plus 14 paid company holidays 401K with 3% contribution Stock Options Life insurance and disability