SimVascular Software Engineer and Architect
Stanford University · Stanford, CA · 3 mo ago
HybridEngineeringFull-time
Duties
- 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
- Mentoring staff, graduate students and postdoctoral scholars across collaborating labs on all aspects of svMP software development
Responsibilities
- 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.
- 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.