The Computer Science and Artificial Intelligence Laboratory at MIT is seeking an exceptional Software Engineer to help lead the software development effort in our new research initiative in partnership with Toyota. This initiative aims to develop new technologies for autonomous driving and advanced driver assistance systems. The Toyota-CAIL Joint Research Center is a collaboration between MIT, Toyota and Stanford University and will focus on developing advanced decision-making algorithms and systems that allow vehicles to perceive and navigate their surroundings safely, enabling autonomous driving and/or a parallel autonomy to augment a human driver. The project is led by Daniela Rus and Sertac Karaman.
The Software Engineer will work towards the development of autonomous vehicle technologies. S/he will be responsible for both leading the overall system design as well as implementation, testing and maintenance of individual between performing independent tasks and making suitable use of available students, ensuring overall program milestones are reached.
· Participate in software design and planning and provide overall conceptual and functional design of software for current and emerging active safety sensing and autonomous driving technologies.
· Collaborate with hardware and system engineers to implement sensor fusion, target tracking, and perception related algorithms and software, and develop real-time domain controller and PC based demonstrations systems.
· Modify/adapt existing C++ software to improve software design, adapt to new hardware/sensors/vehicle platforms and requirements, to improve performance.
· Design and implement new simulation and analysis tools from high-level functional specifications, and apply these tools to analyze system/software performance versus technical requirements.
· Develop software tests to verify capabilities and performance of systems.
· Evaluate new software to determine feasibility and desirability of incorporating its capabilities within autonomous driving.
· Support in-vehicle integration/debugging and on-road active safety testing and data collection efforts.
· Mentor Junior Engineers, students and other members of the research team, providing reviews of developed code modules and test results and final approval of the technical functionality.
· Provide feedback on conducted tests and code to guide team towards quality.
· Maintain an up to date awareness of relevant best practices in software engineering, sharing new developments with team members and implementing as appropriate.
· Identify advanced technologies that can be brought to the research group to provide new innovations.
· Research new algorithms and frameworks to drive the state of the art vehicle perception and localization.
· Develop technical specifications and documentation.
· Establish goals and remain on schedule, collaborating with team members to move the project to meet its objectives, even at times when there is no supervision or guidance.
· Coordinate project developments with Toyota and Stanford University research groups, including code-base management. Participate in meetings and travel to sponsor sites as necessary.
· Other duties as needed, required or assigned.
Qualifications & Skills Required:
· Bachelor’s Degree or higher in Computer Science, Robotics, Engineering or related field.
· Experience in autonomous driving algorithm and functional software development including creating and working with algorithm logic and software coding for controls, control systems or autonomous driving functions (e.g. autonomous steering, braking, throttle and shift controls for self-parking or auto cruise functions)
• Prior professional experience in design methodologies, design patterns, and architecture of large and complex software systems.
· Proficiency in multiple contemporary computer programming languages such as C/C++, Python, OpenCV, MATLAB, etc.
• Good understanding of Object Oriented Design, data structures, and language constructs.
· Proficiency in real-time, embedded applications.
• Knowledge of Linux and development on Linux systems.
· Proven system integration and software architecture skills
· Knowledge of modern software development practices and engineering tools.
• Excellent interpersonal and relationship management skills that promote teamwork, collaboration and cooperation amongst a wide diversity of faculty, staff, students and external stakeholders.
· Excellent verbal and written communication and presentation skills. Must be able to communicate collaboratively at the highest technical levels with clients, vendors, partners, and all levels of MIT staff.
· Strong project management and leadership skills; a demonstrated ability to coordinate software development efforts among multiple technical members as well as launch and deliver IT projects on time and within budget.
· Strong analytical and problem-solving skills.
• Ability to travel internationally and domestically up to 15%.
• Ability to work evenings, nights, and weekend as required in order to attend relevant meetings and teleconferences.
• Ability to deal with confidential information and/or issues using discretion and judgment.
· MS or Ph.D. in Computer Science, engineering or related field preferred.
• At least 5 years of professional experience in the full software development cycle (requirements analysis, conceptual and functional design, implementation, testing, and deployment).
· Experience with ROS (Robot Operating System), LCM, or other robotics middlewares.
• Experience with version control tools such as GIT or SVN.
• Experience working on robotic perception, target tracking, mapping, and SLAM.
• Experience with autonomous vehicle simulation environments.
Prof. Daniela Rus
Andrew (1956) and Erna Viterbi Professor
32-368, 32 Vassar St
Cambridge, MA 02139
robotics-worldwide mailing list
|Free forum by Nabble||Edit this page|