Great products need great architecture. As a Platform Software Architect, you’ll help design and build the architecture that scales the business and can be confidently relied on. We are hiring people that approach design from a systems perspective and aspire to craft their systems well. A great candidate can deliver real customer value while pursuing architecture quality in availability, scalability, interoperability, modifiability, performance, security, and testability.
What You'll DoDesigning and operating platform-wide services such as:
- Event Bus and Event Sourcing capabilities that provide business and engineering leverage and efficiencies.
- Highly scalable and crazy performant search systems.
- Transactional or eventually consistent stores that provide well-encapsulated domain object semantics.
- Domain and data modeling that provides efficiency, scalability, and flexibility.
- Orchestrated scaleout data pipelines that can leverage serverless and containerized compute that balances cost, latency, and duration.
- Algorithmically intensive data engines that operate on streaming, large, or multi-tenant datasets.
- 7+ years of relevant experience.
- The 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.
- Experience with some amount of ‘Big Data’ technologies such as: ElasticSearch, NoSql Stores, Kafka, Columnar Databases, DataFlow or Pipeline Systems, Graph DataStores, data warehouses such as Snowflake.
- 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. (The book, Designing Data-Intensive Applications, is a good reference)
- Embrace the discipline of Site Reliability Engineering.
- Experience using Continuous Integration and Continuous Deployment (CI/CD) with an emphasis on a well-maintained testing pyramid.
- API and Data Model Design or Implementation experience, including how to scale out, make highly available, or map to storage systems.
- Experience with multiple software stacks, have opinions and preferences, and not be married to a specific stack.
- Experience designing and operating software in a Cloud Provider such as AWS, Azure, or GCP.
- Experience using Feature or Release Toggles in lieu of continuous delivery
- Experience designing, modifying, and operating multi-tenant systems.
- Knowledge about algorithm development for intensive pipeline processing systems.
- An understanding of how to design and develop from a Security Perspective.
- An understanding of how to identify, select, and extend 3rd Party Components (Commercial or Open Source) that provide operational leverage but does not constrain our product and engineering creativity.