Member of the Technical Staff (Software Engineer) job Los Altos California
Member of the Technical Staff (Software Engineer) job Los Altos California
My Spider Scam Awareness Contacting Us F. A. Q.
Job Seekers
Search Jobs
Browse Jobs
Post a Resume
Job Alerts
Search Resumes
Browse Resumes
Post a Job

Member of the Technical Staff (Software Engineer) Job

Employer Name: Cerebras Systems Inc. SpiderID: 8648959
Location: Los Altos, California Date Posted: 5/14/2019
Wage: Category: Computer Software/Programming
Job Code:

Job Description:
• Develop and test board support package (BSP) and software development kit (SDK) for ARM-based system-on-chip (SoC) which is based on open-source software including U-Boot bootloader, Linux kernel, buildroot distribution builder.
o Review the requirements for the subsystem containing the ARM-based system-on-chip, the board schematics, and the technical documents provided by the chip manufacturers.
o Configure the Linux kernel and the U-Boot bootloader to add support for the specific SoC and all external chips on the boards using device tree source (dts) files.
o Configure buildroot with the packages and options needed to meet the requirements for the root filesystem using the Kconfig system.
o Build SDK, bootloader, kernel, and root filesystem and deploy them to the target subsystem using a flash memory programmer or network file transfer such as TFTP. Test the entire BSP and debug problems using Lauterbach JTAG and/or gdb debuggers.
o Maintain the BSP throughout the life of the product by incorporating software updates and bug fixes and changing configurations whenever requirements change.

• 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.
o Compare the list of devices that need to be supported against the list of device drivers provided by the Linux kernel or a user-space library.
o For each device that is not supported, review technical documents provided by the chip manufacturer. Using the product requirements, determine the subset of device functionality that must be supported by a custom-made device driver.
o Design and implement new device drivers in C and add them to the Linux kernel or user-space library.
o Test and debug the new device drivers using tools such as kdb, Lauterbach JTAG, gdb, and “crash”.

• Analyze and optimize I/O operations in order to support a very large number of sensors within the required polling interval.
o Using an in depth understanding of Linux kernel interrupt behavior, USB drivers, and sensor device specifications, determine the theoretical maximum number of I/O operations that can be performed each second.
o Measure the actual rate of I/O operations and compare it against the theoretical maximum.
o Improve the actual rate of I/O operations by modifying the kernel or user-space device drivers, changing the way that operations are scheduled, and/or changing the way the application accesses and utilizes sensor values.

• Interact with system design engineers to influence hardware features to improve reliability, maintainability, performance, and ease of programming.
o Work with system design engineers, who are electrical or mechanical engineers, to understand the requirements and specifications of the system hardware and the trade-offs involved.
o Analyze system architecture, implementation, and specific devices used and identify areas that can be improved, using prior experience as well as research into alternatives. Provide objective, measurable, and actionable rationales for these recommendations.
o Document recommendations and create issues in the Jira or ZenHub issue tracking software.

• Analyze and optimize networking and I/O software that transfers data to and from the compute engine at line rate.
o Analyze networking performance between client machines running Linux kernel and company’s proprietary software applications and CS-1 system. Use debug and reporting tools such as systemtap, dtrace, kdb, and gdb to collect data for analysis.
o Using detailed knowledge of TCP/IP protocols, capture network traffic using tcpdump and wireshark and analyze it for correctness and performance.
o Using in depth knowledge of Linux systems, including kernel and systems programming, design and implement improvements to the company’s software in C, C , and Python.

• Interact with machine learning engineers to achieve functionality and performance targets and develop tools and techniques to facilitate debugging.
o Review product requirement and internal technical documents to understand functionality and performance targets for the CS-1 system.
o Work with internal machine learning engineers and customers to understand their challenges in using the CS-1 and work with them to achieve their functionality and performance targets through hands-on debugging.
o Develop tools and techniques in C, C , and Python to simplify and automate the debugging processes.

• Interact with product marketing and user experience specialists to define management interface, including configuration, status, and event logging.
o Contribute to product requirement documents for the CS-1 management interface using knowledge of the systems software features and design, as well as experience with other data center products, such as storage appliances.
o Review documents and ensure that the required features are implementable using the compute, memory, and storage resources available in the ARM SoC subsystems.
o Analyze the required features to determine personnel and time required to implement and test them.

• 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.
o Create a functional specification for the management interface software that runs on the ARM SoC subsystem, meeting the requirements described in the product requirement documents.
o Implement the management interface software using C, C , and/or Python, accounting for available compute, memory, and storage resources.
o Propose a test plan to cover the required features and exercise the functionality of the software and perform the tests.

Job Requirements:
Minimum Educational Requirement:
Master's degree or foreign equivalent degree in Computer Science, Computer Engineering or a related field and 2 years of related work experience.

If you are interested in the job, please mail your resume to Cerebras Systems Inc.'s address.

Job Criteria:
Start Date:
Position Type:
Years of Experience Required: 2
Education Required: Masters
Overnight Travel:
Vacation Time:

Contact Information:
Contact Name: Andrew Fetter Company Type:
Company: Cerebras Systems Inc. Phone:
Street: 175 S. San Antonio Rd. Suite 100 Fax:
City: Los Altos
State: California
Zip: 94022

Send ad to a friend


© 2020 Job Spider
Privacy Policy | CC Marketing Sites | Site Map | Links