Embedded Software Development Engineer

Cray   •  

Virtual / Travel

Industry: Technology


8 - 10 years

Posted 31 days ago

Who is Cray? Our business is supercomputing. Our primary aim is understanding the problems our customers are trying to solve and developing the technologies that enable them to make the discoveries that better our world. Cray combines computation and creativity so visionaries can keep asking questions that challenge the limits of possibility. Drawing on more than 45 years of experience, Cray develops the world’s most advanced supercomputers, pushing the boundaries of performance, efficiency and scalability. Cray continues to innovate today at the convergence of data and discovery, offering a comprehensive portfolio of supercomputers, high-performance storage, data analytics and artificial intelligence solutions. We are proud to be an Equal Opportunity Employer including women, minorities, protected veterans, and individuals with disabilities. CRAY Inc. is an Affirmative Action, Equal Opportunity Employer. Who We Need For those who ask what if, Cray is a partner that merges computation and creativity to extend the boundaries of what you can discover. Our greatest achievements are realized when we face what seems impossible, and that’s why we invite those who believe anything is possible to join us and to keep asking what if, why not, and what’s next. At Cray we’re always looking way down the road … years, even decades into the future. We’re not developing products for next quarter. We’re developing products for questions our customers might not even know they have yet. That’s how high-performance computing works. So as you can imagine, we pay very close attention to what’s coming … and that includes the next generation of computer scientists and engineers. These individuals are going to be the ones shouldering an awesome responsibility in the coming decades as big data gets bigger, artificial intelligence flexes its muscles more and more, and problems grow in complexity. As a member of the Embedded Software team, this engineer will be responsible for the development and support of custom I2C/SPI/eSPI/FPGA Linux device drivers. In addition, responsible for controller boot and systems software development. This person will work closely with logic and physical design engineers and will need to understand complex digital hardware designs by studying specifications and block diagrams. The successful candidate should have experience working with hardware initialization and data transport communications (JTAG, UART, PCIe and I2C). New hardware bring-up is also a major responsibility for this position. This engineer requires a commitment to sound engineering practices, strong written and verbal communication skills, and the ability to work successfully in a team environment. Must also have the ability to react quickly, calmly and efficiently in stressful situations. Micro-controller and Redfish API development experience is also desired.

Background and Experience:
• BS in Computer Engineering or Computer Science (or an equivalent combination of education and experience) and a minimum of 8 years of experience architecting, designing, developing, and debugging new software for new hardware
• Strong C and C++ development skills required; Python, shell scripting
• 5+ years Linux kernel driver development and debugging; Linux shell scripting experience (bash)
• Familiar with Linux distribution components (init scripts or systemd, initrd, packages, necessary pieces for a usable root fs)
• Basic Linux networking (ifconfig, dhcp, tftp) and applications development in C (CLI application w/ Makefile)
• Experience writing drivers for and debugging I2C, SPI, Asynchronous Serial, and PCIe interfaces
• Experience with basic electronics debugging and lab test gear (logic analyzer, oscilloscope, DMM, lab power supply)
• Experience with x86 assembly and ARM-based Linux platforms and cross-architecture development
• Must be able to read and understand schematics and PCB layouts
• The candidate should be able to delegate work, perform design and code reviews and mentor other team members
• Must be able to gather requirements, write specifications and documentation; technical presentations
• Must be able to work with third party silicon vendors for development and debug of products containing their IP
• Assist in system level integration and debug of the hardware and software Desired Skills:
• Experience in Python
• Cross-architecture Linux
• Experience with U-Boot
• Application Programming Interfaces
• Familiar with JTAG IEEE1149.1 debug interface
• Familiar with ARM SWD and JTAG in-circuit debug
• Experience with flash memory devices: JEDEC SPI, NAND, eMMC