The Staff Software Engineer - Compute will join a team designing, optimizing, and delivering medical device compute platform subsystem solutions in an agile environment. Responsibilities include contributing to technology roadmaps, requirements definition, technology prove-out, optimization and hardening, and product delivery. This role has a particular emphasis on designing and developing the CSS testing framework and automated test cases related to delivering high-quality compute platforms. You will be part of a team working cross-functionally with other engineering teams in a global setting. Essential skills include systems-level design thinking, infrastructure software/services, technical problem-solving, and performance optimization. Being able to collaborate efficiently both in-person and remotely is essential to this role.
In this Role:
- Design an automation framework that is efficient, extensible, flexible, reliable, and requires little to no manual support.
- Develop tools to characterize compute platform performance and stability by profiling, load testing, and measuring system utilization.
- Analyze results from test cases and create a reporting framework to automate reporting of test results and summaries.
- Follow well established principles for building robust and high-quality software products that are efficient and easy to maintain.
- Collaborate with engineering teams to gather test and use-case scenarios, design interfaces for test scripting and participate in technical design reviews
- Assess and mitigate complex technical problems.
- Establish clear expectations of scope and timing of deliverables and proactively provide status
Required Qualifications:
- Bachelor’s degree in computer engineering/science or other STEM discipline
- 8 years of experience in software development, testing and verification activities.
- Experience with software and hardware testing methodologies and processes
- Hands-on experience with compute HW, HW/OS, and HW/Application integration
- Experience translating requirements, use-cases into test plans, test cases and automated tests.
- Strong analytical, mathematical, and problem-solving skills
- Ability to manage priorities and communicate technical concepts to both technical and non-technical audiences
- Understand system design concepts and subsystem interactions and interfaces.
- Experience with GitLab or other version control systems.
Desired Characteristics:
- Knowledge of testing frameworks, system utilization, and profiling tools to measure HW/OS/application interactions.
- Experience in IPC, microservices, SOA, containers, REST APIs.
- Experience with a Linux operating system.
- Experience with networking and storage technologies.
- Knowledge of computer hardware and external Interfaces such as USB and Networking
- Proficiency in a programming and/or scripting language.
- Interpersonal and communication skills.
- Deep understanding of workstation and server-class hardware and OS integration.
- Experience with multiple types of testing; regression testing, ad hoc testing, feature testing, user acceptance testing, integration testing, performance testing.
- Strong troubleshooting skills with network, hardware, OS, virtual machines, and applications.