Home Cooking Piccies Business About

BBCi Digital Television

Dates : April 2002 - February 2005
Position Held: Software Developer

  1. Writing & maintaining Perl scripts to pick up content from providers
  2. Improving and using in house Perl modules
  3. Liaising with the Operations team to support live code
  4. Testing content on Interactive Platforms
  5. Documentation of new code and improvement of in house Perl modules

The applications that I develop along with the rest of the team all provide content for Digital Satellite, Freeview and Digital Cable. The three platforms work very differently to each other so its often the case that a different code base is used for each. My position includes tutoring newcomers to our methods by going over how we did things before we used Unit tests and how we do things now. They are normally sat with one of us for pair programming so that they can understand our designs quicker.

Most of my work over the past year has been creating a universal way that all providers can deliver content to us in XML. This includes the main news feed for all content on digital television. Included in our remit was to design an implement this feed so that the data can easily be used on the three platforms.

To run this project the team of four programmers including myself used a mixture of XP programming and Scrum methodology. Due to the nature and sheer size of the C3P project it forced us into three months of pure design including a highly complex InnoDB relational database done in MySQL. From that design came a month of spike code where we got the most basic of the functions up to see and confirm that the database can handle the throughput of the feed.

An XML based feed (the interactive content interface or iCI) was then finalised as much as possible and placed under version control. The main input to the iCI was attached to a Java servlet running in Tomcat that would validate the input against the XML schema. On the back of that was an OO perl processor. This would take all the information provided in the feed, combine it with the presentation layer to form a common description language (CDL). This CDL was then able to be processed into something that each platform understood.