Physics Programmer, C++ (Modeling & Simulation) in Canada Creek, Nova Scotia at Jobgether
Explore Related Opportunities
Job Description
This position is listed on behalf of a partner company, who manages all applications and next steps. Our partner is looking for a Physics Programmer, C++ (Modeling & Simulation) based in Canada.
This role offers the opportunity to build the core simulation technology behind a next-generation wargaming and decision-support platform.
You’ll develop high-performance C++ systems that bring physics, behavior, AI, sensor, weapon, and environmental models together in a scalable runtime.
Your work will directly influence how complex simulations are executed, analyzed, and trusted at mission and campaign scale.
You’ll tackle challenging problems across entity-component systems, concurrency, deterministic execution, memory management, and engine architecture.
The environment values engineers who have shipped real-time systems and know how to optimize under demanding CPU, memory, latency, and stability constraints.
Depending on your level, you’ll also shape architecture, lead technical initiatives, mentor engineers, and influence long-term platform direction.
This is a highly hands-on opportunity for an experienced C++ engineer who wants to solve foundational performance and simulation problems.
- Architect and implement the core C++ runtime supporting a large-scale, interactive modeling and simulation platform.
- Own the structure, performance, maintainability, and long-term evolution of a substantial engine codebase.
- Design and evolve entity-component-system architecture, including component storage, entity lifecycle management, system queries, execution graphs, and dependency-aware scheduling.
- Define engine interfaces for integrating physics, AI, sensor, weapon, behavior, and environmental models.
- Build stable extension points that enable model developers to add capabilities without destabilizing the engine core.
- Design simulation loops, time-stepping approaches, event processing, system ordering, state transitions, deterministic execution, and replay capabilities.
- Develop multithreaded and task-based execution systems that safely parallelize simulation workloads.
- Optimize memory layout, allocation, cache locality, component access, serialization, and data movement.
- Profile and improve CPU utilization, memory consumption, latency, throughput, and simulation rate against defined performance budgets.
- Build infrastructure for spatial indexing, collision candidates, visibility, proximity queries, and other large-scale spatial operations.
- Integrate externally developed physics and mathematical models into a consistent, reliable, and performant runtime.
- Develop checkpointing, snapshotting, state replication, save-and-restore, and reproducible replay functionality.
- Establish architecture for networked and distributed simulation, including ownership, synchronization, prediction, and state transfer.
- Build developer tooling that enables model developers to inspect entities, debug execution, profile model costs, and understand simulation state.
- Identify and eliminate architectural bottlenecks as simulation scale and model complexity grow.
- Lead engine design reviews, mentor other programmers, conduct code reviews, and raise engineering standards for C++ architecture and performance.
- Remain deeply involved in implementation, profiling, debugging, and technical problem-solving.
- Extensive professional C++ development experience, or equivalent experience building performance-critical production software.
- Significant experience in commercial game development, game-engine development, or another performance-constrained real-time environment.
- Experience shipping at least one commercial game, engine, platform, or interactive real-time product.
- Demonstrated ownership of foundational engine systems rather than primarily gameplay features, scripting, tooling, or application-level integrations.
- Experience building or substantially extending a physics engine, game engine, simulation runtime, entity-component system, job system, or comparable core technology.
- Expert knowledge of modern C++, including object lifetimes, ownership, templates, concurrency, synchronization, profiling, and low-level debugging.
- Strong understanding of data-oriented design, memory layout, cache behavior, allocation strategies, and performance-sensitive data structures.
- Experience designing or extending an entity-component system or similar composition-based runtime architecture.
- Experience with engine loops, execution graphs, task systems, event systems, dependency management, or runtime scheduling.
- Demonstrated ability to optimize systems against strict CPU, memory, latency, frame-time, or tick-time budgets.
- Experience using professional profiling and debugging tools to diagnose CPU stalls, memory issues, thread contention, allocation problems, and cache inefficiencies.
- Working knowledge of real-time physics concepts such as coordinate systems, numerical integration, collision detection, spatial partitioning, constraints, and simulation stability.
- Experience designing APIs, plugin systems, SDKs, or extension frameworks used by other programmers.
- Experience maintaining and improving large C++ codebases while continuing to deliver production capabilities.
- Experience leading major technical initiatives while remaining an active individual contributor.
- Active Secret clearance or eligibility to obtain one.
- For Senior-level positions, typically 5+ years of relevant experience; Staff-level positions generally require 7+ years, while Principal-level positions generally require 10+ years.
- Senior candidates should be able to drive system-level design, collaborate on broader architecture, solve complex technical issues, and mentor teammates.
- Staff candidates should be capable of owning cross-cutting architecture, leading complex technical initiatives, managing technical risk, and serving as a primary technical reviewer.
- Principal candidates should demonstrate department-level architectural influence, strategic technical leadership, and the ability to shape long-term engineering direction.
- Experience with SIMD, GPU compute, custom allocators, job systems, lock-free structures, or platform-specific optimization is strongly preferred.
- Experience supporting very large worlds or simulations with significant numbers of active entities is a plus.
- Familiarity with engine serialization, snapshotting, replay, world partitioning, or streaming is desirable.
- Experience with aerospace, robotics, autonomy, or defense simulation standards and platforms is beneficial.
- Experience developing models related to sensors, weapons, electronic warfare, communications, logistics, or command and control is advantageous.
- Active U.S. security clearance, including Secret, Top Secret, or SCI/SAP, is strongly preferred.
- Compensation designed to be highly competitive and positioned toward the upper end of the relevant salary range, based on experience, skills, proficiency, and location.
- Health care coverage with 100% premium coverage for medical, dental, and vision plans.
- 401(k) plan with a 5% employer match.
- Uncapped vacation time, along with paid sick leave and public holidays.
- Flexible hybrid or fully remote work arrangements.
- Relocation assistance for qualifying employees.
- Opportunity to work on technically challenging, high-performance simulation and C++ engineering problems.
- Significant opportunities for technical ownership, architectural influence, mentorship, and career growth.