The Principal Software Engineer shapes and evolves our architecture using Distributed Domain Driven Design practices, ultimately ensuring the robustness and scalability of our systems. They influence architectural directions, and through project-embedded consultation. They guide teams to leverage best practices and design patterns.
● Architecture Leadership: Drives the definition and evolution of our architecture using Distributed Domain Driven Design practices. Acts as the strategy leader for key Architecture Quality Attributes (e.g., Availability, Performance, Scalability, Securibility) to inform architecture assessments. Provides project-embedded architecture consultation to promote best Practices, design patterns, and informed buy vs. build decisions.
● Platform Capability Enhancement: Contributes to the prioritization of platform capability improvements across feature and data platforms. Enhances the capture and communication of architecture descriptions through automation and innovative tools. Shepherds platform-wide strategies, including naming, protocol standards, and design patterns, to ensure ongoing value creation.
● Effective Communication: Communicates complex technical concepts effectively in both written and spoken forms, catering to both technical and non-technical audiences. Collaborates with stakeholders to build consensus when necessary, ensuring alignment on architectural decisions.
● 15+ years of relevant experience
● Experience with high volume distributed technical architectures with a high cost of failure, i.e. focus on reliability and availability
● Experience with some amount of ‘Big Data’ technologies such as: ElasticSearch, NoSQL Stores, Kafka, Columnar Databases, DataFlow or Pipeline Systems, Graph DataStores
● Experience with leveraging common infrastructure services like Enterprise Message Bus platforms, configuration services, Toggle management systems, and observability systems like Logging and Distributing Tracing Systems
● Experience with Domain Driven Design concepts and practices such as bounded contexts, event storming, specification by example, etc.
● Experience with design, implementation, and operation of data-intensive, distributed systems
● Ability to design and communicate external and internal architectural perspectives of well-encapsulated systems (e.g. Service Oriented Architecture, Docker-based Services, micro-services) using patterns and tools such as Architecture/Design Patterns and Sequence Diagrams
● Skilled using Continuous Integration and Continuous Deployment (CI/CD) with an emphasis on automation tools like Terraform, Jenkins, CodePipeline.
● Knowledge of API / Data Model Design and Implementation, including how to scale out, make highly available, or map to storage systems
● Knowledge of multiple software stacks
● Skilled with designing and operating software in a Cloud Provider such as AWS, Azure, or GCP
● Knowledge about algorithm development for intensive pipeline processing systems
● Possesses an understanding of how to design and develop from a security perspective
● Possesses an understanding of how to identify, select, and extend 3rd party components (Commercial or Open Source) that provide operational leverage but do not constrain product and engineering creativity
● Experience designing, modifying, and operating multi-tenant systems
● Experience using feature or release toggles as a code branching strategy
DISCO provides a cloud-native, artificial intelligence-powered legal solution that simplifies ediscovery, legal document review and case management for enterprises, law firms, legal services providers and governments. Our scalable, integrated solution enables legal departments to easily collect, process and review enterprise data that is relevant or potentially relevant to legal matters.
Are you ready to help us fulfill our mission to use technology to strengthen the rule of law? Join us!
We are an equal opportunity employer and value diversity. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.