Projects
Design, project management and technical supervision of the build (performed by a freelance software developer) of the client library used to deliver the CBBC website.
Analysis of the benefits and risks of using Atomserver and Solr as a content delivery system for relational content. Involved creating a proof-of-concept PHP web application and performance testing with a realistic dataset.
Outlined a mechanism for TV programme makers to run a forum for scientists to work collaboratively on TV programme ideas.
MySQL database modelling the pages on bbc.co.uk mapped against the wikipedia vocabulary. Perl scripts are used to interface with a range of different BBC search mechanisms and use sets of rules to make deductions from page content. The database can be queried using an HTTP API or browsed with a simple HTML interface (implemeted in PHP). This is being used as a datasource for a joint data visualisation research project with the University of Westiminster.
Built a web application to assist BBC staff tagging content using DBpedia as a controlled vocabulary, allowing them to explore related terms in DBpedia. The application was written in PHP with a MySQL database with a perl script to populate the database from n-triples. Work involved database/query optimisation as some of the tables have tens of millions of rows.
Designed a service-layer application for the BBC's Service Oriented Architecture to provide a re-usable RESTful interface to relational databases to support data management applications.
Devised strategies and wrote scripts to extract information buried within tens of millions of files to measure usage (tens of thousands of instances) of re-usable applications. Aggregated results into excel pivot tables that technical managers could use to generate custom reports.
Provided technical assistance for BBC web producers to define a brief for the Public Catalog Foundation to collect and deliver data for a joint web project to make all the publically owned art available online. Work included requirements analysis, domain modelling and design of relational databases and data interchange formats.
Slates is a system used by the BBC to track projects and website launches. Responsible for requirement analysis, architecting, managing and building the system. Technically this involved reworking a legacy Oracle database, integrating inhouse server-side applications and adding a web-based data entry interface based on EXTJS and web-based reporting.
Designed and built a search system to allow teachers to find learning resources from all around the BBC website using a vocabulary of DBpedia terms. System consists of MySQL data warehouse, data harvesting processes written in Perl, HTTP API to fetch data from tables/views in LOAD DATA INFILE format, denormalised MySQL content delivery database, templates and configuration for in-house content-delivery application, HTML and JS front-end including AJAX autosuggest control. Work involved MySQL schema/query optimisation, caching optimisations, character set marshalling, automated incremental updates etc.
Analysis of requirements, assessment of candidate technologies and technical design for a framework to run automated QA on very large amounts of web content.
Built a web interface for easy clearance of commercial recordings and production library music by Indie TV companies working for the BBC. As well as the HTML/CSS/JS, the work involved integration of bbc.co.uk server-side applications and interfacing in-house publishing frameworks with Informix databases used by backoffice systems.
A complete redesign of the BBC disability website replacing hand-coded static content with CMS-generated pages and rich dynamic searching/listing functionality. This involved developing a CMS for use by blind editorial staff using JAWS screenreaders, and automated salvaging of legacy content into the CMS. Responsible for managing all technical aspects of project, implementing the CMS and implementing templating logic for all dynamic content.
Performed an assessment of candidate technologies for future development of the flagship CMS.
Wrote a series of guides on templating and configuring server-side applications for client-side developers and ran seminars for technical project managers and client-side developers.
Performed a strategic assessment of the implications of using Java EE vs LAMP (with perl, python or ruby) for server-side web applications.
Helped BBC and a Flash design/development company work together to produce a site with a mixture of HTML and Flash interfacing with database-driven authentication and personalisation services and a data analysis/aggregation service. Work included design/howto documentation with AS3 snippets, briefings for both developer teams and documentation for long-term maintenance.
Developed a set of AS3 libraries to interface flash apps with 15 re-usable server-side applications and flash bridge with a javascript API to allow uploads with progress feedback to take place in HTML/JS/AJAX-based web pages and applications.
API design and test-driven development of highscores remoting library and XML data structure mapping library in Actionscript 2. HTML documentation of APIs and code examples provided for design agency to use to implement flash games. Sample flash applications provided to demo APIs and as utilities for use by technical project manager.