Research

Einstein

I recently graduated with a Ph.D. in Computer Science from the University of California - Los Angeles. My doctoral advisor was Eddie Kohler, and I was a proud member of the Readable Software Systems group, located in the TERTL lab. I am now working full-time in the New York City area. Before UCLA I earned an M.S. in Computer Science at the Georgia Institute of Technology, and a Diploma in Electrical and Computer Engineering at the Aristotle University, in Thessaloniki, Greece. This page describes the research projects I have worked on in reverse chronological order. I list the corresponding publications after each project's description; you can also see all my publications here. If you are just looking for a general introduction to my background, you can have a look at my resume.

Cloudfarm – Peer-to-peer storage for Web applications

In recent years we have seen an increasing interest in the construction of Web applications, with respect to both programming models and the supporting infrastructure. A new paradigm dubbed AJAX, for Asynchronous JavaScript And XML, has emerged as a way to combine existing building blocks into interactive Web applications that can directly compete with their desktop counterparts. However, deploying and supporting these applications is currently quite challenging. Significant investments in storage infrastructure are required of the application provider, since all application data has to be persistently stored and backed up at the provider’s data centers. We argue that peer-to-peer systems offer a unique alternative thanks to their scalability and robustness properties. We propose to push the storage responsibilities of the server farm into the “cloud” of clients, by employing an peer-to-peer system to delegate Web applications’ storage needs to end-user machines, in addition to provider infrastructure. To that end, I led the design and implementation of the Cloudfarm architecture and have shown its feasibility via controlled experiments on the PlanetLab testbed.

Collaborators

Publications

Hauberk Robustness and sharing incentives in the BitTorrent protocol

Peer-to-peer protocols are a promising technology for building scalable Internet applications. The BitTorrent protocol, in particular, has been shown to be very effective in Internet content distribution. Yet, BitTorrent’s key parameters are typically set based on heuristics or are intuition-based engineering choices. The goal of this project was to systematically investigate BitTorrent's built-in incentives and its robustness against malicious and free-riding peers. We conducted extensive measurements with diverse BitTorrent implementations in a controlled environment, running real experiments on the PlanetLab infrastructure. We also studied the impact of selfish BitTorrent clients, who abuse protocol mechanisms to maximize their download throughput while minimizing their own contributions to the system. We observed that the protocol is quite robust against such peers, preventing them from degrading the quality of service for compliant nodes, and we discussed the underlying design principles that enable this robust behavior. Our results are arguably applicable to a wider range of distributed software systems.

† see here if you are wondering what the project name stands for

Collaborators

Publications

Posters

Talks

  • June 19, 2008: Gave an invited talk on my work with BitTorrent and Cloudfarm at RESCOM 2008, in Saint Jean Cap Ferrat, France (talk slides).
  • June 2, 2006: Gave an invited talk on BitTorrent's robustness at the Introduction to Network Research seminar at UCI's Computer Science department (talk slides).
  • May 11, 2006: Gave a talk on BitTorrent's core mechanisms at UCLA's Advanced Internet Research graduate class (talk slides).
  • April 13, 2006: Gave a talk on BitTorrent's core mechanisms at UCLA's Peer-to-Peer Systems graduate class (talk slides) .

WebProfiler - Cooperative Diagnosis of Web Browsing Failures

The NetProfiler project at Microsoft Research aims to leverage end hosts, such as desktops and laptops PCs, to monitor the health of a network and assist in diagnosing failures. The goal is to provide end users with insight into the nature of network problems they encounter, and to provide network operators, such as consumer ISPs and enterprise IT departments, visibility into the end-user experience. During my Microsoft internship in the summer of 2006, I led the design and implementation of the WebProfiler component of the project, which aims to detect and diagnose failures experienced during Web browsing. It advocates a client-based cooperative approach for diagnosing Web browsing failures. To that end, we pooled together observations on the success or failure of Web accesses from multiple clients, which were then fed into a blame attribution algorithm. Our evaluation on a controlled testbed showed that WebProfiler can accurately diagnose 3.6 times more failures than possible from a single client's perspective. The practical aspects of the project involved buiding an add-on for Internet Explorer to produce observations at client machines, and authoring a centralized software component, communicating with a database, to store and analyze the collected observations.

Publications

Collaborators

Kimura Augmented office environment using peripheral displays

This project seeks to explore and evaluate the addition of visual peripheral displays to human-computer interfaces. Often discussed in the context of ubiquitous computing and augmented environments, these displays are envisioned as a natural extension to traditional computing in a work setting. This project aims to leverage projected displays as peripheral interfaces that complement existing focal work areas and support the natural flow of work across these two settings. The resulting system, Kimura, uses the peripheral displays to assist users in managing multiple "working contexts" coherent sets of tasks typically involving the use of multiple documents, tools, and communications with others. These contexts are visualized on the displays as a montage of images garnered from computer activity logs, and help remind the user of past actions. My involvement in the project wason the software engineering side. It included the investigation of different architecture alternatives for the system, and its refactoring to make it automatically distributable using J-Orchestra, a system for automatically partitioning and distributing existing Java programs. I also conducted extensive experiments to compare the different versions of the system with respect to code complexity and performance.

Collaborators

Publications

GAMMA Continuous evolution of software after deployment

This project proposes a new approach to improve software quality through continuous monitoring, analysis, and improvement of software systems after their deployment. The underlying motivation is a fundamental shift in the computing world, namely interconnection. We have moved from a situation characterized by a few software systems running on mostly disconnected computers to a situation in which software is virtually everywhere and runs on mostly-connected computers. Thank to this shift we now have the opportunity to leverage field data and resources in an effort to improve the way certain software engineering tasks are performed. Many such tasks had been limited by the fact they were being performed in-house, on developer platforms only, and using developer-provided inputs that may not be representative of the way the software is actually used in the field. To overcome these limitations, this project aims to use field data and resources to augment testing and debugging tasks. In particular, I worked on instrumenting applications on the HP iPAQ handheld device running Familiar Linux and the Opie graphical user environment. I authored an automated framework for receiving error reports from the field and visualizing them to assist developers in debugging.

Collaborators

Other Projects

Better Browser Support for Revisiting Web Pages
Around 2006 I became interested in Mozilla Firefox and its impressive extensibility framework. Since then, I have designed and implemented several extensions for Firefox, but my flagship one is Autocomplete Manager, which provides advanced features for the address Autocomplete component, such as customizing the sorting criterion and appearance of the suggestion popup. The main motivation is to improve the manner users can locate previously visited pages of interest. The extension has proven to be quite popular, with more than 160,000 downloads on the official Mozilla add-ons site so far. I am now in the process of releasing the extension as an open source project accepting contributions from whoever is interested in participating.

Teaching Programming to Gifted Pre-College Students
During the summers of 2004 and 2005 I was an instructor at Johns Hopkins' CTY summer program for gifted pre-college students. I taught the Introduction to Programming course both times, with invaluable help from my dedicated teaching assistants, Nunzio Thron and Stephen Pfetsch. We are now writing up a paper describing our experiences teaching computer programming concepts to such a special group of children, which we intend to submit to a journal on gifted education.

  • Nikitas Liogkas, and Stephen Pfetsch. Teaching Computer Programming to Talented Pre-College Students. In preparation.

Scheduling Mechanisms in Component Systems
During the first years of my Ph.D. I worked on developing adaptive techniques for scheduling tasks in a component software system. In particular, I designed and implemented such mechanisms in C++ at the Linux kernel level for Click, a modular software router. I have since transitioned to working on more application-level systems, but working in the kernel sure presents some unique challenges.

VRML 3D Scene Authoring
During my senior year at Aristotle University, I worked on designing and implementing a utility for authoring three-dimensional scenes comprised of VRML models. The resulting system, VRML Author, allows a user to load up VRML models in a 3D scene, manipulate (translate, rotate, scale) them at will, and save the result again in VRML format. The system is described in the following paper, as well as in my diploma thesis (in Greek).

Last Modified: February 15, 2009