changing lives.
We are looking for a Sr. Software Engineer to join a team responsible for developing and improving algorithms for automated treatment planning software for our Invisalign product. You will work in close collaboration with colleagues from a larger Treatment Planning group and with clinical experts, focusing on algorithmic and mathematical solutions for orthodontic problems. As a Sr. Software Engineer, you will participate in end-to-end software development, solve open-ended problems and implement complex algorithms in high quality modern C++, in a regulated environment.
In this role, you will…
- Write software components, perform code reviews, create tests and update the code based on the review results.
- Work in an agile team of developers and SQA engineers, and collaborate with other development teams.
- Interact closely with clinical experts, project managers, and product owners to understand problems, analyze specifications, deliver technical presentations and demos.
- Research and develop new features and create prototypes and proofs of concept.
- Participate in project planning, design and sizing, and code and design reviews.
- Investigate and implement bug fixes, and identify opportunities for reliability and performance improvements.
- Write high quality idiomatic C++ code with full test coverage.
- Write technical documentation for newly implemented functionality.
- Follow architectural, quality, and regulatory guidelines for medical device software development and uphold high standards of trust, responsibility, and professionalism.
- Identify/mitigate risks and participate in production monitoring and support as needed.
In this role, you’ll need …
- Bachelor’s degree or higher in software engineering or computer science
- 6+ years of experience in the role of C++ developer (writing and managing large code bases, proposing architectural solutions, OOP programming, TDD)
- Experience in working with version control systems and text editors for writing in XML, ReST, or markdown.
- General understanding of cloud computing.
- Interest in learning the problem domain.
- Ability to work in a regulated industry, follow a strict process and achieve high quality in every detail.
- Familiarity with modern technologies and ability to learn fast.
- Understanding 3D geometry and computational methods.
Nice to have …
- Knowledge of methods of non-linear optimization
- Knowledge of C# and Python
- Knowledge of AWS native services development (Lambda EC2, IAM, S3), Splunk, Terraform and Terragrunt
- Knowledge and understanding of build and deployment pipelines, such as Bamboo for the deployment scenarios.