Job Description
We are currently looking for a Principal Engineer to join our Core engineering team. In this role, you will lead engineering efforts including architecture, design, implementation, testing, and release on the Core Services Backend team. You will influence key technical decisions, set technical direction for products, and set an example of engineering excellence for the team. Additionally, you will promote and advocate for best practices, help level-up the organization, and serve as a technical expert willing to dig in where needed to ensure the success of the team!
Required Skills
- Expert knowledge of the full Software Development Lifecycle (SDLC) including system design, application development, testing, and operational stability.
- Have the ability to work in a fast paced, evolving environment, utilize an iterative method and flexible approach to enable rapid delivery.
- Ability to think strategically, drive innovation, and set high standards.
- Experience on building large-scale software projects and distributed, highly-available platforms.
- Solid understanding of agile methodologies such as CI/CD
- Solid background in backend engineering, including design principles and practices (SOLID, design patterns, distributed algorithms).
- Experience in Behavioral Driven Development, Domain Driven Design, Event Driven Programming and Functional Programming in Micro Service architecture.
- Expert knowledge in performance, scalability, enterprise system architecture, and engineering best practices.
- Proven experience in applying domain driven design to API-first, multi-tenant platform.
- Expert knowledge with server-side languages and frameworks (Java 17/Spring Boot, Spring Webflux)
- Experience of integration technologies such as GraphQL, REST, MQs
- Experience of NoSQL/SQL database technologies (MongoDB Atlas, Cassandra, Postgres)
- Experience of Message Streaming Platform, Kafka
- Experience of Distributed Caching Technologies such as Redis, Hazlecast
- Knowledge on HTTP Authentication protocols
- Experience building solutions on at least one Cloud (Private or Public) platform.
Good to Have
- Experience using Observability Stack - Open Telemetry, Prometheus, Jaeger or Tempo, Grafana
- Knowledge of Cloud design principles to make application cloud ready
- Experience with Docker containerization and orchestration
- AWS or Azure or GCP