Job description: Required skills: B.E/B.Tech/B.S or M.E/MS in CS, EE or CE with 3+ years of software development experience Background in EDA tools preferred Demonstrated proficiency in C++ and large scale design pattern style development. Demonstrated proficiency in scripting using Python and/or Perl Excellent problem-solving skills and willingness to think outside the box Experience with production software quality assurance practices, methodologies, and procedures KEY RESPONSIBILITIES: Work with architecture specialists to improve future products Apply a data minded approach to target optimization efforts Stay informed of software and hardware trends and innovations, especially pertaining to algorithms and architecture Design and develop new groundbreaking technologies Debugging/fix existing issues and research alternative, more efficient ways to accomplish the same work Develop technical relationships with peers and partners PREFERRED EXPERIENCE: Strong object-oriented programming background, C/C++ preferred Algorithms, Python Matlab Linear programming ML FPGA design flows, Verilog, HLS.
Company Description An AI-enhanced security processor company redefining the control and management of every digital system. The company was founded in 2017, and currently has 100+ employees. developing great technology takes more than talent: it takes amazing people who understand collaboration, respect each other, and go the extra mile to achieve exceptional results. It takes people who have the passion and desire to disrupt the status quo, deliver innovation, and change the world. If you have this type of passion, we invite you to apply for this job. Job Description We are seeking an experienced Principal Firmware Engineer to lead the design, development, and optimization of embedded systems. The ideal candidate will have a deep understanding of Secure Boot, RTOS, Linux kernel, device drivers, peripheral interfaces, and bus protocols, as well as open-source software development. This role requires strong problem-solving skills to diagnose and resolve complex hardware and software issues while ensuring security, performance, and scalability of embedded solutions. Key Responsibilities: Architect, develop, and optimize embedded software solutions for secure and high-performance systems. Implement and maintain Secure Boot, and other security measures for embedded platforms. Work on RTOS environment and Linux kernel driver development, including optimizing device drivers and upstreaming. Develop and integrate software for various peripheral interfaces (SPI, I2C, UART, USB, SGPIO, eSPI, etc.) and bus protocols (PCIe, Ethernet, etc.). Diagnose and resolve complex hardware and software issues, leveraging debugging tools and methodologies. Conduct performance analysis and tuning of embedded software systems to ensure efficiency and reliability. Define and implement scalable and maintainable embedded software architectures. Engage in open-source development, contributing to Linux or similar embedded software projects. Work closely with hardware engineers, security experts, and system architects to develop robust embedded solutions. Mentor junior engineers and contribute to best practices for embedded software development. Qualifications Bachelor's or Master's degree in Computer Science, Electrical Engineering, or related field. 20+ years of experience in embedded software development, with a strong background in C/C++. Expertise in Root of Trust (RoT), Secure Boot, and cryptographic security principles. Extensive experience with RTOS, Linux kernel, and device driver development. Strong debugging skills using JTAG, GDB, and other embedded debugging tools. Experience in performance profiling and optimization for embedded systems. Proven ability to diagnose hardware and software interaction issues. Experience in open-source Linux development or similar community-driven software projects. Strong understanding of system-level software architecture and real-time performance constraints. Hands-on experience with peripheral interfaces (SPI, I2C, UART, USB, etc.) and bus protocols (PCIe, Ethernet, etc.) driver development. Experience in Baseboard Management Controller (BMC) is a plus. Proven ability to debug low-level PCIe issues using analyzers is a plus. In-depth knowledge of PCIe protocol, including, root port, SRIOV Familiarity with machine learning acceleration on embedded platforms. Experience with hardware bring-up and board support packages (BSPs). Knowledge of Yocto, Buildroot, and other Linux build systems
Extensive C Programming Expertise: Deep proficiency in C for embedded systems development, including low-level programming and memory management. Linux Kernel Development: Expert-level knowledge of Linux kernel internals, device drivers, system calls, and kernel-space programming. Hardware Bring-up: Proven experience in bringing up new embedded hardware platforms, including debugging and validating custom peripherals. Networking Protocols: Strong understanding of networking concepts and protocols (TCP/IP, Ethernet, Wi-Fi, etc.) and their implementation in embedded Linux. Embedded Systems Architecture: Experience with various embedded architectures (e.g., x86, ARM, MIPS) and related development tools. Leadership & Management: Demonstrated ability to lead and manage engineering teams, including project planning, resource allocation, and performance management.
Qualification and Mandatory Skillset Requirements: Minimum BE/BS degree (Masters preferred) in Electrical/Electronic Engineering/VLSI with 5 to 10 years of practical experience Strong fundamentals in digital ASIC design Expertise in ARM v8 and v9 specifications and their impact to SoC system architecture Multiple project experience with ARM based ecosystem components (A-series ARM Cores, SMMU, GIC, Coresight, NIC and other complex bus interconnects) Familiarity with AMBA bus protocols, system memory hierarchy, system debug infrastructure and multi-core SOC designs Exposure to ARM platform architecture specifications Strong experience with Verilog, SystemVerilog, DC/DC-T based synthesis, constraints development and RTL level checks. Low power methodology knowledge will be a plus. Understanding of major SOC interfaces like PCIE, DRAM, Flash, I2C, SSP, UART. Capable of working with multiple IP vendors and other teams Excellent communication and leadership quality to lead design team Roles And Responsibilities Contribute to SoC architecture for a multi-core ARM SOC Define SoC micro architecture and design Design and implementation of CPUSS subsystem Working closely with the emulation and firmware teams to debug silicon functional issues. Build SoC around key ARM subsystem components and other IPs including various interfaces Design of clock-reset architecture and RTL implementation Integration of all IPs into SoC Work with verification team for complete SoC verification, review test plans RTL Simulation and debug Synthesis, Lint, CDC checks Assist in emulation, FPGA, prototyping efforts