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++
Experience
2021 — Now
2021 — Now
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.
2016 — 2021
2016 — 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 :)
2015 — 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.
2012 — 2015
2012 — 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.
2010 — 2012
2010 — 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.
Education
University of Southern California