Alan Walendowski

About me
I'm a general-purpose programmer who has worked in the software industry since 1987. My roots are in device drivers, but I've been working in the higher levels for last few years (ok... decade). I've written servers for various purposes, built many web-enabled systems, and most recently have been doing a lot of mobile client programming. I'm a fast learner, like to dive into projects quickly, and can usually explain what I'm doing. My favorite description of what I do came from the founder of a startup where I worked: "I don't know what he does, all I know is he makes problems go away."

Experience
11/2006 - present Palo Alto Research Center, Palo Alto, CA
Senior Member of Research Staff I
  I'm currently a programmer in the Ubiquitous Computing Group at PARC, with a focus on context-aware computing and mobile interaction. A nice thing about PARC is that you get to work on many different kinds of projects. Here are some of the ones I've been involved in:
  • AECIS - an Android-based project for the military (under DARPA's Transformative Apps project).

    AECIS encompasses data gathering, inferencing, and a set of end user apps. I am working on the infrastructure aspect of AECIS, including our pub/sub sensor module system and our persistent store layer.

  • Meshin - a plugin for Outlook that extracts information from email messages and enables the user to quickly find details and relationships without explicit searching.

    Meshin builds a semantic graph of the information it extracts, and persists that in an RDF store built on top of a SQLite relational database. I worked on the query layer, which was responsible for building the SQL queries used to reassemble the RDF triples from the tables that represented them. Meshin is a C#/.Net project.

  • Magitti - a mobile leisure activity recommender. Magitti's goal was to learn a user's behavior and preferences, and recommend things that would be of interest to them given their location, the time, their preferences, the weather, their history, and other inputs. In a nutshell, the system consisted of a mobile client, a content database, and a server that ran the user models and recommendation engines. This was in 2006, pre-iPhone, and early in the Location-Based Services revolution.

    I built the client (Windows Mobile) and the server interface (Apache/Tomcat servlets to deal with our JSON protocol). Because the system had to be easy to use with one hand, we developed a custom UI that made heavy use of finger sweeps and pie menus. The native Windows Mobile widgets were very traditional, so I had to jump through some hoops to get Windows Mobile to behave the way we wanted.

    Here is a short video of Magitti.
[Java, C#, C++, Android, Windows Mobile, BlackBerry, SQL]
2002 - 2006 Bitsmith Consulting, Bay Area, CA
Programmer, Founder
  Worked on a variety of projects, including:
10/99 - 03/02 AT&T Labs, Menlo Park, CA
Programmer
  At AT&T, I was part of a small team that developed Hubbub, a sound-enhanced, mobile instant messenger that provided background awareness cues and supported lightweight, informal communication among distributed groups. I designed and implemented the server (Java with PostgreSQL for the database), the proxy servers, the Palm wireless client (Palm III/V series with the Omnisky wireless service), and worked on the Win32 client.

Also while at AT&T, I co-authored the book " Designing From Both Sides of the Screen: How Designers and Engineers Can Collaborate to Build Cooperative Technology" with Ellen Isaacs. In this book, we describe our strategy for user-centered design and use Hubbub's development as the primary example.
[C/PalmOS, Java/Solaris/Linux, C/Win32/MFC, Perl, PostgreSQL]
05/99 - 08/99 Communities.com / The Palace, Cupertino, CA
Programmer, Contractor
  One of Electric Communities' products was The Palace, a graphical chat application. The Palace server handles message fanout and permission enforcement, among other things. I worked on extending the server so that it could better handle large scale moderated events. This involved enabling servers to act as clients on other "master" servers, allowing chains of servers to be created. My task was to add the client emulation and message handling code that allows the servers to talk to each other. This code eventually became the Palace Arena.
[C/Linux]
07/98 - 05/99 3Dfx Interactive, San Jose, CA
Programmer, Contractor
  I designed and implemented a conformance test suite for 3Dfx's Glide graphics library. The test suite was intended to help verify that new revisions of either hardware or software behaved within tolerance of previous versions, and that the Glide API performed according to its documentation. It consisted of a series of image-based and self-checking tests, image comparison tools, and run-comparison tools, and was used successfully during the development of Glide 3.x to find bugs and deviations in the new software.
[C/Win32/Glide3]
01/97 - 06/98 Electric Communities, Cupertino, CA
Programmer
  EC was developing a Java-based secure, distributed virtual world application/platform. I wrote the text subsystem (first completely in Java, then in Java-wrapped native code for better performance), integrated our application with web browsers and the Win95/NT Explorer, and examined and fixed various performance problems (memory usage, speed, and networking) throughout the code base.
[Java/JNI/C/Win32]
10/96 - 01/97 Dimension X, San Francisco, CA
Programmer
  I was a developer on the Liquid Reality team. Liquid Reality was Dimension X's Java-based implementation of a VRML2.0 browser, plus a set of API extensions. I implemented 3D text, added DirectSound support, and handled the integration of Liquid Reality with web browsers (as an ActiveX control and as an applet).
[Java/C/Win32]
12/89 - 09/96 Anyware Fast, San Jose, CA
Founder / Partner
  I co-founded Anyware Fast as a consulting firm in 1989. We specialized in graphics-related projects, from device drivers to high level APIs. Most of our work was done for Sun Microsystems, although other customers included SCO, Ameritech, Any Channel, and Rendition. Anyware Fast was acquired by Dimension X in October of 1996.

The last few projects I worked on at Anyware Fast were:

  • Ported SunVideo (Sun's video conferencing application and support library) from Solaris 2.4 to Solaris 2.5.1. SunVideo lives on top of XIL (Sun's 2D imaging library), which was a moving target at the time.
    [C++/Solaris]

  • Wrote device and XIL drivers for the Hauppauge Win/TV family of video-in-a-window boards for Solaris x86. The XIL driver knew how to talk to the device driver, and provided a standard API that external developers could use to write applications around the Hauppauge boards.
    [C/C++/Solaris]

  • Wrote device drivers for The MediaVision ProGraphics 1024 and the ATI Graphics Ultra Pro video cards, in support of the X Windows port that we were also working on.
    [C/Solaris x86]

Prior to those, I was involved in various projects onsite at Sun. One highlight was being on the SunPHIGS (Sun's implementation of the PHIGS 3D ISO standard, a display list based graphics library) development team.
1989 - 1990 IBM, Kingston, NY
Programmer, Contractor
  Consulted for IBM (through Pencom) as a member of the GraPHIGS (IBM's PHIGS implementation) development team.
[C/Unix]
1987 - 1989 Computervision, Bedford, MA
Programmer
  I was a member of the graphics group for CADDS, a very large CAD/CAM application. I was also one of a three-person team responsible for bringing SunView to the Raster Technologies GX4000, a graphics accelerator with a firmware PHIGS implementation.
[C/SunOS]
Education
1987, B.A. Computer Science, Boston University, Boston, MA.
Patents
US Patent #6760754 (2004)
System, Method, and Apparatus for Communicating Via Sound Messages and Personal Sound Identifiers

US Patent #7043530 (2006)
System, Method and Apparatus for Communicating Via Instant Messaging
Publications
Chu, M.; Dalal, B.; Walendowski, A.; Begole, J. (2010)
Countertop Responsive Mirror: Supporting physical retail shopping for sellers, buyers and companions, Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI 2010)

Roberts, M. ; Ducheneaut, N. ; Begole, J. ; Partridge, K .; Price, R. , Bellotti, V. , Walendowski, A. , Rasmussen, P. (2008)
Scalable architecture for context-aware activity-detecting mobile recommendation systems, The IEEE International Symposium on a World of Wireless, Mobile and Multimedia Networks (WOWMOM 2008)

Bellotti, V. ; Begole, J. ; Chi, E. H. ; Ducheneaut, N. ; Fang, J. ; Isaacs, E. ; King, T. H. ; Newman, M. ; Partridge, K .; Price, R. ; Rasmussen, P. ; Roberts, M. ; Schiano, D. J. ; Walendowski, A. (2008)
Activity-based serendipitous recommendations with the Magitti mobile leisure guide, Proceedings of the Conference on Computer-Human Interaction (CHI) '08, ACM Press

Isaacs, E., Walendowski, A., and Ranganathan, D., (2002)
Hubbub: A sound-enhanced mobile instant messenger that supports awareness and opportunistic interactions, Proceedings of the Conference on Computer-Human Interaction (CHI) '02, ACM Press, pp. 179-186.

Isaacs, E. & Walendowski, A. (2001)
Designing from both sides of the screen: How designers and engineers can collaborate to build cooperative technology. New Riders.
References
Available upon request.

-walendo, 2011