Roles and Responsibility:
- System Architecture Design: Design overall software architecture of the robotic system, including both the high-level system architecture and the low-level control systems.
- Frontend Development: Develop user interfaces (UI) and user experience (UX) components for controlling and monitoring the robotic system. This involves designing intuitive interfaces for operators to interact with the robot.
- Backend Development: Create the backend infrastructure necessary for the robot to communicate with external systems, process data, and perform complex computations. This involves designing APIs, implementing communication protocols, and managing data storage.
- Embedded Systems Programming: Write firmware and low-level software to control the hardware components of the robot, such as motors, sensors, and actuators. This requires a strong understanding of real-time systems and hardware constraints.
- Algorithm Development: Develop algorithms for task scheduling, path planning and resource optimisation for use of robot in real-world scenario.
- Integration Testing: Integrate software components with the hardware platform and conducting thorough testing to ensure the system operates reliably in different environments and conditions.
- Continuous Integration and Deployment (CI/CD): Set up automated build, test, and deployment pipelines to streamline the development process and ensure the software is always up-to-date and bug-free.
- Performance Optimization: Identify performance bottlenecks in the software stack and optimizing code for speed, memory usage, and power efficiency. This involves profiling, debugging, and refactoring code as needed.
- Documentation: Document the software architecture, codebase, APIs, and development processes to facilitate collaboration among team members and ensure future maintainability.
- Collaboration: Collaborate with multidisciplinary teams comprising hardware engineers, mechanical engineers, and domain experts to develop integrated robotic systems that meet specific requirements and constraints.
Qualifications:
- Bachelor’s degree in Computer Science or relevant disciplines (achieved or on-track to get at least Second Upper Honour)
- Strong proficiency in Rust, Python, Java and Kotlin
- Strong proficiency in Javascript, HTML, and CSS
- Experience with React, Angular, React Native, NodeJS, NextJS
- Experience with MQTT, HTTP, REST & websocket, gRPC
- Experience with both SQL (MySQL/PostgreSQL), Redis and NoSQL (MongoDB)
- Familiarity with web frameworks such as Django, Flask
- Familiarity with robotic simulation environments and tools, such as ROS (Robot Operating System), ROS2, Gazebo, or similar frameworks.
- Having prior experience in developing web apps/platform that monitor and control robots will be a plus
- Having prior experience with Robotics Middleware Framework (RMF), particularly Romi-H related deployments will be a plus
- Strong understanding and experience with containerization and orchestration (e.g., Docker, Kubernetes).
- Familiar with Git and AWS services for deploying web applications on cloud.
- Strong problem-solving and debugging skills, with a keen attention to detail.
- Good technical and analytical skills to solve complex problems in the simplest possible way.
- Good interpersonal and communication skills and able to work in a fast paced and highly collaborative team
- Ability to effectively communicate technical concepts to non-technical stakeholders.
- Must be proficient in English. Preferably to know Chinese Mandarin (to communicate with Chinese partners and collaborators) and Bahasa Malay/Indonesia to communicate with remote developers’ team