Principal Software Engineer - memory constrained embedded C/C++ Firmware development
Marvell Voir toutes les offres
- Ottawa, ON
- 145.800-194.400 $ par an
- Permanent
- Temps-plein
- Lead the Architecture, Design, Development, and Testing of embedded C firmware for controlling our extremely complicated DSP HW
- Serve as the technical lead on a product, guiding SW team members (2-8 developers) through the development process
- Drive firmware development for DSP control blocks including RX/TX signal processing, FEC, PLL/FLL, reference generation, and thermal monitoring
- Lead technical reviews of firmware architecture, API design, and system integration approaches
- Translate complex specifications from standards bodies (MSA/OIF/CMIS) or directly from customers into easy-to-digest requirements, and clear sequence diagrams to aid in development
- Take lead on difficult to debug issues, drive to root causes with HW/Systems teams, and follow up with test/validation/customer support teams
- Work with the cross-functional team to plan SW milestones, develop in sprints, closing tickets, and roll out features for the product
- Coordinate with Marketing, AE, Test, Validation, SW_QA, and Hardware teams to align on deliverables and schedules
- Provide regular status updates on milestones, scope, dependencies, and blockers
- Manage Agile sprint planning and backlog prioritization in collaboration with stakeholders
- Lead technical discussions with tier-1 customers on feature requirements, API specifications, and implementation
- Support customer bring-up activities and resolve field issues
- Work with AE teams to understand customer expectations and deliver critical features
- Handle customer-specific feature development such as FEC burst statistics, VDM telemetry, and CMIS compliance
- Mentor engineers on embedded firmware development, debugging techniques, and best practices
- Conduct code reviews and provide technical guidance to ensure code quality and maintainability
- Foster collaboration across geographically distributed teams
- BS/MS degree in Computer Science, Electrical/Software Engineering, or related technical field(s)
- 10+ years of experience in memory constrained embedded C/C++ FW development
- SW Team Lead or Technical Lead experience on embedded projects
- Architecture design & development, code reviews & testing, through to customer volume production
- Understanding of embedded SoC, micro-controller architecture (RISC-V 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
- 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
- Experience with bare-metal, RTOS, device driver, Linux kernel, etc.
- Familiarity with advanced compiler options and details (clang/gcc preferred)
- Proficient in C and Python, with knowledge of git, Linux, makefiles, gdb, IDEs, bash
- Familiarity with digital verification test flows, FPGA emulation, hardware languages such as Verilog
- Familiarity with lab equipment such as oscilloscopes, supplies, PNAs, ONTs
- Understanding of Ethernet networking from the OSI model, with emphasis on the PHY up to the data link level
- Familiarity with forward error correction, PCS framing, PMA/PMD, PRBS, and other PHY traffic schemes
- Understanding of signal processing: histograms, BER, SNR, sampling phase, Shannon limit, impulse & frequency response, FFT, etc.