What are the responsibilities and job description for the Senior Compiler and Programming Languages Engineer position at MathWorks?
Summary
MathWorks has a hybrid work model that enables staff members to split their time between office and home. The hybrid model provides the advantage of having both in-person time with colleagues and flexible at-home life optimizations. Learn More: https://www.mathworks.com/company/jobs/resources/applying-and-interviewing.html#onboarding.
The MATLAB Coder Language team is seeking a programming language design and implementation specialist to work on its partial evaluation-based type inference engine. Your contributions will enable the deployment of MATLAB applications across a wide range of devices, from automobiles to spacecrafts. We seek individuals who are passionate about implementation and have a proven track record of bringing complex ideas to life.
MathWorks nurtures growth, appreciates diversity, encourages initiative, values teamwork, shares success, and rewards excellence.
Responsibilities
You will join a small team of engineers who own the partial evaluation-based type inference engine and optimizing compiler used to translate MATLAB programs to low level representations (e.g., C/C /Cuda/LLVM). You will design, implement and evolve the intermediate representation, type system, and various static analyses of the compiler. You will implement new language features that enable and support the various use-cases of ahead-of-time compilation for MATLAB.
As a compiler engineer, you will have a chance to influence the core design decisions of the compiler architecture. As a language engineer you will help evolve the MATLAB programming language to be more suitable for embedded system development.
As a senior member of the team, you will also:
MathWorks has a hybrid work model that enables staff members to split their time between office and home. The hybrid model provides the advantage of having both in-person time with colleagues and flexible at-home life optimizations. Learn More: https://www.mathworks.com/company/jobs/resources/applying-and-interviewing.html#onboarding.
The MATLAB Coder Language team is seeking a programming language design and implementation specialist to work on its partial evaluation-based type inference engine. Your contributions will enable the deployment of MATLAB applications across a wide range of devices, from automobiles to spacecrafts. We seek individuals who are passionate about implementation and have a proven track record of bringing complex ideas to life.
MathWorks nurtures growth, appreciates diversity, encourages initiative, values teamwork, shares success, and rewards excellence.
Responsibilities
You will join a small team of engineers who own the partial evaluation-based type inference engine and optimizing compiler used to translate MATLAB programs to low level representations (e.g., C/C /Cuda/LLVM). You will design, implement and evolve the intermediate representation, type system, and various static analyses of the compiler. You will implement new language features that enable and support the various use-cases of ahead-of-time compilation for MATLAB.
As a compiler engineer, you will have a chance to influence the core design decisions of the compiler architecture. As a language engineer you will help evolve the MATLAB programming language to be more suitable for embedded system development.
As a senior member of the team, you will also:
- interact with external and internal customers to understand their requirements
- help teams adopt our technology
- mentor and onboard junior colleagues
- create and enhance our software development processes
- A bachelor's degree and 6 years of professional work experience (or a master's degree and 3 years of professional work experience, or a PhD degree, or equivalent experience) is required.
- Familiarity with functional programming languages (e.g.,OCaml/Haskell/Racket) is a plus.
- Familiarity with staged computation and partial evaluation (e.g., Zig, C meta-programming) is a strong plus.
- Familarity with compiler frameworks (LLVM, MLIR) a plus.