Responsibilities
- Design, build, and test a software suite to orchestrate an autonomous, robotic laboratory platform
- Collaborate in the design and implementation of software architectures, workflow procedures and database schemas
- Develop clean and well-documented software interfaces that can be used by automated scripts, frontends, and other software modules
- Set up and maintain development and deployment infrastructure including cloud based Kubernetes clusters, on-premises servers, and local networks
- Compose and maintain good design and development documentation
- Plan and manage projects using project management tools such as Jira
- Lead and coach junior engineers in sub-projects
Minimum Requirements
- BS or higher in computer science, computer engineering, software engineering, or other related fields
- More than three years of relevant work experience and at least one year of experience leading projects
- Proficient in using Git or other version management tools in IDE like PyCharm
- Proficient in object-oriented language like Python
- Proficient in developing web applications using Flask and WebSocket
- Proficient in NoSQL database such as MongoDB
- Familiar with containerized development using frameworks such as Docker
- Experience with message queue frameworks, communication protocols and computer networks
- Experience in creating and maintaining reusable CI pipelines on GitLab
- Experience in writing unit tests and using testing frameworks (such as pytest)
- Self-motivated and able to work under minimal supervision
- Able to solve problems with methodical and critical thinking
Preferred Requirements
- Over 5 years project-based development experience
- Experience in microservice architecture and Kubernetes environments
- Experience in automated control, robotic systems, and computer vision
- Experience with frontend frameworks such as React