Job SummaryWe are seeking a
Principal Software Engineer to work on the core programming language and runtime systems that form the foundation of MATLAB. In this role, you will help design, implement, and evolve the language semantics, execution capabilities, and runtime infrastructure used by millions of engineers and scientists worldwide.
This is a hands-on, technical role focused on building and modernizing foundational systems-improving language consistency, advancing performance and correctness, and refactoring long-lived subsystems to support new capabilities, composable execution, and AI-assisted development workflows.
Responsibilities - Design and implement enhancements to programming language features, execution semantics, and core runtime behavior, with attention to performance and correctness.
- Lead and contribute to large-scale refactoring efforts, improving modularity, clarity, and testability of mature systems while preserving external behavior and compatibility.
- Evolve internal APIs and abstractions that enable other teams to build language features, tooling, and integrations safely and efficiently.
- Diagnose and resolve complex cross-cutting issues related to execution behavior and interactions between subsystems.
- Participate in design reviews and architecture discussions, helping shape the long-term technical direction of the language and runtime.
- Mentor other engineers through code reviews, technical discussions, and shared ownership of foundational systems.
Minimum Qualifications- Expertise with C++
- A bachelor's degree and 10 years of professional work experience (or equivalent experience) is required.
Additional Qualifications - Strong understanding of software design principles and maintainable architecture in large systems.
- Experience with AI-driven development workflow and automation.
- Ability to independently drive complex technical work from problem definition through implementation and delivery.
- Experience working effectively in large, long-lived codebases with many users and dependencies, including large-scale refactoring efforts.
- Experience developing performance-critical systems.
- Familiarity with developer-facing tools such as debuggers, static analysis, or language tooling.