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
*Required