Computational Physics Software Engineer
Company | Passive Logic |
---|---|
Location | Murray, UT, USA |
Salary | $Not Provided – $Not Provided |
Type | Full-Time |
Degrees | Bachelor’s, Master’s, PhD |
Experience Level | Mid Level, Senior |
Requirements
- Strong proficiency in systems programming languages such as Swift, Rust, C++, or Java, as well as appreciable software engineering skills in working with large codebases with non-trivial architecture, beyond just coding small (1000’s of lines) programs and scripts
- Extraordinary teammate with excellent interpersonal skills.
- Experience with software design, design patterns, and software architecture
- Strong self-motivation towards PassiveLogic’s mission to “empower people through generative autonomy to solve the world’s largest climate challenges.”
- Comfortable in a fast-paced startup environment, eager to learn, iterate, and innovate.
- You own this role. When issues arise, be the empowered force that solves them, rolling-up.
Responsibilities
- Develop and maintain infrastructure for a differentiable multi-physics simulation engine.
- Develop an interface with the object model through Object Relational Mapping.
- Provide an infrastructure to support PassiveLogic’s control path predictor and front-end simulation environments.
- Develop robust autonomous software that must run with no human supervision for decades.
- Use thoughtful architecture design, documentation, unit testing, integration testing, profiling, and collaboration with the Formal Methods team to ensure this robustness.
- Collaborate with the Digital Twins team for physics optimization and collaborate with the Compiler team for accelerator approaches.
Preferred Qualifications
- Experience with Concurrency, threads, processes, Lib-dispatch/GCD
- GPU programming, high-performance computing, and scientific computing
- Vector, SIMD, and tensor computational methods
- Strong math, numerical methods, and analysis skills
- A BS, MS, or PhD in software engineering, computer science, applied mathematics, physics or other engineering degrees.
- Experience with the Swift programming language, auto-differentiation, systems modeling and algorithm development, fundamentals of building energy or electromechanical systems, and/or autonomous systems.
- Experience working and collaborating in a startup.