Education
PhD, Mar 2008
Computing Science, Newcastle University, Newcastle upon Tyne
Thesis: Constructing a Tractable Reasoning Framework upon a Fine-Grained Structural Operational Semantics
The thesis work showed a method of proving a set of formal software
development rules to be logically sound with respect to the
semantics of a given programming language. As part of the work, a
novel set of rules were given that handle constructs for software
transactional memory, and a way of reasoning about expression
evaluation in non-atomic contexts was provided.
MPhil, Nov 2004
Computing Science, Newcastle University, Newcastle upon Tyne
Thesis: Features of BPEL Modelled via Structural Operational Semantics
The thesis work was an investigation of the semantics of various
features the WS-BPEL language, in particular its compensation
mechanism and its “link” synchronisation.
BSc, Jun 2001
Applied Computer Science, Ryerson University, Toronto
Thesis: Functional Ethernet and TCP/IP on FunOS
Career
Postdoc — since Oct 2011 — Department of Engineering, Aarhus University, Denmark
Initially at Ingeniørhøjskolen i Aarhus, which merged into AU in January 2011. Duties include research, teaching, software development, and team management
Teaching
- Discrete Mathematics, undergraduate course, last taught Autumn 2013
- Programming Language Paradigms, graduate course, last taught Spring 2013
- Specification of IT Systems, graduate course, last taught Winter 2013
Graduate Supervision
- Luís D. Couto. PhD student. Co-supervisor with Prof. Peter Gorm Larsen. Started October 2012.
- Chris Piechotta, Martin G. Olsen, and Adam E. Jensen. MSc Students. Co-supervisor with Prof. Peter Gorm Larsen. Completed June 2012.
Leadership
Technical Achievements
- Re-engineered the Maven build structure for Overture, including publication of core libraries to Maven Central
- Wrote parser for the CML language used in the COMPASS project (in GNU Bison, then ANTLR)
Research
- Semantics for co-simulation of models described in both discrete and continuous formalisms.
Research Associate — 2004–2011 — School of Computing Science, Newcastle University, UK
Initial position: Junior Research Associate
Teaching
- Understanding Programming Languages, undergraduate, assisting Prof. Cliff Jones, 2004–2011
Graduate Supervision
- John R. D. Hughes. PhD. Secondary supervisor with Prof. Cliff Jones. Completed 2011.
Research
- Semantic model for a subset of BPEL
- Semantic model of software transactional memory, and rules for formal development
- Concurrency modelling using Rely/Guarantee methods
- Temporal logic framework to model concurrency
Leadership
Software Engineer— 2002–2003 – Swurv.Holdings Inc., Toronto
- Java, Java servlets, Javascript.
- Approx. 250kloc web platform for email, browsing, instant messaging.
- Involved in all aspects of the platform code, and also had sysadmin/deployment duties.
Intermediate Systems Analyst — 1998–2002 — Communications and Computing Services, Ryerson University, Toronto
This position started as an internship, with me in charge of the residence network volunteers, and evolved into a full-time position as I took on more responsibility.
Technical
- Python, Perl, Shell, Oracle SQL, C
- Linux, OpenBSD, and Solaris administration, with a focus on Squid, ISC DHCPd, Bind, Apache
- Patches in the OpenBSD codebase on PCI enumeration, the Sun GEM ethernet drivers, and the web proxy protocol WCCP
Leadership
- Management of the volunteer student network setup team in the Pitman Hall residence.
- Proposal and implementation of the ``MACTracker'' DHCP registration system. Prototype went into production on the residence network in Autumn 1999, campus-wide version (rewrite from Python to Perl) in beta by September 2001 and in production by January 2002. System largely retired in April 2012.
- Proposal and partial implementation of network traffic recording system. Used SNMP to read network switch port statistics on a Class B subnet; generated approximately 1.5 million records/day.
Academic Peer Supporter — Aug 2000–Apr 2001 — Pitman Hall Residence, Ryerson University, Toronto
Responsibilities
- Organising monthly social events for my floor.
- Weekly “patrol”: set evenings where I was available to my group of four floors for academic advice, and with the master key in case of lockouts.
Researcher/Programmer — May–Aug 2000 — Swurv.Holdings Inc., Toronto
- Position held under a Canadian Natural Sciences and Engineering Research Council (NSERC) Undergraduate Student Research Award (USRA) for Industry
- Virtualised the X.Org XWindows frame buffer for network streaming
Researcher/Programmer — May–Aug 1999 — School of Computer Science, Ryerson University, Toronto
- Position held under a Canadian NSERC USRA for Academia
- Wrote device drivers for a Scheme-based OS (FunOS); used i386 Assembly, OCaml, and Scheme.
Technician/Systems Administrator — 1993–1997 — MicroAge/Muskoka.com, Bracebridge, Ontario
- Sales, computer repair, customer technical support, systems administration
- Continued consulting with them on systems administration until 2002