JoBuzzerJoBuzzer
nTop logo

Senior Software Engineer, Build Team (C/C++)

nTop
Remote·Full Time·Remote·Other·Senior

Summary

Leads high-impact rearchitecture in a critical legacy C++ system, resolving performance and design challenges in a mature 8-year-old codebase. Drive technical leadership in extracting geometry from parametric logic to enable automation across modeling, rendering, and platform layers. Prevents deadlocks and exploits full C++11/14/17 capabilities.

Required Skills

Object Oriented DesignC/C++modern programming standardsMemory ManagementDesign Patterns

Details

Salary
$185,000 – $250,000
Experience Required
5+ years
Posted
Jun 26, 2026
Bonus
Yes
Equity
Yes

Description

Today's engineering organizations building cutting-edge products and advanced systems must deliver increasingly complex solutions faster than ever, often with lean teams and no room for error. nTop changes how engineering gets done. Our technology collapses months of iteration into hours, letting teams explore thousands of variants instead of settling for the first option. Teams reduce development time by 50% and increase program win rates. Leaders choose nTop when failure isn't an option.

This is a newly created seat on the Build team — the group that builds the engine behind nTop. Our software treats geometry as programmed, parametric code: you describe a model as a function, expose the parameters that drive it, and let engineers explore thousands of variants automatically. The Build team owns how those models come to life, across four workstreams: modeling (implicit modeling and signed-distance functions), UI, rendering, and the platform — the execution kernel that takes the program describing a model, evaluates it, and generates the actual geometry.

You'll work in the platform workstream, and your charter is the future, not the status quo. The current kernel is the oldest, most load-bearing part of an eight-year C++ codebase. Your job is to help architect what comes next — the next generation of our modeling platform — and to open up a historically closed system so it communicates cleanly with the broader ecosystem of tools our customers and the wider R&D org are building around it.

The mindset we're hiring for

We think about engineers in two camps. One camp protects what exists and can give you a hundred well-reasoned arguments for why a step is risky. They're not wrong — a fragile codebase has real costs when you move too fast. The other camp asks, "What's the problem we need to solve? It looks impossible — let's try anyway," and shows up the next day with something working.

We're hiring from the second camp. This role needs someone with a bias to action and the bravery to parachute into a complex, unfamiliar, occasionally messy system, get oriented fast, and start moving it forward without breaking it. Just as important: we want a leader — not only someone who ships, but someone who steps up and says, "Here's the direction, let's go," and who can hold the room when strong engineers disagree. If you're the kind of person who's genuinely comfortable in old code — an "Indiana Jones" who'd rather understand a relic than reinvent the wheel — you'll fit here.

What you'll do

  • Help re-architect and evolve nTop's execution kernel toward its next generation, balancing near-term delivery against long-term structural change.
  • Modernize a large, established C++ codebase (8+ years, 100k+ files): untangle application-specific coupling, decompose toward a more open, service-oriented structure, and move a closed system toward cleaner, more descriptive representations.
  • Diagnose and resolve complex issues across a production desktop application, with deep attention to memory, concurrency, and performance.
  • Act as a technical owner and a leader in design discussions, code reviews, and architectural decisions — including navigating tension between competing, well-argued engineering opinions.
  • Collaborate closely with the engineers who know the platform best, and raise the team's collective bar for how modernization work gets done.

Required

  • 5+ years of professional C/C++ with strong command of modern standards (C++11/14/17), object-oriented design, and design patterns.
  • A generalist command of C++ — broad and proven across the language, rather than narrowly specialized in a single sub-domain.
  • Proven experience in large-scale C++ codebases (100k+ lines) and a track record of diagnosing complex problems in production.
  • Deep understanding of memory management, multithreading, and performance optimization.
  • A demonstrated bias to action and comfort operating in fragile, legacy, or ambiguous code — you orient quickly and move things forward.
  • Technical leadership: the ability to set direction, drive disruptive change, and navigate engineering conflict.
  • Experience in cross-functional teams with established development, testing, and QA practices.

Preferred (any of these is a plus)

  • Background in software architecture modernization and migrating monoliths toward distributed / service-oriented architectures.
  • Computational or algorithmic geometry (a strong plus — it lets us flex you into modeling work over time).
  • Experience building compilers (a current gap on the team).
  • Functional programming principles; refactoring and technical-debt assessment strategies.
  • Understanding of CAD / engineering software workflows.
  • Exposure to containerization (Docker, Kubernetes), SOA / microservices patterns, and API / RESTful design.
  • A working understanding of how AI/ML systems operate — enough to architect toward them. Hands-on ML is not required.

How we interview

A recruiter screen, a conversation with the hiring manager, and a final stage in two connected parts: an extended technical session built around live, collaborative coding (you can use AI tools — we just ask you to share your screen and talk through your reasoning) followed by a team-fit conversation.

This role reports to the Engineering Manager of the Build team.

Compensation

The base pay range for this role is £76,000 – £120,000 per year.