Senior Software Engineer
Job Summary
Design and implement new features in MathWorks’ core code generation infrastructure using object-oriented and compiler development skills. Develop compiler optimizations that will improve MathWorks’ code generation products. Deliver features using test-driven development, writing unit tests, and fast iterations. Participate in cross-team collaboration across multiple development teams. Responsible for all stages of software development including requirements specifications, architecture, design, implementation, and testing. Write detailed requirements, functional design, and architectural design specs for developing capabilities in the Simulink Code Inspector toolbox software. Work with customers and internal teams to do root cause analysis of software defects and provide fixes. Maintain expected quality metrics in relation to software faults. Write detailed bug reports.
May telecommute up to 40%.
Responsibilities
Qualifications
Required Qualifications:
Employer will accept a Master’s degree in Software Engineering, Computer Science, or related field and [2] two years of experience in the job offered or in a Senior Software Engineer-related occupation.
Alternatively, employer will accept a Bachelor’s degree in degree in Software Engineering, Computer Science, or related [5] five years of experience in the job offered or in a Senior Software Engineer-related occupation or a PhD in Software Engineering, Computer Science, or a related field no experience.
Position requires demonstrable experience with the following:
- C++ in a production environment;
- Familiarity with Object oriented or Object system programming;
- Diving into and work with large code bases with 30K lines or more;
- Program Static Analysis and Compiler Design – Understanding of dataflow and control flow analysis and experience with implementation of compiler components;
- Software Design Patterns – Using knowledge of design patterns to develop scalable software architectures; and
- Experience with abstraction, algorithmic, and software architecture skills including directed acyclic graph, n-ary trees, or related data structures.
Experience may be gained during graduate program. Will accept any suitable combination of education, training, and/or experience. Multiple positions available.