Ashwin Bharambe: Resume

Personal Information

Current address
1212 W. Washington Ave, Apt #1, Sunnyvale, CA 94086, USA
Permanent address
'Ameya', 106/1 Rathinagar, Amravati, Maharashtra 444603, India
Email address
ashu [AT] cs.cmu.edu
Visa status
H-1B — buxfer.com

Interests

I like building products which people want to use. My research interests lie in large-scale distributed systems. Apart from that, I am interested in software engineering tools (e.g., code analysis, rewriting) and in Web applications.

Education

Carnegie Mellon University, Pittsburgh, Pennsylvania, USA
Ph.D. candidate, Computer Science Department, 2001-present
Currently on Leave of Absence
Carnegie Mellon University, Pittsburgh, Pennsylvania, USA
Masters in Computer Science, 2007
Indian Institute of Technology (IIT) Bombay, India
Bachelor of Technology in Computer Science and Engineering, 1997-2001 GPA 3.76/4.00
Tata Institute of Fundamental Research (TIFR), Bombay, India
NBHM Mathematics Nurture Program, 1998-2001
Equivalent of Master of Science in Mathematics

Academic Honors

  • Awarded the Carnegie Mellon School of Computer Science Graduate Fellowship (2001).
  • One of the six recipients, all over India, of the National Board of Higher Mathematics (NBHM) scholarship for exceptional performance in the Higher Mathematics Nurture Program for three successive years (1999, 2000, 2001).
  • Secured All India Rank 9 among more than 100,000 candidates who appeared for the IIT Joint Entrance Examination (1997).
  • Awarded Government of India merit scholarship through the National Talent Search Exam (1995).

Technical Skills

  • Languages:
    • Proficient in C, C++, Perl, PHP and Javascript.
    • Comfortable with Python, Ruby, Java and C#.
  • Platforms: Most comfortable with Linux. Reasonably familiar with Windows XP, Mac OS 10.4+ and iPhone OS 1.0+
  • Other Technologies: HTML, CSS, Tcl

Experience

Software Engineer, Facebook Inc. [ Nov '08 - present ]

Founder and CEO, Buxfer.com [ Dec '06 - Oct '08 ]

Buxfer.com is an online, shared tool for managing your personal and shared finances. Buxfer helps its users analyze their personal expenses as well as track and settle debts with friends. All of this is accessible over the web, through a cellphone, via email, or even IM!


I, along with my other co-founder, was responsible for the complete design and implementation of the site. The site has seen steady growth despite heavy competition, and has over 100,000 registered users today. As a part of running the business, I have learnt how to develop consumer-facing products, how much usability matters, why latency matters, how to market -- skills which are usually irrelevant in a research environment.

Graduate Research Assistant, Computer Science Department, CMU [ Oct '01 - Dec '06 ]

Currently on leave of absence

My research focuses on providing network and system support for distributed multi-party interactive applications with particular emphasis on online multi-player games. My goal is to design scalable, distributed and low-latency architectures for highly interactive games such as First Person Shooters (FPS) like Quake. To this end, I have designed and implemented a distributed middleware (called Colyseus) and modified the popular Quake 2 and Quake 3 FPS game engines to use our substrate for distributing game state across multiple servers or peers. In order to perform efficient distributed object lookups in Colyseus, I designed and implemented a novel routing protocol called Mercury which supports multi-dimensional range queries in peer-to-peer environments.

Summer Intern, Microsoft Research, Redmond, WA [ May '03 - Aug '03, and Jul '04 - Sep '04 ]

Analysis of the BitTorrent file distribution network under a wide variety of realistic environments. We find that the system performs near-optimally with respect a number of metrics including mean download time. Also designed and implemented a new scalable file distribution protocol code-named Cascade.

Some other work under an NDA.

Summer Intern, IBM T.J. Watson Research Center, Hawthorne, NY [ Jun '02 - Aug '02 ]

Worked on the design, implementation and evaluation of a generic peer-to-peer network architecture. Developed a distributed directory search application providing seamless peer-to-peer access across DSML/LDAP servers distributed over various administrative domains.

Summer Intern, IBM India Research Labs, New Delhi, India [ May '00 - Jul '00 ]

Worked with Dr. Alok Aggarwal on the VLSI complexity of generalized adders. Proved tight lower bounds on the Area required by these adders for any given time T.

Research Publications

  • Ashwin Bharambe, John R. Douceur, Jacob R. Lorch, Thomas Moscibroda, Jeffrey Pang, Srinivasan Seshan, Xinyu Zhuang: Donnybrook: Enabling Large-Scale, High-Speed, Peer-to-Peer Games, SIGCOMM 2008, Seattle, WA.
  • Ashwin Bharambe, Jeffrey Pang and Srinivasan Seshan: Colyseus: A Distributed Architecture for Online Multiplayer Games, NSDI 2006, San Jose, May 2006.
  • Ashwin Bharambe, Cormac Herley and Venkat Padmanabhan: Analyzing and Improving a BitTorrent Network's Performance Mechanisms, INFOCOM 2006, Barcelona, Spain.
  • Ashwin Bharambe, Sanjay Rao, Venkat Padmanabhan, Srinivasan Seshan and Hui Zhang: The Impact of Heterogeneous Bandwidth Constraints on DHT-Based Multicast Protocols, 4th International Workshop on P2P Systems (IPTPS) 2005.
  • Ashwin Bharambe, Venkat Padmanabhan and Srinivasan Seshan: Supporting Spectators in Online Multiplayer Games, HOTNETS-III, San Diego, November 2004.
  • Ashwin Bharambe, Mukesh Agrawal and Srinivasan Seshan: Mercury: Supporting Scalable Multi-Attribute Range Queries, SIGCOMM 2004, Portland, August 2004.
  • Ashwin Bharambe, Sanjay Rao and Srinivasan Seshan: MERCURY: A Scalable Publish-Subscribe System for Internet Games, First International Workshop on Network and System Support for Games [Netgames] 2002.
  • Aditya Akella, Ashwin Bharambe, Mike Reiter and Srinivasan Seshan: Detecting DDoS Attacks on ISP Networks, ACM SIGMOD/PODS Workshop on Management and Processing of Data Streams [MPDS] 2003.
  • Aditya Akella, Ashwin Bharambe, Suman Nath and Srinivasan Seshan: Multi-Modal Network Protocols: Adapting to Highly Variable Operating Conditions, CMU SCS Technical Report Number CMU-CS-02-170.
  • Mihai Budiu, Mahim Mishra, Ashwin Bharambe and Seth Goldstein: Peer-to-peer Hardware-Software Interfaces for Reconfigurable Fabrics, Tenth IEEE Symposium on Field-Programmable Custom Computing Machines [FCCM] 2002.

Major Research Projects

Distributed Denial-of-service Detection and Mitigation in ISP Networks [Fall 2002]

In this project, we build mechanisms to help an ISP network detect if its network as a whole is under attack or if a significant portion of its network is carrying traffic aimed at bringing down an external destination. In our scheme, routers in the ISP network construct profiles or fingerprints of traffic using stream-sampling algorithms. These fingerprints are used to identify anomalies and trigger suspicions about various flows. The suspicions are re-inforced by other routers to respond uniformly using RIO-based preferential packet dropping. Joint work with Aditya Akella, Prof. Srini Seshan and Prof. Mike Reiter.

Multi-modal Network Protocols [Spring 2002]

The goal of the project was to answer the following question: is it possible to redesign the traditional rigid protocols to take on very different operating modes when faced with different environments? We presented a case for such multi-modal protocols in our paper. Specifically, we discuss multi-modal reliability and routing. We show the feasibility of designing multi-modal protocols by describing how these protocols can make operating mode decisions and switch modes without additional overhead. Joint work with Aditya Akella, Suman Nath and Prof. Srinivasan Seshan.

RTREX: Trace and Replay Engine for Debugging Java RMI-Based Applications [Fall 2001]

Traditional methods for debugging distributed programs are ineffective because the asynchrony and unpredictability of the interconnecting network results in system state which is hard to reproduce. In this project, we designed and implemented a trace and replay based distributed debugger for the Java RMI system. In the replay phase, only one component is re-executed while the rest of the system is simulated using the traces recorded in the record phase. We thus manage to give a one-machine debugging perspective to the programmer. We found that the time and space overheads for debugging are acceptable. Joint work with Vahe Poladian.

Interfacing Traditional Microprocessors with Reconfigurable Cores [Fall 2001]

This project focused on designing and implementing a general-purpose interface between the two halves of an application that allows arbitrary computation to be placed on reconfigurable hardware. Our interface was based on compiler-generated stubs which allowed placing arbitrary procedures on the reconfigurable fabric. This was a significant departure from previous approaches that allowed only simple, call-free computation or leaf procedures to be placed on the reconfigurable hardware. Joint work with Mahim Mishra.

References

Available upon request.