Software Engineer - Automatic Test Generation for Code

Job Summary

We are looking for an experienced software engineer who is good at abstract thinking and algorithm design. Knowledge of formal methods, program analysis and/or AI, machine learning technologies is a plus. You will join a dynamic core development team to enhance the Simulink Design Verifier product with brand new verification capabilities. This position offers you a great opportunity to learn many of our core technologies and apply your design and implementation skills to build parts of our product from ground up.

Responsibilities

  • Design and implement compiler passes for  semantics preserving transformations of code
  • Design scalable data-structures and algorithms for formal verification of embedded software
  • Design innovative applications of AI and machine learning technologies for verification of embedded software
  • Participate in architecture and design reviews
  • Develop high-quality implementations and integrate them into a large legacy code-base
  • Work closely with quality engineering, documentation, and program management to ensure consistently high quality software releases
  • Support customer facing engineers in timely resolution of customer issues

Minimum Qualifications

  • A bachelor's degree and 5 years of professional work experience (or a master's degree) is required.

Additional Qualifications

The ideal candidate will have the following minimum qualifications

  • Master's degree and 3 years of professional work experience, or a PhD degree is required
  • Experience with C++
  • Solid understanding of object-oriented design principles
  • Experience with large code bases
  • Excellent written and verbal communication

In addition the following skills are highly desirable:

  • Experience with compiler technologies, intermediate representations, graph theory, data/control flow analysis
  • Experience or knowledge of model checking algorithms, SAT solvers and symbolic execution
  • Experience or knowlege of AI, machine learning technologies
  • Experience or knowledge of functional programming languages

Why MathWorks?

It’s the chance to collaborate with bright, passionate people. It’s contributing to software products that make a difference in the world. And it’s being part of a company with an incredible commitment to doing the right thing – for each individual, our customers, and the local community.

MathWorks develops MATLAB and Simulink, the leading technical computing software used by engineers and scientists. The company employs 4500 people in 16 countries, with headquarters in Natick, Massachusetts, U.S.A. MathWorks is privately held and has been profitable every year since its founding in 1984.

Contact us if you need reasonable accommodation because of a disability in order to apply for a position.

The MathWorks, Inc. is an equal opportunity employer. We evaluate qualified applicants without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, veteran status, and other protected characteristics. View The EEO is the Law poster and its supplement.

The pay transparency policy is available here.

MathWorks participates in E-Verify. View the E-Verify posters here.

Apply Now