Software Engineer
Indiamart IntermeshSep, 2023 - Present2 yr 6 months
Reduced CPU usage from 60% to under 5% on a 4-core server by rearchitecting the system to eliminate costly Redis SCAN and pattern matching operations, replacing them with efficient direct key lookups using Redis GET. System shifted to dual key from single key. Designed and built a real-time data processing pipeline to ensure that each product is processed only once every 30 minutes, using two Kafka topics, Redis TTL, and Redis Keyspace Notifications. The system includes two Kafka consumers and one Redis listener, all implemented in Go. Used goroutines to asynchronously handle Redis notifications (fire-and-forget) without missing events. Employed worker pools in the second Kafka consumer to handle multiple API calls in parallel, significantly improving overall system throughput. Developed and deployed a Go-based REST API with separate Dev and Prod environments, featuring parallel processing using goroutines and channels, environment-based configuration, application-level IP-based rate limiting, and structured logging for observability. Implemented CI/CD pipelines for automated deployments, ensuring reliability and maintainability. Designed and implemented a Kafka pipeline where the Duplicate Image Detection API publishes data, and a Golang consumer processes packets to automatically delete duplicate images from products. Migrated a legacy PHP system to a modern React and Node.js architecture by bootstrapping a CRA-based React app, building RESTful APIs with Express.js, and collaborating with the server team to transition admin processes to the new platform. Owning the development and maintenance of multiple critical data refinement and modification processes that directly affect content shown on Indiamart.com.