Tim Cowlishaw

Curriculum Vitae

Skills and abilities


  • Data analysis and visualisation
  • Machine learning, natural language processing and statistical computing
  • Interaction design and user research
  • Full-stack web development

Languages (for computers):

Ruby, Haskell, Scala, Java, Javascript and Python (to a high standard).

I'm also familiar with some Erlang, R, Matlab / Octave and Scheme (as well as other lisp-like languages), and pride myself on being able to pick up new languages quickly.

Languages (for humans):

French, and a little Portuguese.

Other technologies and skills:

  • Statistical computing, machine learning, data mining, recommendation systems and natural language processing.
  • Extensive experience of database administration and design with various DBMSes and persistence solutions - predominantly PostgreSQL, Mysql, Redis, HBase and MongoDB.
  • Design and use of GIS systems (using PostGIS and OSGeo tools).
  • Linked Open Data and semantic web technologies and principles.
  • Use and administration of Hadoop map-reduce (and related projects, including Mahout and HBase) for 'big data' processing.
  • The usual front-end web development suspects (HTML, CSS, JQuery).
  • Rails, Rspec and Cucumber.
  • Test-driven and Behaviour-driven development.
  • Object-oriented and domain-driven design.
  • Linux systems administration (On Debian-like and Redhat-like distributions). Puppet, Monit, Munin, Ruby and Java web application deployment.

General / 'soft' skills:

I've plenty of experience of requirements gathering and agile project planning, and am a clear communicator of technical concepts (both in writing and speech). I also have plenty of experience working directly with clients, users, and other non-technical stakeholders.

When I'm not at the computer:

Cycling, Politics, Music (piano, a little guitar, making 'interesting' noises on computers and modular synthesizers, and promoting others who make interesting noises as part of More News From Nowhere).

Educational history

2010 to 2011: University College London — MSc Computer Science, with Distinction


  • Functional Programming
  • Artificial Intelligence
  • Information Retrieval.

Dissertation: “A domain-specific language for agent-based modelling in Haskell”

2009 to 2010: The Open University — Undergraduate Certificate in Mathematics

2002 to 2005: Ravensbourne College of Design and Communication — BA (Hons) Moving Image Design

I’ve also taken online courses in AI, Machine Learning and Compilers / PLT from Coursera / Stanford University and Caltech.

Work history

April 2016 - Present: Project Technologist / Senior Software Engineer at BBC Internet Research and Future Services

Working in a small, interdisciplinary team to design, prototype and deliver new products and services, I'm responsible for providing technical design, implementation and leadership.

May 2015 - March 2016: PhD Student and Teaching Assistant at University College London

An ultimately abortive attempt to gain a PhD in Computer Science: I worked in the Media Futures department investigating habits and routines of comupter use, and developing models of them to aid in information retrieval on the desktop.

I was also a Teaching Assistant on GC01 Introductory Programming, GI15 Information Retrieval and Data Mining, and a sessional lecturer on GC16 Functional Programming.

April 2012 to present: Itinerant software and data wonk-for-hire.

A variety of work for various clients including the BBC, Cabinet Office and several startups, including web design and development, data analysis and visualisation. See My homepage for some examples of recent work.

August 2011 to April 2012: Software engineer at Likely Ltd

December 2009 to December 2010: Developer at Harmonypark

March 2009 to December 2009: Developer at Headshift

June 2007 to March 2009: Developer at Media Service Provider

March 2006 to June 2007: Mobile content editor at Red Bee Media

July 2005 to March 2006: Junior designer at Abbey Road Interactive.