Join the most cutting-edge and well-funded hardware startup in Silicon Valley as a System Performance Tool Developer. Our mission is to reimagine silicon and create computing platforms that will transform the industry. You will have the opportunity to work with some of the most talented and passionate engineers in the world to create designs that push the envelope on performance, energy efficiency and scalability. We offer a fun, creative and flexible work environment, with a shared vision to build products to change the world.
As a System Performance Tool Developer, you are responsible for working with a team on developing tools to monitor, capture and visualize internal states and operating elements of a complex and high performance CPU architecture. You will collaborate with hardware designers, performance analysis teams and modeling teams. In this role, there will also be an opportunity to engage broadly with our customers and third parties on enablement of new platforms, and optimizations in our microarchitecture.
- BASc/BSc (or greater) in Computer Science, Computer Engineering, Electrical Engineering or similar program with a focus on Software Engineering.
- Excellent programming skills with demonstrated experience in C/C++ and build systems
- Strong software design skills with deep understanding of Object Oriented design principles
- Solid grasp of Computer Architecture concepts, including high performance server class architecture, weak memory models, and server platform design/constraints
- Fast learner, adaptable, self-starter who can work both independently and collaborate well within a dynamic team environment.
- Strong problem solving and debugging skills
- Good foundational understanding of CPU architecture components such as data fabrics, I/O devices, power management, UEFI
- Excellent technical communication, interpersonal and teamwork skills
- Good understanding of distributed revision control systems
- 5 years+ of demonstrated software engineering experience
- Experience in silicon performance monitoring, performance counters and analysis tools such as Linux perf, Intel VTune and collaborating with performance teams
- Experience in working with Linux Open Source projects and toolchains
- Experience developing software for server platforms and platform bringup
- Experience delivering production quality, maintainable code on schedule, particularly in a software team/organization focused on development of software to enable new silicon
- Strong understanding of code optimization, memory management, concurrency and multi-threading, and experience in software performance analysis
- Additional qualification asset: Experience with SIMPoint, or, Checkpoint Restart in User Space (CRIU) implementations
Role and Responsibilities
- Design, develop and maintain software tools for the purpose of verifying performance and compliance of Nuvia products at the system level
- Participate in the design and definition of system hardware monitoring in future products
- Collaborating with performance modelling teams and competitive analysis teams to participate in the focus of performance debugging
- Assist in the definition of future server class SoCs and platforms by identifying opportunities for enhancement of data collection and presentation
- Assist in identifying skills requirements and building a team of engineers working on production software readiness, customer workload performance analysis, workload creation, compiler components and collaborating with other teams on bring-up/debug/diags
- Participate in the hunt for compiler optimizations for server class platforms, focused on ensuring that existing Operating Systems run well, while identifying strong opportunity for enhancements that can improve performance
Read Full Job Description