Software Engineer, Parallel Scientific Computing

Vorticity, Inc

$150K — $180K *
Information Technology
5 - 7 years of experience
Job Overview by Ladders

Qualifications

  • Bachelor's or Master's/PhD in Computer Science, Electrical Engineering, Applied Mathematics, or Physics.
  • 5+ years of experience in modern C++ (CUDA C++ preferred) for high-performance computing.
  • Ability to understand and implement numerical algorithms.
  • Experience debugging across different abstraction layers—from applications to hardware.
  • Strong understanding of computer architecture and software-hardware interaction.
  • Proficiency in C++, Python, and Linux development environments.
  • Excellent communication skills.

Responsibilities

  • Develop high-level reference implementations of scientific applications from mathematical descriptions.
  • Implement and parallelize applications using proprietary SDK across simulation, emulation, and hardware environments.
  • Optimize performance-critical kernels for the SPU architecture.
  • Conduct iterative performance optimization loops and identify bottlenecks.
  • Understand applications from their mathematical formulation to their hardware implementation.
  • Identify opportunities to improve compilation flow and overall system efficiency.
  • Collaborate with architecture and performance teams to co-design software and hardware solutions.
  • Write clear technical documentation for engineers and customers.

Benefits

  • Collaborative work environment focused on innovation.
  • Opportunity to work on groundbreaking technology in HPC.
  • Independence in driving projects and problem-solving.
  • Exposure to various abstraction layers in software and hardware integration.
  • Opportunity for continuous learning and professional development.
Full Job Description
We're building a new class of Scientific Processing Units (SPUs) to push the boundaries of High-Performance Computing (HPC). In this role, you'll develop and optimize the core computational kernels needed to run scientific applications across a wide range of domains on our custom parallel SPU architecture, from simulation and emulation to real hardware.

You'll work across abstraction layers. Starting from the mathematics and algorithms behind an application, building high-level reference implementations, translating them into parallel kernels, and optimizing them against our architecture. You should be comfortable moving between a mathematical description of a problem, C++/Python reference code, low-level parallel software, and the hardware that executes it.

This is not an easy role. It requires passion for understanding how hardware and software work together, the ability to wear multiple hats, strong communication skills, a lot of patience, independence, and, most importantly, zero ego. Why? Because this is the first time something like this has ever been attempted.
Responsibilities
  • Develop high-level reference implementations of scientific applications (e.g. finite-difference time-domain methods, computational fluid dynamics, electromagnetic wave propagation, etc.) from mathematical and algorithmic descriptions.
  • Implement and parallelize scientific applications using our proprietary Software Development Kit (SDK) across SPU simulation, emulation, and real-hardware environments.
  • Develop and optimize performance critical kernels for the SPU architecture.
  • Own iterative performance optimization loops, benchmark, profile, identify bottlenecks, implement improvements and repeat, until we reach our performance targets.
  • Understand applications across abstraction layers, from their mathematical formulation to their mapping onto parallel hardware.
  • Identify opportunities to improve our compilation flow, runtime, hardware utilization, and overall system efficiency.
  • Collaborate with architecture and performance teams to analyze bottlenecks and co-design innovative software and hardware solutions.
  • Independently identify problems and opportunities, propose next steps, and drive work forward without requiring detailed task by task direction.
  • Write clear, concise technical documentation for Vorticity's engineers and customers.
  • Stay current with parallel programming models, High Performance Computing (HPC) architectures, numerical methods, and techniques for mapping scientific workloads onto parallel hardware.
Skills & Qualifications
  • Bachelor's degree in Computer Science, Electrical Engineering, Applied Mathematics, Physics, or related field.
  • Master's or PhD in Computer Science, Electrical Engineering, Applied Mathematics, Physics, or related field.
  • 5+ years of experience in modern C++ (CUDA C++ experience strongly preferred) for parallel programming and high-performance computing. Exceptional candidates with fewer years but strong skills are also welcome.
  • Ability to understand numerical algorithms and translate mathematical descriptions into working implementations. You don't need to be a mathematician, but a gradient, divergence, stencil, or multidimensional discretization should not scare you.
  • Ability and willingness to debug across abstraction layers, from an application or numerical algorithm down through software and into the underlying architecture.
  • Strong understanding of computer architecture and the interaction between software and hardware.
  • Proficiency with C++, Python, and Linux development environments.
  • Excellent written and verbal communication skills.
  • Strong ability to work independently and in a team, while taking ownership of ambiguous problems, and determining what needs to be done next.
  • Willingness to put in the hard work needed to bring our SPU to life.
  • Above all: zero ego.

Similar Jobs

More Jobs at Vorticity, Inc

More Information Technology Jobs

Find similar Software Engineer, Parallel Scientific Computing jobs: