My two main current fields of research are
I am a member of the editorial board of the IEEE magazine Computing in Science and Engineering, where I am in charge of the Scientific Programming department.
I am also one of the editors-in-chief of ReScience, an on-line journal dedicated to publishing replications of previously published computational studies.
Most of my teaching is about scientific computing and centered around reproducible research. This is in particular the topic of a MOOC that I have been working on with several colleagues.
As a method developer I do a lot of software development for my research, and I make all of this software available as Open Source code. I was one of the first scientists to adopt the Python language in 1994, and most of my software is written in Python.
In 1996, I was a founding member of the Matrix-SIG that created Numerical Python, the predecessor to today's NumPy. In 1997 I published ScientificPython, one of the first Python libraries for scientific computing (and unrelated to the younger SciPy library).
My most widely used software is the Molecular Modelling Toolkit, a Python library for molecular simulations, first published in 1997. It is used mainly by scientists developing new simulation and analysis methods, but also for developing end-user applications. If you use Chimera or nMOLDYN, to name but two examples, you are also using MMTK, perhaps without being aware of it.
Another step towards more trustworthy computational science is my digital scientific notation project Leibniz. It will permit writing down computational models as distinct entities from software that implements them. Such explicitly represented models can be analyzed, compared, and discussed in the scientific literature, and also become part of formal specifications for scientific software.