Senior Software Engineer, Build Team (C/C++)
nTop · Kings County, NY · 2 days ago
HybridEngineeringFull-time
What We Do
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.
About the Role
This is a newly created seat on the Build team. 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.
Responsibilities
- 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.
Requirements
- 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
- 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).
- Demonstrable ability to untangle (not just diagnose) legacy code.
- 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 SOA / microservices patterns, and API / RESTful design.
- A working understanding of how AI/ML systems operate — enough to architect toward them.
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.
Technical Lead
This role reports to the Engineering Manager of the Build team.