Research Associate in Computer Science
- Software Engineer to provide software design, implementation, testing, and maintenance of algorithms prototyped by robotics researchers.
- The focus would be on maintaining quality code base that can serve the integration of multiple research results from a multidisciplinary robotics research team.
- Manage common code bases, computing resources, and embedded systems that are used by a variety of researchers and students at all levels utilizing best practices in the field.
- Train research staff and students on the use of maintained code, latest technologies, and best practices in the software industry. Keep code base documented to the highest standards.
- Provide high quality research support and undertake internationally competitive research aimed at publication thereby contributing to the academic and research mission of the University.
- Khalifa University offers a uniquely collaborative scientific research environment and outstanding research facilities. You will have the opportunity to initiate and lead projects and work in interdisciplinary teams.
Key Roles & Responsibilities
To maintain and contribute to the development of multiple code bases written in C++, Python, and MATLAB. The code runs on physical robotics hardware, as well as simulation. Many researchers improve on existing algorithms, and contribute to the existing code base. Such evolution of the code base needs to be managed properly to maintain quality such that it is accessable to human coders, portable across platforms, and ready to keep evolving.
In summary, it is expected that the candidate would work on the following tasks:
- Understand program logic, and robotic context to be able to reason about software architecture.
- Integrate and test custom robot control code written by engineers and scientists who develop algorithms in C++/Python.
- Migrate existing code to a variety of computer hardware.
- To frequently upgrade code base to the latest robotics hardware while ensuring smooth transition with minimal impact on research activities.
- Run machine learning algorithms on high performance computers using common machine learning packages like TensorFlow and Keras.
- Write experimental procedure and validate developed algorithms practically.
As the code base evolves, and the research results mature, it is expected that the candidate would:
- Develop UI dashboards to be interfaced with robots.
- Expose algorithms to other international researchers through RESTful API or similar mechanisms for reproduction of results.
Qualifications & Experience
BSc Degree in Computer Science or Engineering. MSc Degree in Computer Science or Engineering is preferred.
- Must Have:
- Demonstrated experience with development for Linux using C++.
- Demonstrated experience in the design, development, and testing of computer software using the object-oriented paradigm adhering to clean code best practices.
- Demonstrated experience in writing software for embedded systems with RTOS.
- Experience with Linux CLI, Git, OS concepts, parallel programming, networking, database concepts, and data encoding/decoding is a requirement.
- Good to Have:
- Experience in computer algorithms.
- Experience with software testing.
- Experience with machine learning packages like tensorflow or keras.
- Experience in ROS.
- Experience with electromechanical prototyping of robots.
Should you require further assistance or if you face any issue with the online application, please feel to contact the Recruitment Team (firstname.lastname@example.org).
Primary Location: KUK – Khalifa University
Job: Research Associate
Job Type: Full-time