Software Engineer
Role details
Job location
Tech stack
Job description
Software Development (Build, Extend, Maintain)
-
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.
Software Design & Architecture (Make the System Better)
-
Directoy 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.
Performance & Computational Solutions (Accuracy + Responsiveness)
-
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.
Quality, Compliance, and Ways of Working
-
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.
Collaboration & Technical Contribution
-
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.
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
Preferred
-
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.
WORKING CONDITIONS
Office:
-
Indoor Environment: The position takes place indoors, providing a comfortable and climate-controlled workspace.
-
Sedentary Work: This role involves extended periods of sitting and working at a desk, requiring good ergonomic practices.
-
Computer Usage: Proficiency with computers, including software applications and communication tools, is essential for tasks and collaboration.
-
Minimal Physical Strain: While physical demands are generally low, occasional light lifting and moving of objects might be required.
-
Structured Schedule: This position usually follows regular business hours, promoting a consistent and predictable work routine.
To qualify for this position, candidates must be able to furnish proof that they are authorized to work in the country they are applying on a permanent basis without sponsorship.