We are seeking a highly experienced Staff Engineer (Software) to join our Solutions Engineering team, specializing in advanced embedded software development for FPGA-based solutions. This role focuses on designing and optimizing complex software systems for industrial and automotive applications, including industrial networking, motor control, IO aggregation, and protocol conversion, with expertise in advanced protocols such as video controller protocols (e.g., HDMI, DisplayPort, MIPI), system bus (e.g., AXI, AMBA), PCIe, USB, and Ethernet. The ideal candidate will lead multi-FPGA software system designs, define software architectures, develop execution plans, and participate in turnkey projects while interfacing effectively with customers to align solutions with their needs. Responsibilities include rigorous system integration, validation, and software testing to ensure robust, power-efficient, and user-friendly embedded solutions. As a Staff Engineer, you will mentor junior engineers, and drive innovation in FPGA-based systems.
Key Responsibilities:
Software Integration: Lead the software integration for multi-IP systems, optimizing for power, performance, and resource utilization using C/C++, Python, or other languages, with a focus on advanced protocols (HDMI, DisplayPort, MIPI, PCIe, USB, Ethernet).
Driver and Firmware Development: Develop high-performance and efficient drivers, firmware, and middleware for Industrial/Automotive applications such as motor control, industrial networking, system diagnostics.
System Architecture Definition: Define software architectures for FPGA-based solutions, ensuring compatibility with customer requirements and industry standards for video, networking, and IO applications.
Execution Planning: Develop detailed execution plans for software development, including timelines, resource allocation, and risk mitigation strategies for turnkey projects.
System Integration: Collaborate with hardware teams to integrate software designs with RISC-V stacks and IPs, ensuring seamless HW/SW co-design across complex protocols.
System Validation & Testing: Design and implement comprehensive validation and testing strategies to ensure system robustness (e.g., fault tolerance), power efficiency, usability (e.g., customer adaptability), and performance (e.g., low latency, high bandwidth).
Customer Interfacing: Engage directly with customers to understand requirements, present technical proposals, and ensure solutions meet their needs for turnkey project delivery.
Mentorship: Guide junior and mid-level engineers in software design, advanced protocol implementation, and development tool best practices.
Innovation & Standards: Drive innovative software architectures and propose departmental standards for software development, validation, and testing to improve efficiency and solution quality.
Business Impact
Enhance the reliability and scalability of FPGA-based software solutions, enabling high-performance operation in critical industrial/automotive applications.
Strengthen market competitiveness by delivering innovative, high-performing, reusable software designs that reduce development costs and accelerate time-to-market.
Drive customer satisfaction and adoption through tailored, well-tested FPGA systems that prioritize usability, performance, and alignment with customer needs.
Required Skillsets
Technical Expertise: Advanced proficiency in embedded software design (C/C++, Python), with experience developing applications and drivers for RTOS based solutions.
Tools: Mastery of software development tools and environments (e.g., GCC, LLVM, IDEs like Eclipse or VS Code, debuggers like GDB).
System Integration: Extensive experience integrating software designs with RISC-V hardware components across complex protocols for embedded systems.
System Validation & Testing: Expertise in testing for robustness, power efficiency, usability, and performance, including validation of advanced protocol compliance using unit tests, integration tests, and automated frameworks.
System Architecture & Planning: Proven ability to define software architectures and develop execution plans for turnkey FPGA projects.
Customer Interfacing: Strong interpersonal skills to engage with customers, translate requirements into technical solutions, and present proposals effectively.
Optimization: Demonstrated ability to optimize software for memory, power, and performance in complex multi-FPGA designs.
Mentorship & Leadership: Ability to mentor team members and lead technical discussions to drive project success.
Problem-Solving: Track record of resolving complex software design, integration, and validation challenges.
Communication & Influence Expectations
Leadership Communication: Lead software design discussions, presenting technical proposals, validation results, and innovative solutions to peers, leadership, and customers in a clear, compelling manner.
Customer Engagement: Interface directly with customers to gather requirements, provide technical updates, and ensure alignment throughout turnkey project lifecycles.
Influence: Shape departmental software design direction and standards, advocating for reusable modules, optimized validation workflows, and customer-focused architectures.
Collaboration: Communicate effectively with hardware engineers, project managers, and other teams to align software designs with system-level goals and customer expectations.
Documentation & Advocacy: Produce detailed design, validation, and execution plan documentation, championing best practices to enhance team efficiency and solution quality.
Qualifications
Education: Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Computer Engineering, or a related field; PhD is a plus.
Experience: 12–15 years of software engineering experience, with at least 5 years focused on embedded software development for FPGAs and expertise in one or more advanced protocols (HDMI, DisplayPort, AXI, PCIe, USB, Ethernet).
Preferred: Experience with industrial applications (e.g., EtherCAT, Profinet, Modbus) and RISC-V core integration; prior involvement in turnkey FPGA projects.
Certifications: Software development certifications (e.g., embedded systems or real-time OS) or protocol-specific certifications (e.g., PCIe, USB) are a plus.
Software Powered by iCIMS
www.icims.com