I currently work for Netronome in Cambridge.
I previously worked in research at ORL and the University of Cambridge Computer Laboratory; in product development at Virata, Marconi and BAE Systems; as a senior lecturer at the Royal School of Signals.
I have a BA and a PhD in computer science, both from the University of Cambridge.
You can find my most recent writing in a blog called On Food and Coding. (This is currenly on ice, since I'm rather too busy with other things, but I intend to return to it in the future. You can also find some related code in repositories on GitHub.)
Bugs with Long Tails (2013)
Software is fractal. What are the consequences? What should we do?
(This is a DRAFT. Comments very welcome.)
What can we learn from Bluffdale and Oak Ridge? (2012)
Analysis of an article by James Bamford on NSA surveillance in the USA.
Tyrants and Hackers (Draft Beta 3) (2011)
“I am just going outside and may be some time.”
A book about politics, history and hackers.
SQ minus EQ can predict programming aptitude (2007)
Proc 19th Annual workshop on Psychology of Programming, July 2007.
A measure of autism correlates surprisingly well with programming ability.
On the nature of pair programming (2007)
An older, longer version of the above pair-programming article.
Uolevi Nikula, Jorma Sajaniemi, Matti Tedre, Stuart Wray
Python and Roles of Variables in Introductory Programming (2007)
Journal of Information Technology Education, Vol 6, pp192-214, 2007.
A teaching experience report.
Is This Really “How to Make Wealth”? (2006)
Analysis of an essay by Paul Graham on start-ups and taxation.
COMP128: A birthday surprise (2003)
Cryptographic analysis of the GSM authentication algorithm.
For other material, see papers, patents, etc.