- Job: 30994-DCOL
Working under the direction of the Manager or Senior Team Lead, will be responsible for designing and developing sophisticated software; developing the next generation enterprise deployment platform for MATLAB-based analytics and Simulink-based simulation, which will adhere to the cloud-native development methodologies and will support a wide range of applications, with use cases ranging from simple MATLAB function-as-a-service or Simulink simulation-as-a-service to complex workflows involving complete ModelOps lifecycle; supporting the design and deployment of machine learning pipelines; monitoring deployed machine learning models and integrations with modem CI/CD systems to iteratively train and deploy these models; designing and implementing scalable and fault tolerant, large scale distributed system based on micro-services; participating in the development of distributed data storage technologies to support the analytics platform; collaborating with other engineers to build high quality software; working closely with a tight, agile team that iterates quickly to fulfill the dynamic needs of MathWorks enterprise customers; and working across a range of technologies, from C++ based distributed systems backed by C++ based data storage technologies, to working on consensus protocol implementations based on secure communication channels, to deploying these micro-services on container orchestration frameworks.
Education and Experience:
Master’s degree in Engineering, Computer Science, or a closely related field (or foreign education equivalent) and no experience.
- Demonstrated expertise performing containerization using Docker.
- Demonstrated expertise programming in C++ or MATLAB; and architecting code using design patterns.
- 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 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.]