Expert Software Engineer (3D, C++)
Jobs at Align Technology | Align Technology Careers
·Today
- Location
- Yerevan
- Type
- Full-time
- Department
- Engineering
- Experience
- 12+ years
- Education
- Master
Description
Expert Software Engineer (3D, C++)
Department: Research & Development
Employment Type: Full Time
Location: EMEA-Armenia-Yerevan
Description
Align is looking for a 3D C++ Expert Software Engineer. This role will be part of a culture that is helping to improve lives every day through digital dentistry. The 3D C++ Expert Software Engineer should have exceptional skills in software development, 3D and C++ programming, and will set technical direction for the 3D core of Align's clinical software (ClinCheck, Treat, SmileCraft). You will use AI coding agents as a core part of your daily workflow. As an expert, you work autonomously and across organizational boundaries: you take ownership of problems end to end, build working relationships with the many departments that each own a part of the product, and drive questions to resolution without waiting for direction. This role will be part of Align's goal to deliver our clear aligners (Invisalign ®).
Key Responsibilities
- Design, develop, troubleshoot and improve next generation software for use in clinical research and clinical applications.
- Own the architecture and delivery of C++ components for 3D visualization (OpenGL 4 / shaders), mesh and geometry processing, and the 3D scene used by Align's clinical applications.
- Drive technical design: write design documents, evaluate trade-offs, and lead technical risk assessment in line with medical device software processes.
- Profile and optimize performance and memory usage of rendering and geometry pipelines on large meshes and complex scenes.
- Design protobuf-based APIs and cross-language integrations (C++ engines used from Python and C# services, including AWS Lambda / Docker based pipelines).
- Apply AI-assisted development (Claude Code, Codex, ChatGPT) and agentic workflows to implementation, refactoring, code review and test creation, and define good practices for the team.
- As a part of larger Product Innovation team: be on a constant mission to maintain and improve the quality of our software, including our large legacy code base.
- Prototype solutions to help Biomechanical Engineers design products for manufacturing, and upgrade existing C++ prototypes into production quality code with the help of componentization.
- Write and maintain unit tests (gtest / gmock) and automated UI / integration tests, including tests built on our internal Python-based April test framework (training is provided).
- Build, maintain and improve CI/CD pipelines in GitHub (GitHub Actions workflows for build, test, static analysis and release).
- Collaborate with multi-disciplinary teams (Software engineers, Product management, Manufacturing experts) to take upcoming projects to fruition.
- Work autonomously and take end-to-end ownership of tasks. Our product is built by many departments, each responsible for its own part, so proactively build and maintain communication across them (Product, Biomechanics, SQA, Manufacturing, Clinical, Platform and other engineering groups): identify the right contacts, align on interfaces and dependencies, clarify ambiguous requirements, and resolve blockers early instead of waiting for direction.
- Translate physical manufacturing testing results to software requirements.
- Interact with customers and SQA to improve the product.
- Lead investigation and root cause analysis of complex defects from production and QA.
- Lead code reviews, mentor engineers, and help onboard new team members.
- Prepare and deliver regular internal tech talks (architecture deep-dives, 3D / C++ best practices, AI-assisted development practices) to share knowledge across the team and other teams.
- Follow best practices, produce high quality, testable and reusable code, and follow quality and regulatory guidelines for medical device software development.
- Contribute with innovative ideas and follow up with patent applications.
- Leverage the Scrum Agile process; take part in sprint planning, daily stand-up, retrospective and demonstration activities.
- Work with MS Visual Studio, use Git, GitHub and Atlassian tools for version control, bug tracking and task tracking.
Skills, Knowledge & Expertise
- Bachelor's degree in Computer Science or other STEM major, or equivalent years of experience.
- 12+ years of professional experience developing software in modern C++ (C++17 or later), with expert knowledge of templates, move semantics, RAII, concurrency, memory model and STL internals.
- 4+ years in 3D software development (3D graphics, 3D computational geometry): meshes, remeshing, spatial data structures, transformations, rendering pipelines (OpenGL 4 / GLSL shaders).
- Proven track record of designing and delivering complex C++ systems, with strong software architecture and object-oriented design skills.
- Theory of algorithms. Experience in 3D geometry algorithms, linear algebra, computational mathematics and analytical geometry.
- In depth knowledge of the C++ language and ability to navigate a large C++ code base.
- Strong skills in performance analysis and optimization (profilers, memory analysis, multithreading).
- Strong hands-on experience with AI-assisted development: daily use of Claude Code, Codex and/or ChatGPT; experience with agentic workflows (agents, subagents, MCP, context files such as CLAUDE.md / AGENTS.md); ability to critically verify AI-generated code and tests.
- Experience with unit testing (gtest / gmock) and test automation; Python-based UI or integration test automation is a plus.
- Hands-on experience with GitHub: pull requests, code review, branching strategies, and GitHub Actions CI/CD (writing and maintaining workflows, build matrices, caching, artifacts, secrets handling).
- Experience using Git/Bitbucket, JIRA, Confluence, Bamboo tools.
- Experience building with CMake / Visual Studio and package managers (for example Conan) on Windows.
- Ability to write testable and object-oriented code.
- Ability to work autonomously with minimal supervision and to communicate effectively across departments: independently find the right stakeholders and domain experts, negotiate dependencies and priorities between teams, and keep work unblocked.
- Experience mentoring engineers, leading technical discussions, and delivering tech talks or technical presentations to engineering audiences.
- Familiarity with modern technologies and ability to learn fast. Curiosity and inventiveness.
- Good interpersonal and communication skills. Upper intermediate or higher English: internal communication is in English.
- Python and C# expertise.
- Knowledge of Docker containers, Linux (Ubuntu, CentOS), AWS (Lambda), practical skills in CI/CD deployment and SQL (basic selects/inserts queries).
- UI test automation experience (image-based or accessibility-based), familiarity with frameworks like pytest, Lackey/SikuliX, pywinauto.
- Experience with CAD, CAM or dental software.
- Exposure to Software as a Medical Device (SaMD), IEC 62304.