We have a unique tech culture where engineers are seen as problem solvers. The engineering org is divided into multiple pods and each pod is aligned to a particular business theme. It is a culture driven by logical debates & arguments rather than authority.
You get to solve hard technical problems at scale as well as have a significant impact on the lives of millions of entrepreneurs. You are expected to contribute to the solutioning of product problems as well as challenge existing solutions.
User base has grown 4x in the last 1 year and we have more than 10 million downloads of our app. Here are a few projects we have completed last year to scale our systems for this growth:
● We have developed API gateway aggregators using frameworks like Hystrix and spring-cloud-gateway for circuit breaking and parallel processing.
● Our serving microservices handle more than 100K RPM on normal days and during sale days this can go to 250K RPM. Being a consumer app, these systems have SLAs of ~10 ms
● Our distributed scheduler tracks more than 10 million shipments periodically from different partners and does async processing involving RDBMS.
● We use an in-house video streaming platform to support a wide variety of devices and networks
Our tech stack reflects the diverse requirements of our company:
● Mobile: Swift, Kotlin, RxJava, Dagger, MVVM with Data Binding, Mesh Design Library
● Backend: Java, Spring, MySQL, Hbase, Kafka, Spark, Elastic-Search, Airflow, Redshift, Delta Lake
● Web: ReactJS, Redux, NodeJS, Typescript
● Automation: RestAssured, Appium, Java, Jenkins, CircleCI
● Infrastructure: AWS, GCP
About the role
As a Director of Engineering, you are directly responsible for the success of your function. You would architect systems capable of serving our customers at scale with constant feature updates. In addition, you are the leader for engineers on the team and you contribute to team building. As a strong technologist, you care about code modularity, scalability, re-usability and instill best practices across your teams.
Required skill & Experience
- Bachelors/Masters/PhD in computer science with at least 10 years of professional experience.
- At-least 3 years’ experience in managing multiple software development teams.
- Proven track record of building teams from scratch and mentoring your team members to grow in their careers
- Experience in building large scale distributed Systems
- Deep understanding of transactional and NoSQL DBs
- Deep understanding of Messaging systems – kafka, RMQ etc.
- Good experience on cloud infrastructure - AWS, GCP etc
- Excellent teamwork skills, flexibility, and ability to handle multiple tasks