changing lives.
We are looking for a Software Engineer to join a team responsible for developing and improving algorithms for automated orthodontic 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 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, write documentation, 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.
- Research and develop new features and create prototypes and proofs of concept.
- Participate in project planning, sizing/estimation, design, architecture, code reviews 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.
- Identify/mitigate risks and participate in production monitoring and support as needed.
- Solve engineering and clinical problems of orthodontic treatment planning, implement 3D measurements and algorithms, integrate C++ components with cloud services.
In this role, you’ll need …
- Bachelor’s degree or higher in software engineering, computer science, or mathematics.
- 5+ years of experience in the role of C++ developer (writing and managing large code bases, 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.