
Senior Software Engineer_Java, Distributed systems
- Bangalore, Karnataka
- Permanent
- Full-time
- Build high-quality, clean, scalable and reusable code by enforcing best practices around software engineering architecture and processes (Code Reviews, Unit testing, etc.)
- Work with the product owners to understand detailed requirements and own your code from design, implementation, test automation and delivery of high-quality product to our users.
- Implement software that is simple to use to allow customers to extend and customize the functionality to meet their specific needs
- Contribute to the design and implementation of new products and features while also enhancing the existing product suite
- Be a mentor for colleagues and help promote knowledge-sharing
- 5+ years of software development experience, with at least 2+ years working on distributed systems.
- Strong programming skills in Java, Scala, or Go (other JVM or systems languages also considered).
- Deep understanding of stream processing, event-driven architecture, and message brokers.
- Hands-on experience with Apache Kafka, Apache Flink, or similar technologies (e.g., Spark Streaming, Pulsar).
- Solid knowledge of systems design, data modeling, and microservices architecture.
- Experience with containerization and orchestration tools (e.g., Docker, Kubernetes).
- Proficiency in CI/CD pipelines and DevOps practices.
- Strong analytical and problem-solving skills.
- Knowledge of schema management tools (e.g., Confluent Schema Registry, Avro, Protobuf).
- Familiarity with observability tools like Prometheus, Grafana, Jaeger, or ELK stack.
- Contributions to open-source projects related to Kafka, Flink, or other distributed systems.
- Understanding of exactly-once processing and fault-tolerant stream processing semantics.