Title: Member of the Technical Staff (Embedded Software Engineer)

Job Duties:

  • Develop and test software written in C and C++ to initialize and configure the semiconductor hardware devices in the CS-1 system, using appropriate data structures and algorithms, which runs on the Linux operating system.
  • Analyze software written in Python scripting language and implement equivalent software in C++.
  • Create and modify software build scripts using GNU Make.
  • 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.
  • Architect, design, and test Linux 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.
  • Use debuggers, JTAG tools, and unit test frameworks
  • Analyze and optimize I/O operations in order to support a very large number of sensors within the required polling interval.
  • Create low-level diagnostic tools and tests 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 Computer Science, Electrical Engineering, Computer Engineering, or a related field and 2 years of experience as Software Development Engineer, Software Engineer, Firmware Engineer, Embedded Software Engineer, Member of the Technical Staff (Embedded Software Engineer), or a related occupation required.

The required work experience must include 2 years of experience with the following:

  • Software design and development using C and C++;
  • Automation test development using Python scripting language;
  • Programming embedded processors in a Real-Time environment;
  • Debugging across software and hardware boundaries using gdb;
  • Development of software running in multithreaded applications;
  • Unit test development using CMock, Unity, and GTest; and
  • GNU Make.

Additional Information:

Employer’s name: Cerebras Systems Inc.
Job site : 1237 E Arques Avenue, Sunnyvale, CA 94085
Telecommuting permitted.
If you are interested in applying for this position, please mail resume with Job# 124 to HR at Cerebras Systems Inc., 1237 E Arques Avenue, Sunnyvale, CA 94085