I’m a software developer, consultant, educator, and speaker. I’ve been developing software since the mid-80’s and teaching software design since the late 1990’s.
A bit of both. I’ve got a Ph.D. in Software Engineering from Carnegie Mellon University, advised by David Garlan and Bill Scherlis. My dissertation introduced design fragments, a new way to specify and assure the correct use of frameworks through static analysis. I have publications on frameworks and software architecture in selective academic conferences, including OOPSLA and ICSE.
In the Spring of 2008 I was the co-instructor for the graduate software architecture course at Carnegie Mellon University, but otherwise my teaching has been in industry (banks, internet companies, NASA, etc.).
I have written production code for telephone switches, plugins for the Eclipse IDE, and everything for my own web dot-com startup (which was pretty similar to Wikipedia and founded in the same month, but you can guess how that panned out). I am somewhat dangerous at many levels of computing starting with building my own Linux boxes up through enterprise architecture and strategy. Full resume
I’m currently a software engineer at Google.
These days, mostly SATURN, a conference on software architecture and design, where I’ve been the program chair twice in recent years and I’m on the steering committee.
I’ve also been a program committee member for the Working International Conference on Software Architecture (WICSA), the International Conference on Software Maintenance (ICSM), and the European Conference on Software Architecture (ECSA). I’ve been a referee for IEEE Transactions on Software Engineering (TSE) and IEEE Software.
I’m trying to figure out how to build software better than we did yesterday. I’m a bit promethian in that once I understand something I like to share it with others. I’ve got a bunch of videos of me giving presentations, mostly about software development.
subscribe via RSS