ianbull . com

About Me

My Blog

My Twitter Feed

My Photos

My GitHub Profile


I am an EclipseSource Distinguished Engineer with many years of experience in designing and implementing software systems. I have a long history with Open Source as an Eclipse committer, member of the Eclipse RT PMC, the Eclipse Planning Council and the Eclipse Architecture Council. My interests include software architecture, component oriented design, release engineering, human-computer interaction and just about everything related to software engineering. I hold a Bachelor and Master’s degree from the University of Waterloo and a PhD from the University of Victoria.

open source

Empowerment of individuals is a key part of what makes open source work, since in the end, innovations tend to come from small groups, not from large, structured efforts.

Tim O’Reilly

I work on several open source projects and serve on several councils / management committees around eclipse.org. I conduct training sessions, I’ve spoken at several conferences and I actively write about open source software on my blog.

Here is a collection of some open source projects I’ve led:

Java Bindings for V8 (J2V8)
J2V8 is a set of Java bindings for V8. J2V8 focuses on performance and tight integration with V8.

Eclipse provisioning platform (p2)
The p2 project is a sub-project of Equinox that focuses on provisioning technology for OSGi-based applications. Although p2 has specific support for installing Eclipse and Equinox-based applications, it includes a general-purpose provisioning infrastructure that can be used as the basis for provisioning solutions for a wide variety of software applications. (more)

Plug-in Dependency Visualization Tool
Understanding the transitive dependencies between your plug-ins (OSGi bundles) can be tricky. This tool, built on Zest, presents you with an interactive graph of all the dependencies in your system. (more)

Zest: the Visualization toolkit for Eclipse
I feel that creating interactive visualizations should not be any harder than creating other rich user interfaces. In particular, the API should not get in your way. I built Zest during my PhD to give software developers the ability to create highly interactive, graph based, visualizations using the same API as the Standard Widget Toolkit (SWT). (more)


2008 - Present: Principal Architect, EclipseSource
EclipseSource product representative, Principal Architect for Yoxos Enterprise and Eclipse Committer.

2009: Mentor, Google Summer of Code
Mentored several Eclipse.org students including the Dot4Zest project.

2007: Student, Google Summer of Code
Built and delivered the Eclipse Plug-in Dependency Visualization tool.

2003 - 2008: IBM Centers for Advanced Studies, Toronto ON
During my PhD studies, I spent the summers at IBM CAS working with several technical teams including the EMF and PDE teams.

2000: Trilogy Software, Austin TX
Developer on the automotive configuration management team.


2003 - 2008: PhD, Computer Science, University of Victoria
I studied the way we make sense of complex data through the use of information visualization. In particular, I looked at how visualizations can be modeled and auto-generated from rich data sources. I applied my techniques to several areas, including the domain of program comprehension. |pdf|

2001 - 2002: Master’s of Mathematics, University of Waterloo
I studied the different patterns of abstraction we use while building mental models of large software systems. Our team built tools and extracted the concrete architecture of several open source systems, including the Linux Kernal, Mozilla Web Browser, Pine Mail Reader and many more. |pdf|

1995 - 2000: Bachelor of Mathematics, Honours Computer Science, Software Engineering Option
I completed an Honours Computer Science degree with advanced courses in Real-Time Operating Systems, Computer Graphics and Compiler Construction.