I am currently a Principal Engineer at NerdWallet, where we bring clarity to personal finances. Most of my time is spent with the DevOps team, though I've been known to write Python Services, and to generally throw some strong opinions around.
From mid 2005 - early 2015, I was a Principal Engineer at Rhythm NewMedia. I contributed to the video streaming platform, performance testing infrastructure, automated functional testing, iPhone app development, video transcoding pipeline, and also wrote some load balancer iRules. I also managed to forklift our production environment from a co-located datacenter to AWS with minimal downtime.
From 2000 - mid 2005 I worked at Hewlett-Packard Laboratories, initially as a Research Scientist in the Workstation Performance Group and later on as a Senior Research Scientist in the Streaming Media Systems Group. Prior to that, I was an Assistant Professor (Research) with the Department of
Electrical and Computer Engineering
at Wayne State University,
affiliated with the Parallel
and Distributed Computing Laboratory.
I also spent a couple of exciting years as a wireline engineer for Halliburton Energy Services, Inc.. I was the Field Engineer on the Ed Holt.
More details are available in my resume.
I received my B.Tech. degree in Electrical Engineering from
the Indian Institute of
Technology, Bombay in 1991, and the M.S. and Ph.D. degrees in Computer
Engineering from Wayne State University,
in 1996 and 1998 respectively.
I have explored different technological areas, including (in reverse chronological order):
I have contributed to a number of publications in refereed conferences and journals on these topics.
- Streaming Media Servers
- Media Distribution and Caching Systems
- Handheld Devices
- Microprocessor Performance Measurement Tools
- Memory Compression
- Distributed Shared Memory Systems
- Parallelizing Compilers and Runtime Systems
- High Performance Networking
- Resource Allocation in Multiprocessor Systems
I am a co-inventor on the following patents (pending):
I am glad that not every paragraph on this page starts with 'I'.
- 8,687,016 Method and system for enhancing the quality of video prompts in an interactive media response system.
- 8,639,796 Monitoring the performance of a streaming media server using server-side and client-side measurements.
- 8,533,259 Efficient real-time stitching of multimedia files.
- 8,463,611 Method and system for improving the fidelity of a dialog system.
- 8,200,747 Session handoff of segmented media data.
- 7,660,877 Systems and methods in which a provider is selected to service content requested by a client device.
- 7,643,422 Dynamic trans-framing and trans-rating for interactive playback control.
- 7,613,768 Method and system for managing a streaming media service.
- 7,596,179 Reducing the resolution of media data.
- 7,266,099 Method for hand-off of a data session.
- 7,200,402 Method for handing off streaming media sessions between wireless base stations in a mobile streaming media system.
- 7,003,646 Efficiency in a memory management system.
- 6,996,618 Method for handing off multiple description streaming media sessions between servers in fixed and mobile streaming media systems.
- 6,941,378 Method for assigning a streaming media session to a server in fixed and mobile streaming media systems.
- 6,857,047 Memory compression for computer systems.
- 6,757,735 Method for distributing multiple description streams on servers in fixed and mobile streaming media systems.
- 6,654,867 Method and system to pre-fetch compressed memory blocks using pointers.
- 6,516,397 Virtual memory system utilizing data compression implemented through a device.