Principal Software Engineer

Posted 5hrs ago

Employment Information

Education
Salary
Experience
Job Type

Report this job

Job expired or something wrong with this job?

Job Description

Principal Software Engineer shaping and evolving the architecture using Distributed Domain Driven Design for DISCO's AI-powered legal solution. Influencing key architectural decisions and ensuring system scalability.

Responsibilities:

  • 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.
  • 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.
  • 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.

Requirements:

  • 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

Benefits:

  • Open, inclusive, and fun environment
  • Benefits, including medical, dental and vision insurance, as well as 401(k)
  • Competitive salary plus RSUs
  • Flexible PTO
  • Opportunity to be a part of a company that is revolutionizing the legal industry
  • Growth opportunities throughout the company