Hi, I’m Ajit Singh. I’m a software engineer and the author of singhajit.com. I started writing code professionally in 2012 and have worked with Scala, Java, Ruby, Node.js, JavaScript, C, and Android over the years.
If you’d like to follow along or stay in touch, you can find me on LinkedIn and on X as @Ajit5ingh. I share what I’m working on and chat with other developers there.
I started this blog because I enjoy working with different tech and wanted a place to write about what I learn. I write about the problems I solve, the mistakes I make, and the topics I find interesting, mostly system design, distributed systems, and AI. It’s my way of giving back to the community that has helped me grow.
Experience
Agoda (Feb 2023 to Present)
I joined Agoda in February 2023 as a Senior Software Engineer, and was promoted to Staff Software Engineer in February 2025. I currently work on the Content Platform, a read heavy system that powers a big part of the product. My focus is on scaling the content ecosystem so it stays fast and reliable as traffic grows.
The work is a good mix of distributed systems problems. The backend runs on Scala and Kotlin. We use a strong caching layer built on Couchbase and Dragonfly to keep response times low. Storage is split across MSSQL and Postgres, services find each other through Consul, everything runs on Kubernetes, and a set of internal Agoda tools holds the platform together.
ThoughtWorks (Aug 2012 to Feb 2023)
I spent over a decade at ThoughtWorks, growing from Intern to Lead Consultant across offices in Chennai and Gurugram. The variety was the best part. I built backend microservices in Java with Spring Boot and in Ruby on Rails, worked with Apache Solr for search, Sidekiq for background jobs, and used Oracle, Postgres, and Redis as data stores.
I also spent a long stretch on Android. One project I really enjoyed was a US airline app that crossed 10 million downloads on the Play Store, where we used Espresso, Robospice, and the MVP and MVVM patterns to keep the codebase testable. Another favorite was replacing a packaged search product with a custom search engine built on Apache Nutch as the crawler and Apache Solr for indexing and relevancy. Working as a consultant also let me see many different domains and teams, which shaped a lot of how I think about software today.
Open Source
Open source has been a big part of how I learn and give back. I have contributed to Google’s Espresso Android testing library by adding view matchers and view actions, and to the Ruby httparty gem with support for dynamic headers. I also author and maintain pairing_matrix, a Ruby gem that visualizes the pairing matrix of an agile or scrum team from commit history, with support for both GitHub and GitLab. I have also built smaller side projects, including Sherlock, an Android library that surfaces app crashes as notifications during development.
Thanks for stopping by. I hope you find something useful here, and feel free to join the conversation in the comments.