Your primary responsibility is to participate in the entire software development lifecycle which includes reviewing requirements, doing design, implementing the design, unit testing and integration testing. You will also investigate design approaches and evaluate technical feasibility. To enable UX/UI design you may also be required to create wireframes to enable things such as A/B testing.
ESSENTIAL DUTIES AND RESPONSIBILITIES
- Design, develop and maintain large scale and distributed systems software.
- Investigates design approaches, prototypes concepts and evaluates technical feasibility.
- Continuously monitors industry for best practices and drives a culture of engineering excellence.
- Works in an Agile/Scrum environment and delivers highest quality software against aggressive schedules.
- Embraces engineering processes not just for compliance but because they drive improvements in quality, better customer experience and better product/market fit.
- Knows the value of robust design, unit testing, code review and integration testing and ensures these engineering practices are always followed.
- Creates requirement documentation and when possible automates the process of creating documents using tools such as Doxygen.
REQUIRED QUALIFICATIONS, EDUCATION and/or EXPERIENCE
- 0-2 years of experience in a software engineering role with a Masters degree or 2-5 years experience with a Bachelors degree.
- Very strong knowledge of C++ and other object oriented languages.
- Strong knowledge of Linux operating systems including internals of Linux.
- Has worked in an Agile/Scrum environment.
- Strong background in computer vision.
- Strong knowledge of software tools such as GIT, JIRA and build tools such as Make and CMake.
- Proven expertise in leveraging design patterns.
- Strong ability to describe design using UML.
- Works very well in a collaborative, fast paced, multidisciplinary environment, and thrives under pressure.
- Has a healthy risk taking appetite and shows the courage to fail early and cheap.
- Excellent written and verbal communication skills.
- Is able to visit clinical sites to understand the clinical context in which our products are used.
- Is able to work very well with geographically distributed teams and can work with teams from a very diverse background.
- Bachelor's degree in Computer Science, Computer Engineering or Electrical Engineering, or related fields preferred, or commensurate experience. Masters degree is preferred.
PREFERRED QUALIFICATIONS, EDUCATION and/or EXPERIENCE
- Experience with FDA regulated medical devices.
- Experience with testing frameworks like Google Test
- Experience with Robotics systems.
- Experience with Windows operating systems.
- Experience with cloud environments such as AWS.
- Familiar with CI / CD pipelines such as JIRA, GIT, Crucible, Jenkins, Bamboo, Artifactory, etc.