Who we are
Domino has an ambitious vision for data science and machine learning. Our platform helps data science teams accelerate research, increase collaboration, and rapidly deploy predictive models. Our customers are the most sophisticated analytical organizations in the world, including Salesforce, Dell, RedHat, Gap, Bristol-Myers Squibb, and Bayer.
Backed by Sequoia Capital, Zetta Venture Partners, and Bloomberg Beta, Domino is at the epicenter of the data science revolution, helping companies build better cars, develop more effective medicine, or simply recommend the best song to play next.
The Modularization team is formed to increase engineering velocity at Domino by fully decoupling software assets and eliminating cross-team dependencies. Our customers are other engineering teams at Domino that will be able to fully own technical assets, their releases, quality, and uptime.
What we are building
The team is building a modularization framework composed of guidelines, templates and libraries that will facilitate building, deploying and operating executable artifacts. Some of these artifacts could be greenfield projects, others will be created by extracting them out of the “Nucleus” monolith. Some will be implemented in Scala, and others in Go.
The team is providing dedicated, exclusively focused capacity to investigate technical problems related to modularization and provide solutions that can be reused by other teams as needed.
What your impact will be
You can help address numerous technical challenges and difficulties both to decomposing our monolith, and to build, deploy, and operate a production-grade, mature set of microservices and other executable artifacts. Some of the specific projects are listed below:
- Creating microservice templates
- Microservices authentication & authorization
- Setting up build & test CI pipelines for microservices
- Integration with API gateways
- API versioning and backward compatibility
- Protocols for internal APIs (e.g. explore gRPC & protobuf)
- Integration with metrics, New Relic, logging
- Fast startup with no dependency on external services
- Well-behaved readiness and liveness checks
- Support for rolling upgrades without downtime
- Testing microservice using test doubles
- Automation frameworks for validating services and their deployment charts
What we look for in this role
- Experience designing for and managing Kubernetes clusters and workloads
- Experience building production grade software
- Experience designing for and working with container technologies
- Experience building systems native to the cloud (AWS, GCP, Azure)
- Experience with infrastructure automation (Terraform, CloudFormation, Helm)
- Deep knowledge of Linux system internals and primitives
- Experience with and knowledge of distributed systems
- Skilled at communicating technical matters and requirements
- Ability to work independently
- Knowledge of security concerns particular to cloud and container based architectures
- Prior experience with microservices and monolith decomposition
- A passion for engineering excellence