Senior Compiler Engineer - Dynamic Languages (closed)
The MATLAB Coder team is seeking a creative compiler engineer to solve static program analysis, language design, and optimization problems. MATLAB Coder compiles the dynamic and interactive MATLAB language to static and embeddable C code. This is a deep and fiendishly difficult problem. We use partial evaluation, abstract interpretation, type unification, and inter-procedural global analyses to deliver the full power of MATLAB, intuitive error messages, and readable code. Perhaps there are some technologies we missed that you would like to try. If so, we need you!
The MATLAB Coder team is small, and growing. The MathWorks employs people from all over the world (relocation included), and provides a collegial work environment you will love. The work we do matters! Over a million customers use our tools to design the next generation of automobiles, airplanes, cell phones, radar systems, and spacecraft. If you have not heard of us, ask an engineer!Responsibilities
- Work independently and with the team to design and research new static program analyses and optimizations. These will allow customers to generate code from more of their MATLAB code, or improve the quality of the generated C code.
- Implement your new analysis or optimization within our compiler framework and ship it to thousands of engineers.
- Interact with customers, application engineers, and marketing to gather requirements, perform usability testing, and resolve complex technical cases.
- Improve the team's quality of life with creative workflows and tools.
- Pursue excellence in all things!
- MS +3 years experience in software or compiler development, or a PhD in Computer Science or related field.
- Demonstrated theoretical and practical compiler or programming language design experience.
- Have worked in a compiler.
- Have written a program analysis or optimization; or have ever written formal semantics.
- Demonstrated software development skill
- Have used objects and pointers
- Have experience with one or more modern type-safe programming languages (for example C#, Java, OCaml, Haskell, Scheme, or Prolog)
- Have written a software program longer than 5,000 lines of code.
- Have used a version control system.
- C++ experience a plus.
- Strong abstraction, algorithmic, and software architecture skills.
- Have implemented a non-trivial algorithm involving advanced data structures or complex class hierarchies.
- Have demonstrated ability to reason about algorithm complexity.
- Strong communications skills and clarity of thought.
- Energy and drive!
To apply directly now: