About the role
Summary:
You will work as a senior software engineer to redesign and evolve an enterprise platform which processes a VERY HIGH SCALE of data.
This platform ingests multiple terabytes of data every day, processes billions of transactions every month, and analyses multiple PETABYTES of data.
You will be responsible for writing backend business logic, building backend features, system design / redesign, cloud deployment, as well as building CI/CD pipelines for this platform.
You will engage and work directly with the client stakeholders as well as development teams located across multiple geographies.
You will have to be an expert with the technology ecosystem of this platform - Java, Springboot, Microservices, Event Driven Architecture, Kafka, AWS, NoSQL and have exceptional problem solving skills - DSA, OOPS, System Design - to join this engagement.
You need to be experienced in, as well as excited about, working on enterprise products which handle high scale. If you have not worked with production systems which ingest terabytes of data on a daily / weekly basis, you may be overwhelmed by the technical challenges of this project.
We believe this is one of the most exciting product engineering opportunities for seasoned software engineers; especially those who want to work with high scale, event driven, multi-tenant, multi-cloud, distributed systems.
Responsibilities:
Technically hands-on (Analysis, Design & Implementation) working on deliverables as required
Complete ownership of features assigned to work on in the product
Debate and elaborate functional and non-functional requirements with Product Management
Work on a solution approach and design with the team, get it reviewed by stakeholders before implementation
Generate artefacts such as functional spec and detailed design for the features owned/assigned
Implement complex features with high quality & follow TDD process
Communicate risks and progress in a timely manner to reporting supervisor
Mentor team members
Support the features delivered by debugging and creating RCA for production issues and subsequently work towards short term and long-term fix
Requirements:
Expertise with Java programming (collections framework, multi threading, OOPS) preferably with the recent versions of Java.
Expertise with Data Structures and Algorithms (solving DSA problems).
Expertise with Springboot and Microservices.
Expertise with event driven architecture concepts and asynchronous messaging, especially with Kafka.
Exceptional problem solving skills. You should be able to solve problems pertaining to data structures, object modelling, system design and even architecture based on your experience.
Must have experience of working with at least one cloud, preferably AWS
Should possess 5-8 years of development experience, primarily in building products for large enterprises.
Should possess excellent communication skills
Hands-on experience in building concurrent and/or parallelized, highly performant scalable applications.
Proven ability to root cause complex issues in scalable deployments
Working experience on SOA and TDD is an added advantage
Short version - Backend Engineers
Must-Have Skill-set
Strong Computer Science Fundamentals with 5-10 years of experience
Exposure to Cloud Native Application Development
Exposure to event-driven architecture with Big Data
Intermediate/Advanced Knowledge of Core Java
Springboot, Kafka
Nice-to-Have Skill-set
Apache Storm, MongoDB, PostGres, Redis, ETL
Golang, Python
Certified AWS Solution Architect