Computer Programming

For more than twenty years, I have been a programmer; working through the rise of the Internet, then that of mobile devices and, now, of cloud computing. Like many programmers of my generation, I first began programming as a teenager and, all these years later, I still love to be creative with computer code. Mathematics, however, was where I focused my formal education.

It was at the University of Aberdeen, Scotland where I read Mathematics. My studies tended to focus on subjects from pure mathematics, such as number theory, calculus and graph theory; but also covered a few interesting applied topics, such as electromagnetism and general relativity. My thesis was on differentiation and the absolute continuity of real-valued functions (a topic in mathematical analysis) which you can read here.

Throughout my career as a programmer, I have worked on a variety of interesting technical problems, including: a word processor; a spreadsheet, with an accompanying interpreted programming language; an in-memory database for storing and querying multi-dimensional data (called cubes); and a statistical calculation web service for predicting the risk and returns of pension funds.

Originally from Scotland, I now live with my wife and daughter in the Pacific Northwest region of America, where I work as a programmer at Apple. I am one of the programmers of the word processor underlying the iWork suite of applications, running on both MacOS and iOS.

The "bh" in my name is pronounced like a "v". My name is the Scottish Gaelic spelling of the name "Gavin".


I am an amateur artist, working with acrylic paint on canvas and charcoal on paper. I tend to focus on figurative and portraits pieces that explore the internal, private, human experience.

You can see some of my art work here.

Since I am a programmer, you are probably not surprised to learn that I like to use technology in my painting. I make a lot of use of image editing and drawing software when exploring an idea and experimenting with different compositions and colour schemes.

Whether programming or painting, I enjoy understanding and creating things from first principles. As such, I like to mix my colours from a limited palette of primary colours, consisting of: French Ultramarine Blue, Pyrrole Red, Naples Yellow, Yellow Ochre and Lemon Yellow; along with Burnt Umber and Titanium White. Occasionally, if needed for really chromatic yellows and oranges, I also use Cadmium Yellow. Heavy body acrylic paints, produced by the English company Winsor and Newton, are my paints of choice.