Cerebras Systems Inc. has multiple openings for Member of the Technical Staff II (Embedded Software Engineer)

Job Duties:

    • Design, develop and test software written in C and C++ to initialize and configure the semiconductor hardware devices using appropriate data structures and algorithms which runs on the Linux operating system.
    • Design and implement Application Programming Interfaces (APIs) in C, C++ for communication between software components in the Cerebras system software stack.
    • Create and modify software build scripts using GNU Make.
    • Design, develop and test board support package (BSP) and software development kit (SDK) for ARM-based system-on-chip which is based on open-source software including U-Boot bootloader, Linux kernel, buildroot distribution builder.
    • Design, develop and test board support package (BSP) and custom application software for ARM-based microcontrollers which is based on open-source software such as Zephyr RTOS kernel, DAPLink and STM32 software development kit.
    • Architect, design, develop and test Linux and Zephyr device drivers, both kernel and user-space, for device protocols such as PCIe, USB, I2C, and SPI. These drivers are used in software to monitor sensors and control system components.
    • Develop and test monitoring and management software to regulate internal server conditions, such as power supplies and cooling system, using PID control loop.
    • Analyze and optimize I/O operations in order to support a very large number of sensors within the required polling interval.
    • Develop large scale system management software and optimize device drivers and daemons using tools such as GDB, Python and Bash scripts.
    • Implement unit and system tests for the Cerebras software stack in C, C++, Python and Bash.
    • Create low-level diagnostic tools and tests including firmware written in Verilog/System Verilog to assist system hardware engineers with printed circuit board (PCB) debug, analysis, and design validation.
    • Interact with system design engineers to influence hardware features to improve reliability, maintainability, performance, and ease of programming.
    • Interact with product marketing and user experience specialists to define management interface, including configuration, status, and event logging.
    • Architect, design, and test system management interface software which is used to configure and monitor the system through a remote management station over a network.

Minimum Requirements:

Master’s degree or foreign equivalent degree in Electrical and Computer Engineering, Computer Science, Embedded Software Engineering, or a related field and 5 months of work experience as Embedded System Intern, Core Development Intern, Graduate Teaching Research Specialist, Member of the Technical Staff II (Embedded Software Engineer), Software Engineer, or a related occupation required. Employer accepts full-time or equivalent part-time experience (including academic research and teaching experience) gained before, after or during graduate studies.

Required Skills:

    • ARM-based embedded Linux development;
    • C, C++ programming languages;
    • ARM assembly language;
    • Scripting languages: GNU Make and Python;
    • Software debugging tool: GDB;
    • Communication protocols: USB, I2C, GPIO;
    • Device driver development for sensors that read temperature and humidity;
    • Verilog/System Verilog programming language for hardware design; and
    • Use of electronics lab equipment: oscilloscopes, power supply units, and logic analyzers.

Additional Information:

Employer’s name: Cerebras Systems Inc.
Job site : 1237 E Arques Avenue, Sunnyvale, CA 94085
Telecommuting permitted.
Salary Range: $185,000.00 per year to $210,000.00 per year

If you are interested in applying for this position, please apply online on this web page or mail resume to HR at Cerebras Systems Inc., 1237 E Arques Avenue, Sunnyvale, CA 94085. Please reference Job # 135 on resume or cover letter.

Apply for this Job