MogiMogiJobsPowered by MobiusEngineLet Mogi apply

SLAC

SimVascular Software Engineer and Architect

Stanford, CA · 2 months ago

Full-time

About the job

The Cardiovascular Biomechanics Computation Lab at Stanford University, led by Dr. Alison Marsden, specializes in computational modeling of the cardiovascular system to advance surgical planning, medical device design, and fundamental research in biomechanics. The lab develops SimVascular, a leading open-source project for patient-specific modeling and blood flow simulation, and is actively creating tools for segmentation and virtual surgery in 3D Slicer.

The lab has a particular interest in congenital heart disease patients, and we are leading a national collaborative effort to develop software for anatomic modeling, virtual surgery, and simulations pertaining to this patient group, with the ultimate goal of achieving FDA approval and clinical translation.

The lab is looking for a SimVascular Software Engineer and Architect who will be eligible to work remotely and whose duties will include:
• Deep knowledge of object-oriented programming with C++

• Experience with software development in the healthcare sector

• Experience with large scale physics-based solvers in a high-performance computing environment

• Experience with parallel computing (e.g. using MPI or similar), version control systems (GitHub), Agile software development (or similar), Python, AI-assisted software development (e.g. Claude)

• Architecting and contributing to svMultiPhysics (svMP), the primary physics solver for the SimVascular project
• Overseeing svMP solver refactoring effort
• Planning code development – including testing, hardening, and architecture- to prepare the svMP software for future FDA submission
• Implementing quality control in code development
• Performing code profiling and improving efficiency
• Code improvements and refactoring of reduced order model solvers
• Overseeing and implementing automated testing implementation
• Implementing new GPU acceleration capabilities
• Reviewing and providing feedback on solver contributions from Marsden lab members and partner labs
• Overseeing and collaborating on web-based documentation development
• Participating in long term strategic planning with Dr. Marsden, the lab’s Senior Software Research Engineer and others in the national collaborative
• Mentoring staff, graduate students and postdoctoral scholars across collaborating labs on all aspects of svMP software development

* - Other duties may also be assigned

Responsibilities
Core Duties:

• Propose, conceptualize, design, implement, and develop solutions
for difficult and complex applications.

• Contribute to all phases of a project, including systems
analysis, program design, development, and implementation. Serve as
project lead for some projects.

• Oversee testing, debugging, change control, and documentation for
major projects.

• Lead and mentor professional staff, as necessary, working on all
phases of application development projects.

• Engage in long-term strategic planning.in collaboration with
staff and project leadership.

• Define complex application development administration and
programming standards.

• Oversee the support, maintenance, operation, and upgrades of
applications.

• Troubleshoot and resolve complex technical problems.

• Review the physical design of existing systems for optimizing
performance.

• Lead projects, as necessary, for special systems and application
development in areas of complex problems.

• Work with other technical professionals to develop standards and
implement best practices.

• Provide innovative programming and analysis.

• May mentor junior software developers.

Minimum Education and Experience:

Bachelor's degree and eight years of relevant experience, or a
combination of education and relevant experience.

Knowledge, Skills and Abilities:

• Ability to quickly learn and adapt to new technologies and
programming tools.

• Demonstrated experience in designing, developing, testing, and
deploying applications.

• Strong understanding of data design, architecture, relational
databases, and data modeling.

• Thorough understanding of all aspects of software development
life cycle and quality control practices.

• Ability to define and solve logical problems for highly technical
applications.

• Strong communication skills with both technical and non-technical
clients.

• Demonstrated experience leading activities on structured team
development projects.

• Ability to select, adapt, and effectively use a variety of
programming methods.

• Ability to recognize and recommend needed changes in user and/or
operations procedures.