# Abhishek Nigam > Principal Engineer Location: Sunnyvale, California, United States Profile: https://flows.cv/abhisheknigam I have been working with distributed systems and data infrastructure (event-driven routers, low latency graph queries, streaming) for the past 5+ years. The languages I am most comfortable in would have to be Java/C/C++ ## Work Experience ### Principal Engineer @ Microsoft Jan 2021 – Present | Mountain View, California, United States Ads run-time infrastructure unordered_map -> concurrent_unordered_map (reduce contention and improve performance) perf improvements related to string handling Architecture improvements -> http to http2 Re-factoring projects. ### Senior Staff Software Engineer @ Medallia Jan 2016 – Jan 2021 | San Francisco Bay Area Working on scaling infrastructure at Medallia: Logging infrastructure - UDP => TCP, anycast => load balancing (consistent hashing), logstash http plugin => more efficient/stable java http plugin, manual restarts => watchdog Tracing infrastructure - kafka, zipkin, linkerd plugin. Building Kafka as a service with libraries, admin management for topics, schema management ..... list goes on. Managed the team for several months working with different stakeholders across the company and handling morale issues. Mentoring couple of engineers on this journey :) ### Senior Software Engineer (Streams/kafka group) @ LinkedIn Jan 2015 – Jan 2016 | Mountain View Working on re-hauling the auditing infrastructure: a) Optimize how we do auditing using concurrent hash maps/RW locks and atomics to remove performance penalties with consumer auditing. b) Sharding our audit databases with sticky routing based on polling for metadata. c) Resolving performance issues related to batching of events. ### Senior Software Engineer @ LinkedIn Jan 2012 – Jan 2015 | Mountain View I work in the group responsible for serving the social connection graph. Improved the threading model in the storage engine used by graph node to optimize write latencies and reduce disk contention. Wrote a tool which interacts with the storage engine to create backups to minimize disk I/O and latencies. Working on performance improvements to efficiently manage segments in our log-structured storage to reduce paging. Worked on improving performance of our system by adding support for selectively retrying requests in our distributed cluster management and transport system called norbert. We improved the latencies of 99th percentile scatter gathers by about 20%. Added support in this layer for registering lightweight callbacks. This enabled new types of use cases which were truly parallel and did not incur the overhead of additional threads. Working on new query execution models on top of inverted indexes. Designed and implemented custom operators on top of lucene based system leveraging skip lists and heaps for speed and improved cache locality for a particular use case. Mentoring an intern to introduce stored procedure paradigm for higher flexibility in our system. Designed a hierarchical block manager on top of shared memory which had two kinds of blocks: metadata and data blocks. It would allow for both copy on write and read/write lock associated with each block which could be used for in place updating of blocks. Supported compaction/collection through a mark and sweep algorithm to find out which blocks are in use and which ones are not. Metadata blocks would be used to setup named pointers to other metadata or data blocks. Top-level root block would be a metadata block. The objective was to allow writer process and reader process to share data structures through this scheme. ### Member of Technical Staff @ Juniper Networks Jan 2010 – Jan 2012 Working in SSL VPN team. Implemented a novel way of parsing html content selectively using KMP search algorithm in a single pass using callbacks resulting in a more robust generic framework which gave 2-3 % improvement in performance. Prototyped a more efficient way of memory management in the rewriter to use memory chunks to improve memory footprint and reduce CPU cycles. Designed a framework for efficient re-use of connections. Fixing issues with some of the socket handling code. ### Senior Technical Yahoo! (cloud storage team) @ Yahoo! Jan 2009 – Jan 2010 Worked on a http router. Added scoping of requests using the user context passed through cookies. Modified the plugin for encrypting requests going cross-colo using symmetric key encryption. Fixed memory leaks and did some performance testing to uncover connection handling issues. ### Senior Software engineer (user profile platform) @ Rearden Commerce Jan 2008 – Jan 2009 Worked to create a new service for encompassing all the user profile handling. Designed and implemented a framework for using xml metadata for thread-local caching of service calls on the client. Implemented efficient re-use of database connections/transactions to support composition and nesting of finely grained APIs on the server. Designed and developed a generic framework for exposing profile fields in web services. ### Senior Software Engineer (infrastructure) @ PayPal Jan 2007 – Jan 2008 Worked in a small team to setup read-only replicas for reducing load on our payment processing database. I was involved in the design for caching web session transactions as well as the design for determining when read-only database access should occur from the web application. Designed and developed a C++ tool to do code analysis using custom traversal and callbacks for processing AT&T viz graph which contains pairs of functions which call each other. Designed and developed infrastructure for streaming events between PayPal and a new fraud engine. ### Software engineer @ PayPal Jan 2004 – Jan 2007 Designed and developed software to integrate a Java platform acquired by PayPal into the existing C++ web platform. Designed and developed batch programs managing ACH transactions. Part of a team which launched a new product in Germany for real-time ACH transactions. ## Education ### Masters in Computer Science in Computer Science University of Southern California ## Contact & Social - LinkedIn: https://linkedin.com/in/abhishek-nigam-8370891 --- Source: https://flows.cv/abhisheknigam JSON Resume: https://flows.cv/abhisheknigam/resume.json Last updated: 2026-04-12