TAG Worldwide CMD

From January to September 2014 I have been on a contract as a Javascript Developer for Tag Worldwide.

Tag Worldwide’s software is used by Sony, Intel, General Electric, DHL amongst others so reliability is paramount. Their development operations are textbook and only the highest standard of code is allowed into the final build, all contributions are closely monitored with regular code reviews and a battery of tests before the integration server builds the final software. I believe this discipline is best for both product quality and for developer piece of mind, and I would be sure to bring this level of quality control to any project.

I worked in a team of 5 javascript developers in the Front End team  creating v5 of Tag’s MRM saas platform. (Marketing Resource Management, MRM, provides the software infrastructure to support Marketing Operations Management, this includes asset management, contact management, calendar, process management for planning and synchronising marketing campaigns across media). The Front End team worked with a technology stack consisting of:

  • BackboneJS,
  • jQuery,
  • Handlebars,
  • Bootstrap/Less,
  • NodeJS,
  • Bespoke NoSQL JSON Server.

Using agile behaviour driven design (BDD), test driven development (TDD), continuous integration (CI) using Atlantean tool suite (Crucible, Stash, BitBucket, FishEye, Jenkins).

Because the software is a service only to subscribers there isn’t a way of showing the system directly but below is a 10 minute video of the output of the selenium test runner in Firefox, so you can see the many features and richness of the interface.

For more information please see The Tag CMD site

The Pix-Elf project

Please note that working example of these games will be posted soon, they are currently being adapted for mobile screens, if you are on a desktop you can see Roboscroller demo at http://catplusplus.org.uk/catpsite/plotpixels/canvas.html Thanks for your patience, please check back soon!

After completing the DOM based rendering system for the Smorgasbord project I was anxious to have a look at rendering using the HTML Canvas element.

I came accross an article on hacks.mozilla.org entitled ‘Faster Canvas Pixel Manipulation with Type Arrays’ – the article encourages users to ‘eschew the higher level methods for drawing images and primitives to a canvas’ and use typedarrays an the canvas’ imageData.

To get hands-on experience I implemented Pix Elf – a Javascript based rendering engine for games based on the methods outlined in the  article.

When you’re dealing with manipulating pixel arrays then you can look at techniques used in any other language where pixels are kept in arrays and ‘BLock Transfered’ to screen memory (BLiTted).

So this is where the fun starts, at a local charity shop I found copies of ‘Teach Yourself Game Programming in 21 Days’ by Andre LaMothe from 1994, ‘PC Game Programming Explorer‘ by Dave Roberts also from 1994 and ‘Tricks of the Game Programming Gurus‘ which is also from 1994 by LaMothe, Ratcliffe, Seminatore and Tyler. (1994 must have been a bumped year for DOS games programming books). I got all 3 for £1.50

teachyourselfgameprogramming
Cover of Teach Yourself Game Programming from 1994

These books pre-date windows technology like Direct-X and for the most part use C, which I like to code in – if I was building industrial strength 10,000 line programs I probably would pick C++ but, to quote Bartelby ‘I prefer not to’.

In the days of DOS you worked all your pixel data as character (byte) arrays then via a specially granted ‘long’ pointer you copy your pixel data directly to sreen memory to be converted into an image by the hardware – you can also read from the screen data which is why when multiwindow/multiprogramming environments came in this sort of thing had to stop for security reasons).

In order to get my hands dirty with the C, I installed dosbox the dos emulator – and found online a free version 5 of Microsoft C, now I could compile a C source file to target DOS, then copy the executable into the Dosbox directory and run it!

I followed each excersize faithfully and then followed up with a equivelent example in JavaScript, simultanuously building a small game library. The features of the game library from ‘Teach Yourself Game Programming in 21 Days’ are:

  • Animated Sprites and Sprite Sheets
  • Double Buffering
  • Scrolling backgrounds
  • Tiled scrolling backgrounds

    
From ‘Tricks of the Game Programming Gurus’ I got

  • Infinite (repeating) scrolling
  • Parallax scrolling

From this I took the assets that come with the book’s CD and built a side scrolling demo: RoboScroll

pixelf
A screenshot of RoboScroll

As my knowledge of C improved I went on to explore some intermediate C books, one in particular ‘C  Interfaces and Implementations‘ brought home again the importance of clean and usable API, so I decided to clean up the JavaScript library code, I christened it Pix-Elf, – a helper (like the Elves and the shoe maker tale) for Pixels.

I decided the nearest thing out there that I was aiming for was the API for SDL, I’d toyed with SDL and built a couple of example games from text-books (I used codeblocks on ubuntu as my IDE which also comes with some nice SDL example code and compiler settings). So I refactored Pix-Elf to have as similar API to SDL as it made sense with the features I have – this is not as easy as you might think, since JavaScript is asynchronous, and in game engines many things need to happen in the right order for things to work.

The test for this was to rebuilt the SDL game ‘Penguin Warrior’ from Loki softwares ‘Programming Linux Games‘ book.


pix_elf_penguin_warrior

screen shot of penguin warrior made with pix-elf

Aside from the fact that on Linux if Firefox is set gfx.xrender.enabled to true then the using the game assets from the book take 2 whole minutes to initialise the game (set it to false with about:config and it takes 4 seconds) then I got the basic game working fine.

Pix-Elf, like many of my projects, is a work in progress, so at the time of writing there’s still plenty of places it could be improved, but as a proof of concept it does seem pretty nippy as a bitmap renderer.

My CV:

20 Paxton House
Morecambe Street
SE17 1DS

Phone:
Please email me in the first instance

E-mail: zz.jobswork@googlemail.com

Download as pdf


Personal Information

Nationality: British

Technical Skills

Experienced JavaScript developer
(jQuery, BackboneJS, RequireJS)

Experienced web front-end developer
(HTML4/5, CSS2/3)

Experienced LAMP developer
(PHP,MySQL,XML,JSON)

Experienced web game developer
(Canvas, Dom, Box2D, LLJS)

Experienced OOP developer
(UML, Design Patterns)

Experienced in installing and configuring several Content Management Systems

Communication Skills

Delivered over 50 lectures and over 100 workshops to a variety of participants from primary school age to postgraduates to pensioners.

Presented a series of talks on web tech. at the Take Away Festival of New Media, Dana Centre, Science Museum.

Prepared and delivered several presentations to other staff members to determine technical strategy

Team working Skills

I usually work as part of a team, working with managers, technicians and administrators to ensure projects were finished on time to the right specifications

Organisational Skills

Developed administrative systems for artists co-operative,managing finances and legal status

Project managed many projects with budgets up to £30,000

Professional Experience

January 2014 – May 2014: Javascript Developer, Tag Worldwide

Developed v5 of Tag’s MRM saas platform. Worked across the technology stack:
BackboneJS, jQuery, Handlebars, Bootstrap/Less, NodeJS, Bespoke NoSQL JSON Server.

Agile behaviour driven design, test driven development, continuous integration
using Atlantean tool suite (Crucible, Stash, BitBucket, FishEye, Jenkins)

September 2009 – Present: P/T Web Developer, Goldsmiths

Created web based booking system for Media Equipment Centre, created ‘drop-in’ video component system for main college website, began conversion to SMACSS CSS architecture, created podcast management system, converted site to work with scalable CSS grid, created mobile optimised version of main college website.

March 2009: http://trunk.me.uk/site/

Implemented pop up video wall using JavaScript, site owners can easily update and categorise the video wall content. Site also features personalized pages for subscribers and viral ‘send this clip to a friend’ functionality

December 2008 – January 2009: ArthurCox

Promotional website for animation company. Features: pop-up streaming video, animated menus, automatic interlinking. Powered by simple to use WordPress CMS so editors can add new work samples and news stories easily

http://worldofarthurcox.co.uk/?cat=3

August 2008 – November 2008

Website for Cooltan Arts Charity. Features include: Photo-gallaries, Automatic Podcasting, Embedded Video, Ajax navigation. Designed to be updated daily by volunteers with minimal training. http://cooltanarts.org.uk

August 2007 – February 2008: Agraphia.

Adobe Flex based photo-gallery site with a PHP/MySQL/XML backend

http://www.agraphia.co.uk/

February 2007 – February 2008: Funny Farm.

ActionScript developer for Flash based CD-Rom to promote positive mental health, features Flash games, component architecture, XMLEFF layout engine,

mp3 audio, FLV video.

May 2006 – August 2007: Space Media, Hackney.

Technical Director for http://launchlab.org.uk. Front and back end development of the site, The site is a combination of social networking tools and recruitment website targeted at new entrants to the creative industries. Constructed with the Drupal Framework.

August 2005 – May 2006: Ravensbourne College of Design and

Communication, Chislehurst.

Lecturer and System’s Administrator, Preparing and delivering lectures and workshops in web application development on the MA Network Media Environments programme.Technician and system’s administrator to the Network Learning Lab, a spur off the wider college network for experimental projects providing web, database, streaming media and file-sharing services.

February 2001 – February 2003: Institute of Gerontology, King’s

College, London Designed and implemented the first online tool to facilitate interdisciplinary collaborative research at King’s College. The software allowed profiles of projects and researchers to be tagged and entered into a searchable and browse-able online database. Also designed and produced a manual and delivered training sessions to users.

March 1998 – September 2009: SafetyCat Ltd., London

Started this interactive digital media development and training company in partnership with Elvina Flower, developed business strategy, financial management and marketing. Achievements include:

  • Created 4 CD-ROM based educational games for children published in conjunction with a series of books produced in several European languages.

  • Participated in Tech-Nicks a 6 week arts event at the Lux Gallery, London creating a software tool to help disseminate documentation of the event. The Software was a very early podcasting prototype.

  • Took part in Open/e/d a collaborative project between the educational department of the Arts Council of England and the British Educational &Technology Agency (BECTA) to create an online resource for arts education.Developed an alternative visual interface for on-line resource and knowledge sharing.

  • Created ‘Know your rights’ kiosk used in the Millennium Dome Exhibition.

Education

9 GCSE’s (A) including Maths and English

4 A-levels Biology A, Chemistry B, Maths B, GeneralStudies B

1991-1994 BSc (Hons): BiologyManchester University

Areas Studied:

Molecular Biology, Physiology, Computer Simulation,

Complex Systems, Organisational Management

Science, Culture and Society and Evolutionary Theory

1995-1996:BTEC(HND) Multimedia Production – Lambeth College (Distinction)

2008-2011:MSc Computer Science – Birkbeck University of London (Merit)

Thesis: A Framework for Rapid Development of Games and Simulations for use in Web Based Virtual Learning Environments.

Interests and Activities

I have always been interested in combining my creativity with technology, In 1986 I was part of a trio of school pupils who developed a school based arcade game (much to the computer science teacher’s dismay as he disapproved of computers as entertainment) Since then I was waiting for digital media and the internet to be invented in order to indulge my interests.

I have worked on several of my own and other people’s art projects as well as volunteered on many community projects, the latest one at Cooltan Arts, a charity providing creative arts workshops mainly targeted to mental health service users.

In my spare time I have created websites, written short stories, worked on a novel, started an internet radio station and created several radio programs, read many books, leaned some TaiChi. I enjoy traveling and I feel this experience has broadened me as a person and improved my communication skills.

Reference

Available on request