We have an opening for Senior Principal Engineer
Location - Bengaluru, Karnataka, IN
(Position involves working with India-based team)
Full time permanent position
What You Can Expect
The core responsibilities for the SW team include:
Embedded FW that runs on our RISC-V-based multi-core MCU, which controls our proprietary DSP data path
C SDK provided to customers for interfacing and controlling our product
Python-based GUI for in-field debug, status, and control
Build, test, and automated regression infrastructure for the above
However the SW team is a key enabler for bringing a product to production, and the roll of a Principal Engineer in our team is to ensure the overall success of that product. For each individual, the role can be some combination of project planning and technical development. This is a highly visible position within the larger organization, you will be a key player in the bringup and development of the product through its entire lifetime.
In this position you will be:
The technical or project lead on a product, driving the whole SW team dedicated to that project (2-8 other developers) through the development process from collecting requirements to volume production
Responsible for the overall Architecture, Design, Development, and Testing of embedded C firmware for controlling our extremely complicated DSP HW
Taking lead on difficult to debug issues, drive to root causes with HW/Systems teams, and follow up with test/validation/customer support teams to make sure the issue is resolved
Working with the cross-functional team to plan SW milestones, develop in sprints, closing tickets, work with multiple test disciplines, squash all the bugs, and roll out features for the product as a whole
Distilling complex systems specifications from standards bodies (MSA/OIF/CMIS) or directly from the customer into easy-to-digest internal documentation, definition of requirements, and clear sequence diagrams to aid in development.
Traveling to offices worldwide for product development and chip bring-up (~3weeks/yr, California, Italy, Vietnam)
Some possible tasks will be:
Mentoring a Jr engineer while working on a difficult HW/SW debug together
Developing the use cases, architecture, and system diagrams for a complicated new feature, and integrating that feature into the existing FW & Customer SDK to be as seamless as possible
Convert computationally heavy floating point matlab algorithms into fixed point firmware state machines, and coming up with simple ways to compare the two to guarantee functional correctness
Working with leads in other teams to develop a post-silicon system test plan for a brand new product
Using production FW against the DV simulation environment to root cause a complicated sequencing issue only seen in the field
Convincing a large group hardware designers to make changes in next generation products to improve field usability
What We're Looking For
Minimum Requirements:
Bachelors/Masters degree in CSE/ECE or related technical field(s)
15+ years of experience in memory constrained embedded C/C++ FW development
SW Team Lead or Technical Lead on embedded projects; project management & release planning, architecture design & development, code reviews & testing, through to customer volume production
Understanding of embedded SoC, micro-controller architecture (RISC-V architecture a plus), memory-mapped hardware interfaces, GPIOs, ISRs, etc.
Excellent verbal and written communication skills in English, and able to collaborate in a large cross functional organization
Excellent problem-solving and customer debug skills on real hardware in the lab
Experience with using revision control and defect tracking systems (git & Jira or similar)
Preferred but not required:Experience with SERDES, IM-DD/Coherent DSP, Ethernet/PCIe PHYs, and/or Optical Module SW
Experience with designing/developing/debugging software state machines, transitions, context saving, error handling
Experience with mixed-signal (analog+digital) control and monitoring, PID/feedback loop control, etc.
Experience with bare-metal, RTOS, device driver, Linux kernel, etc.
Familiarity with advanced compiler options and details (clanpreferred)
Proficient in C and Python, with knowledge of git, Linux, makefiles, gdb, IDEs, bash, etc.
Familiarity with digital verification test flows, FPGA emulation, hardware languages such as Verilog
Familiarity with lab equipment such as oscilloscopes, supplies, PNAs, ONTs, etc.
Understanding of networking from the OSI model, with emphasis on the PHY up to the data link level
Understanding of signal processing: histograms, BER, SNR, sampling phase, Shannon limit, impulse & frequency response, FFT, etc.
Must-haves
>Serdes Firmware development experience.
>Less Common Requirements
>DSP
Required Skills
>DSP with Serdes Firmware Development
>Preferred or Nice-to-have Skills
>DSP
Years of Experience: 15
Industry Experience: 15 years plus
Education Requirements: BTCH
What else would you like us to know that we haven't asked? Software experience in Firmware development of Serdes