Overview: Join a dynamic team responsible for developing software for resource scheduling, planning, controls, and modeling of systems. The team consists of members with strong backgrounds in various algorithm development fields and C++ programming. Team members contribute to various projects in a multidisciplinary manner.
Roles & Responsibilities:
- Collaborate closely with teammates to design dynamic modeling and control methods.
- Develop system modeling algorithms and parameter estimation techniques.
- Implement control systems and ensure their performance meets project requirements.
- Maintain rigorous implementation of unit tests and integration tests based on functional requirements and implementation details.
- Participate in code reviews, design reviews, planning sessions, and general collaborative efforts.
- Work with other teams to understand and meet architectural, hardware, and platform requirements.
Knowledge, Skills, and Abilities:
- PhD with 2 years of professional experience, or BSc/MSc with 5 years of professional experience.
- Proficiency in C++ programming, including experience with C++20 standard libraries, a C++ unit testing framework (e.g., gtest), and build systems like CMake or Bazel.
- Skills in control system implementation, including optimal control algorithms (such as MPC or variations of LQR) with constraints for nonlinear, parameter-varying dynamical systems on hardware, and designing tests and metrics for evaluating control system performance.
- Experience in dynamic modeling, including modeling dynamic responses of MIMO systems in state-space representation, system identification and parameter estimation, and modeling 6DOF kinematics using quaternions or rotation matrices. Familiarity with vehicle dynamics (such as suspension, power steering, tire models, and propulsion models) is a plus.
Join the team to work on cutting-edge projects and contribute to the development of advanced systems in a collaborative and innovative environment!