Software Engineer

AccurayMadison, WI

About The Position

Give hope. Give health. Make your mark in the fight against cancer. At Accuray, we make a direct and powerful impact on the lives of cancer patients every day — helping them live longer, better lives. But our commitment to innovation offers a truly unique opportunity: the chance to change the fight against cancer — helping to develop, introduce and support new treatment delivery systems and software that will give new hope and new health to cancer patients and cancer survivors around the world. Accuray develops, manufactures and sells radiotherapy systems for alternative cancer treatments. Our radiation therapy for cancer makes treatment shorter, safer, personalized and more effective, ultimately enabling patients to live longer, better lives. SUMMARY: The Software Engineer participates in requirements, design, development, integration, and testing of software systems used to create, store, optimize, and manage patient treatment plans. The Software engineer collaborates in a complex environment integrating software with other software and hardware subsystems for an advanced medical device. Our work has a daily impact on patients worldwide, and we hold a high bar for quality and rigor. REPORTING TO/DEPARTMENT: Reports to the Manager, Software Engineering in the Software Engineering team.

Requirements

  • BS in Computer Science, Computer Engineering, or an equivalent combination of education and experience.
  • Proficiency in C++ (object-oriented development), C# or related language.
  • Experience with automated unit testing frameworks and building/maintaining testable code.
  • Experience with object-oriented analysis & design, including correct use of design patterns and awareness of anti-patterns.
  • Experience with client/server architecture.
  • Strong written and verbal communication skills; able to present and defend designs in reviews.
  • Must be able to work effectively in a team environment

Nice To Haves

  • Strong mathematics and/or physics background.
  • Experience with Medical Device development or other regulated environments.
  • Experience with modern software practices and toolchains (e.g., configuration management such as Perforce/Git; CI/CD build, deployment, and test tooling).
  • Experience with Python or related languages.
  • Experience with client / server architecture.
  • Experience developing software in multi-threaded / multi-core environments.

Responsibilities

  • Develop and maintain software that supports the lifecycle of a complex radiation therapy medical device.
  • Write high-quality, reliable code that fulfills product and subsystem requirements in a complex clinical domain.
  • Implement automated tests (unit/integration as appropriate) to validate functionality and reduce regressions.
  • Contribute to sustaining engineering by troubleshooting, participating in root-cause analysis, and resolving issues found in new or existing functionality.
  • Directly impact the development and architecture of software that creates, stores, optimizes and delivers patient treatments.
  • Drive critical design and implementation decisions and participate in design discussions for complex systems.
  • Present concise designs through written and oral reviews; contribute to clear documentation of designs, decisions, and outcomes.
  • Contribute to subsystem requirements and verification approaches for new features.
  • Participate in decisions affecting high-performance computation solutions to provide responsive and accurate results that meet clinical expectations.
  • Collaborate on technology choices (e.g., languages/libraries, compute approaches) to support performance, maintainability, and testability.
  • Work closely with team members to implement quality applications that meet or exceed rigorous testing expectations.
  • Operate effectively in a regulated industry with strict process requirements; document work and follow the defined development processes.
  • Support continuous improvement efforts (e.g., coding standards, code reviews, test coverage, build/test automation) to increase engineering efficiency without sacrificing quality.
  • Collaborate across disciplines (software, systems, test, product, clinical/field stakeholders as needed) to deliver integrated solutions.
  • Cross-pollinate the team with theory and practice of software development, object-oriented design, and computer languages.
  • Proactively share information and communicate technical status, risks, and decisions to the right audiences at the right level of detail.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service