I am a computer scientist. My background has provided me with practical software development experience, a solid theoretical foundation, and strong communication and organizational skills to tie them together.

I've worked on a variety of software development projects. The bulk of my software development experience has been in the design of custom software to work with large and complex 3D meshes in the context of laser-scanning and 3D-printing operations at Research Casting International. The result was rigorously tested software that performed significantly better than previous techniques. While most of my development work is closed source, some samples of my work are available on GitHub.

I have a PhD and MCS from the School of Computer Science at Carleton University. My work dealt with finding and exploiting patterns in queries on large amounts of data. Data is rarely accessed completely at random: there is almost always some kind of underlying pattern. By carefully designing how we store data, it is possible to take advantage of those patterns to drastically improve performance. Some patterns even allow us to answer queries in time that is independent of the size of the data set; this is critical when working with big data. I have authored a brief survey on this field of research.

I also have extensive teaching experience at the undergraduate level. I spent one year as a limited-term instructor in the School of Computer Science at Carleton University, in addition to several years of teaching there on a contract basis. I have taught a total of 11 courses to approximately 1,200 students on topics such as Python, Java, C++, discrete mathematics, algorithms, and cryptography. Some of my lectures are available on YouTube.

I can be reached via email at john@howat.ca. You may also wish to view my short resume or my academic curriculum vitae.