Software Engineer
Apply NowCompany: The Mathworks
Location: Natick, MA 01760
Description:
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 Simulink; 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) performing development, testing, or technical support of controls-based simulation software.
Special Requirements:
[Expertise may be gained during Graduate program.]
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) performing development, testing, or technical support of controls-based simulation software.
Special Requirements:
- Demonstrated expertise in object-oriented design and analysis using MATLAB, Java or C++, including analyzing, re-architecting and refactoring a large legacy code base; and architecting code according to design patterns.
- Demonstrated expertise using JavaScript, HTML, CSS, and AngularJS for front-end programming to develop REST API and web services; developing web application communication interfaces in human- and machine-readable formats using JSON and XML; and performing automated testing using Java and JavaScript.
- Demonstrated expertise performing version control and continuous integration; in software configuration management and version control system management including analysis and implementation of branching strategies using Perforce, Git, or SVN; architecting SQL Server for inter-operation of diverse platforms; developing and optimizing database objects -- indexes, triggers, functions, and stored procedures; and developing front-end applications for data entry.
- Demonstrated expertise in the full software development life cycle (SDLC), including requirements gathering, functional design, architecture design, implementation, and testing.
[Expertise may be gained during Graduate program.]