Profile
A self-reliant software designer and engineer with eight years experience creating, researching and applying cutting-edge technology. Now seeking a challenging role in a positive environment where I can continue to develop new ideas.
Professional History
This web search start-up is developing A.I. technology that understands the concepts behind a question and uses inference to deliver a meaningful answer rather than a list of links.
True Knowledge Ltd.
UX Architect
Responsible for producing and overseeing the design of the main site and auxiliary products: including functional specifications, interaction designs, visual designs and feature implementation.
Directing front-end product development
Produced functional and visual designs for local business search application for two platforms: iPhone and web. Implemented web version in-house, overseeing out-sourced iPhone version.
Designed local business search product for iPhone and web
Implementation of the site required sophisticated techniques unfamiliar to the existing team. I informally trained the team in the necessary techniques and managed the developers responsible for creating production-quality code.
Managed front-end developers working to implement designs
Produced functional and visual designs for local business search application for two platforms: iPhone and web. Implemented web version in-house, overseeing out-sourced iPhone version.
Designed local business search product for iPhone and web
Interaction design, mobile app design, project scheduling and management
Skills
The multi-asset derivatives group of this international bank want to create a suite of web-based support tools using ASP.NET. My role is to design and implement the new tools.
BNP Paribas
Designer/Developer
The group's applications for defining and monitoring deals suffered from extremely poor usability, performance and stability: I was required to improve all three. Moreover, the tools were used concurrently by teams in London, New York and Tokyo, with occasionally conflicting requirements. I produced an interaction design for an improved version of the tools and an architectural design for their implementation.
Designed deal definition and monitoring tool
The implementation of the above designs, this was a complex, web-based project: competition from existing desktop tools meant ease of use and performance were critical and required extremely efficient client and server-side techniques. The implementation consisted of an ASP.NET server communicating with a Ajax/DHTML front-end (technologies previously unused within the group) and was very well received: it is currently being evaluated for expansion throughout the bank
Implemented deal definition and monitoring tool
Interaction design, architectural design, Ajax (JQuery, Firefox/IE6, Firebug, YSlow), ASP.NET
Skills
XenSource was a startup company commercializing the Xen hyper-visor project from Cambridge University. I was in charge of producing the graphical management tool.
XenSource Inc. (now Citrix Inc.)
User Interface Developer
Encapsulated a complicated research technology in an easy to use interface. I did all the interaction and graphic design and the majority of the programming on the project. Some design notes for the project can be found at www.jaimz.org/design/xensource.pdf
Designed and developed the user-interface for XenEnterprise 1.4 (not yet released)
When I joined the company, the existing interface was receiving a very bad response from beta-testers. I redesigned the interface and guided the developers who were implementing it. The redesign received a nine-out-of-ten average score in our beta program.
Oversaw redesign of existing interface
Worked on re-implementing cross-platform Java tool in C# using .NET 2.0 and WinForms. The result, XenCenter, is still Citrix's flagship tool for managing VMs
Worked on Windows management tool
Introduced a design phase into the development cycle at XenSource. Encouraged the use of design tools such as personas and context scenarios to engender a more disciplined approach to designing the management software.
Interaction Design and story-boarding
Produced a prototype of a web interface for the XenEnterprise product. The project uses RIA technologies such as Ajax and the OpenLaszlo framework.
Concept exploration for web interface
C#/WinForms, Java (Swing), DHTML, OpenLaszlo, Fireworks, Illustrator
Skills
Working in the distributed systems group on mobile, collaborative applications, I created advanced prototypes with a focus on academic publication and technology transfer.
Microsoft Research
Research Software Design Engineer
How do we make applications for collaborative groups characterized by rapid changes in connectivity, group membership, and synchrony? I created several prototype applications that explored questions of mobility, communication, consistency, and user-interface.
Worked on multi-synchronous collaborative applications
The framework promotes P2P collaboration and selective undo/redo as first class concepts. Applications made with the framework can run seamlessly across changing combinations of devices, users and synchrony. (.NET/C# - see publications - www.jaimz.org/joyce.html)
Created Joyce: an application programming framework for highly dynamic mobile, collaborative applications
The service tracks multi-application tasks using a persistent graph structure that reflects application commands and their invariant semantics. The record is used to provide automatic persistence and snapshots, and system-wide selective undo/redo (.NET/C# - Microsoft patent - see publications)
Created Activity Service: a daemon that keeps a semantically rich record of interaction within a system
Enables unconstrained, multi-synchronous concurrent editing. See design notes at www.jaimz.org/design/babble.pdf (.NET/C#, GDI+ - www.jaimz.org/babble.html)
Created Babble: a collaborative document editor
RUFiS supports reconciliation within and between files. (.NET/Java - Microsoft patent - see publications).
Worked on project RUFiS: a prototype replicated, undoable file system
Ported existing research prototype from Java to .NET. Advised MS product groups using the new code-base. (.NET/Java/C#)
Worked on project IceCube: a constraint oriented reconciliation engine.
Produced external academic papers, internal white-papers, and made presentations to lab staff and senior MS executives
Communicated research results to specialized and non-specialized audiences.
C# .NET, UI design, research (writing and delivering papers and presentations)
Skills
Publications
An Framework for Collaborative, Nomadic Applications (link)
James O'Brien, Marc Shapiro. In Proc. Conf. On Distributed Applications and Interoperable Systems (DAIS 2006)
Undo for Anyone, Anywhere, Anytime (link)
James O'Brien, Marc Shapiro. In Proc. SIGOPS European Workshop, Leuven, Belgium
Rufis: Mobile Data Sharing using a Generic, Constraint-oriented Reconciler (link)
Marc Shapiro, Nuno Preguçia, James O'Brien. In Proc. Conf. On Mobile Data Management (MDM 2004), Berkeley, CA (USA), Jan. 2004
Technical Skills
C#, C/C++, Javascript, OCaml, some F#
Programming
Illustrator; Fireworks; Hi-def. prototyping in DHTML, Java and Laszlo; lo-def. prototyping, story-boarding
Design
.NET (WinForms, GDI+, ASP.NET) — Java (Swing, Networking, Security) — MacOS X (XCode, Cocoa, Core Graphics)
Technologies
Personal Projects
Multi-synchronous web applications.
Metro aims to be a distributed platform that enables sophisticated, occasionally-connected applications
to run in a browser or RIA framework (Silverlight, Adobe AIR etc.) It addresses both the systems and UX
issues inherent in such applications.
Applications are written in .NET or Javascript. Systems components are written in Ocaml, D and F# — www.jaimz.org/research/metro.html
Metro