This summer, Nirvana Insurance hosted a group of four software engineering interns in our Bangalore office, where they had the opportunity to contribute to our core product offering. As their internships come to an end, we’ll be spotlighting each of them and their contributions.
Abhinav Sharma
Abhinav is a senior at the Indian Institute of Technology, Delhi (IITD), pursuing a Bachelors of Technology (B.Tech) in Mathematics & Computing. Previously, he’s worked on blockchain development, machine learning (ML), deep learning (DL), and natural language processing (NLP). Currently, he’s trying his hand at backend development in Go! When he’s not coding, he’s either gaming or gyming.

The Project
Nirvana follows a monorepo approach and has a large repository to which everyone across the engineering organization contributes. A trunk-based development model resulted in high merge velocity on main and was causing friction. Developers had to babysit their pull requests (PRs) since another merge could invalidate their merge attempt. Resubmission attempts were also getting invalidated. Nirvana initially solved this problem by leveraging the new GitHub Merge Queue (GMQ) feature, but there were still issues around both speed-to-merge as well as cost efficiency when it came to running comprehensive continuous integration/continuous deployment (CI/CD) checks.
Abhinav was assigned the Nirvana Merge Queue (NMQ) project to build an in-house merge queue (MQ) solution and replace the GMQ altogether. The NMQ enhances the user experience as compared to the GMQ, along with a better overall observability using Datadog. It was to be developed in such a way that it matched/exceeded the capabilities of the GMQ. The main features of NMQ include:
- Speculative checks
- Instant merge on up-to-date PRs
- Notifications to users
- Crash recovery support
The Challenges
In the beginning of the internship, everything was new and Abhinav was not very familiar with Git and GitHub, let alone building an MQ. He also faced challenges while deriving the MQ algorithm as he aimed to facilitate speculative checks.
The initial phase of his internship was spent on mastering Git and GitHub utilities such as: webhooks, application programming interfaces (APIs), actions, and Amazon Web Services (AWS, i.e.: Lambda, Simple Queue Service (SQS), Elastic Container (ECS)), etc. It was a huge learning curve for Abhinav in a very short period of time.
The Solution
As Abhinav and his team designed the project, they thought about three properties they were looking to achieve:
- Reliability — merge PRs that pass checks individually
- Cost-effectiveness — minimum CI checks
- Velocity — maximize throughput and minimize latency
Due to practical constraints, the team could only prioritize two of these properties. They decided to focus more on reliability & velocity (while keeping cost-effectiveness in mind).

Abhinav and his team decided to run additional checks on a PR simultaneously, assuming the requests in front had merged. If the checks passed successfully, they merged requests directly without running another round of checks. Essentially, they changed the design so that PRs completed CI checks in parallel for faster merges. The team decided not to use databases to keep the architecture stateless and easy to maintain. Instead, they relied on storing information against GitHub PRs in the form of labels to provide strong crash recovery guarantees.
The end product was a much improved version and Abhinav was excited to have contributed and solved a real-world challenge that developers at Nirvana were experiencing. Due to Abhinav’s efforts, the NMQ is up and running and being used regularly by the whole company!
He’s now working on further enhancing the user experience, along with a UI dashboard creation, and monitoring metrics for NMQ using DataDog.

Why Nirvana
“I am a tech enthusiast and enjoy spending time writing code and building software. As an intern aspirant, I was determined to join a company where I could learn new skills and get my hands dirty on cutting-edge tech. Backed by a strong tech leadership & the latest tech stack, Nirvana provided an opportunity for professional growth along with work-life balance and competitive compensation. I am glad I applied to Nirvana and they selected me!”
Life at Nirvana
“The transition into the team was a very smooth experience. There was already a lot of documentation present to quickly ramp up and understand Nirvana’s tech stack and the product. The team I was working with was fully remote, so we had regular online meetings and huddles, where we brainstormed ideas related to the project, and had some really fruitful discussions. Also, I had a great experience with other teams working from the office. We had several parties, and some unofficial catch ups too. I even went for an indoor cricket match with all the other interns and employees. I felt very lucky to experience the vibrant culture at Nirvana first-hand!”

During his time at Nirvana, Abhinav benefited from the mentorship of Sarthak Agrawal, an alum of IITD and an engineer who previously completed the Nirvana internship before joining the staff in 2022. Sarthak has strong technical skills, and knows the Nirvana techstack inside out. Sarthak’s technical expertise paved the path for long discussions and debugging sessions while the two worked on the NMQ project together. Ultimately, Abhinav was able to thrive and succeed in his internship due to the valuable coaching he received from his mentor and other members of the Nirvana India developers team, as well his own hard work, curiosity, and commitment to excellence.
Thank you for your hard work this summer, Abhinav and we can’t wait to have you on the team after graduation!







