Posted today
Software Engineer
The Mathworks - Natick, MA
Working under the direction of the Manager or Senior Team Lead, will be responsible for developing components of sophisticated software for small self-contained projects; implementing moderately-complex software features and components of MATLAB's help system; writing high quality code, designing extensible software using software engineering principles, patterns and methodologies, and conducting performance monitoring and integration; participating in components of software development projects of moderate scope, from requirements gathering and design to implementation, qualification and validation; assisting cross-functional team members in engineering, quality engineering, user experience, and documentation; increasing productivity and bringing quality features to market; and working with subject matter experts in pursuit of continuous improvement of designs and strategies.

Responsibilities

Qualifications

Minimum Qualifications:

Education and Experience:

Master's degree in Engineering, Computer Science, or a closely related field (or foreign education equivalent) and no experience.

OR

Bachelor's degree in Engineering, Computer Science, or a closely related field (or foreign education equivalent) and three (3) years of experience as a Software Engineer (or related occupation) programming in MATLAB and performing full-stack web application development within an Agile environment.

Special Requirements:
  • Demonstrated expertise in full-stack web application development within an Agile environment, including designing and developing rich internet content and reusable web components using JavaScript, HTML, CSS and Web Services patterns -- REST and AJAX.
  • Demonstrated expertise in object-oriented design and analysis in MATLAB, JavaScript and C++; and in unit and integration testing of web applications using CppUnit test frameworks.
  • Demonstrated expertise performing version control and continuous integration; and in software configuration management and version control system management, including analysis and implementation of branching strategies using Git, CVS, or Perforce.
  • Demonstrated expertise in the full software development life cycle (SDLC), including requirements gathering, functional design, architecture design, implementation, and testing, according to scrum-based Agile methodologies.

[Expertise may be gained during Graduate program.]