Quantel is a manufacturer of high-end visual effects and editing systems for film and television and I worked on the Enterprise sQ Broadcast System in the fast-to-air broadcast news and sports division. An iQ server system consists of several sQ Servers and a number of video editing stations.
My main focus for the first few years was working on the ISA Manager product. This is the middle-ware brains behind the iQ server system. Each ISA Manager maintained the video and audio frame allocation tables for each of its connected sQ servers. It used that information to present clip descriptions using space allocation metadata allowing different versions of a clip to occupy the same space on disk using Quantel's patented FrameMagic technology. Metadata relating to a each clip was also maintained in the directory.
The ISA Manager was written in Java and persisted information in a MySQL database. The multi-threaded application used CORBA (JacORB / TAO) as part of its API stack. The interface description was made available in IDL form. There was a public interface for the 3rd party clients and a private one for us. As the systems got bigger and busier we implemented a significant amount of resource pooling and were constantly tuning Java, JacORB and MySQL to get the most throughput.
The ISA Manager was a node on the network and like any other node it needed to be managed remotely. I designed an extensible SNMP module that allowed our application to link into the Windows SNMP Agent. I wrote a protocol tunnel which once written meant that no changes were ever needed when we wanted to add more entries to our MIB.
I packaged up Java, MySQL and the ISA Manager application for delivery using NSIS. The custom installer had over 10 custom pages to guide the user through the installation. The installer investigated the current state of the system and decided whether this was an upgrade or a downgrade. The installer didn't ask the user any questions as it already knew whether to apply or rollback schema changes on the database. Removing the human element meant that we could be sure that every installation was the same, something that was previously unheard of. I prototyped an installer for the GUI product using AdvancedInstaller which supported automatic remote upgrades.
My middle years were spent working on a system which centralised all ISA Managers at a site and made they're information available to disconnected sites. This was written in Java but it was written inside a Tomcat servlet container. The application utilised a lot of 3rd party applications to build the system and manage the resources. Hibernate (database persistence), C3PO (connection pooling), SpringFramework, JMS messaging with ActiveMQ, JTA transactions), JacORB (CORBA), JiBX (XML serialisation), JAX-RS (Restlet), SLF4J (logging) and several Apache projects (commons, logging, etc).
During my last years I worked on Quantel's flagship product, QTube. QTube is game-changing software that enables content creators, administrators and managers to interact with their content wherever they are and wherever their content is located. QTube is already in daily use transforming content creation by globalizing workflows for media organizations of all sizes around the world. I designed the cluster environment on which QTube sits in order to give you fault tolerance, load balancing and fail-over.
QTube is CPU bound and so it scales sideways. The clustered nature of the product meant that I had to write a client proxy to Sentinal License Manager using IIS Modules and IIS handlers written in C#. This allowed licenses to be shared across a cluster and accessed by any system through a REST interface. Session/license links were persisted inside MySQL. MySQL's C#/.NET driver's SessionProvider was incomplete so I rewrote and submitted it to Oracle. I'm now a registered Oracle Contributor. I did a full investigation of clustering using Windows with NLB and Linux with Corosync/Pacemaker (virtual IP address).
The bleeding edge interconnected nature of the technology meant that I would spend several weeks a year trouble shooting on customer sites in USA, Germany, Netherlands and UK.
I campaigned inside the company for developer tools and was successful in bringing bug tracking, wiki documentation and update blogs to the developers. Previously everything was (un)managed by email or unfindable in a Lotus Notes database. Away from work I organised the Christmas Party for the people who lived in Reading and occasionally brought cakes into the office when people looked like they needed cheering up.