As a Backend Engineer on the core team, you will help build the microservices, event-driven pipelines, and database integrations that power this engine. You will work alongside senior engineers to solve complex problems around scale, concurrency, and data consistency.
Who You Are
- You write clean, testable, and maintainable code.
- You are curious about system architecture and want to learn how to design for high scale.
- You are comfortable asking questions, admitting what you don't know, and learning new technologies quickly.
- You care about edge cases, error handling, and what happens when systems fail.
- Build & Scale Backend Services: Develop robust, high-performance microservices using Java and Spring Boot to handle real-time rule evaluation and incentive calculations.
- Event-Driven Development: Implement consumers and producers for our event bus (e.g., Google Pub/Sub, Kafka) to handle vehicle and program updates asynchronously.
- Database Optimization: Write and optimize complex SQL queries, design schemas, and manage data efficiently in PostgreSQL.
- Batch Processing: Assist in developing and maintaining batch processing pipelines (e.g., Dataflow/Beam) to handle large-scale program rollouts and data synchronization with our data warehouse (BigQuery).
- Ensure Quality & Correctness: Write comprehensive unit and integration tests. Since this system handles financial incentives, you will implement idempotent operations and precise data handling to ensure 100% accuracy.
- Collaborate: Participate in code reviews, technical design discussions, and work closely with product managers and QA to deliver features reliably.
- Experience: 3+ years of professional experience in backend software engineering.
- Core Tech: Strong proficiency in Java (Java 11/17 preferred) and the Spring Boot ecosystem.
- API Design: Proven experience building, securing, and scaling RESTful APIs and microservices.
- Databases: Solid understanding of relational databases (SQL). You should know how to write efficient queries, use indexes properly, and understand database transactions.
- Problem Solving: Strong grasp of data structures, algorithms, and basic Java concurrency.
- Best Practices: Experience with Git, CI/CD pipelines, JUnit/Mockito, and clean code principles.