< email > home


[myself] [and i] Not bad for a self-pic taken at arm's length at night

My name's Tim Baverstock. I'm approaching 42 at the time of writing, I'm a programmer and a Christian, I like sci-fi and singing, and I have at least one person who admires my dress sense (not necessarily my wife). I commute by cycle and train, and I finally have a real person to shack up with forever.

I'm currently working in Hammersmith at Shazam on their Android app, helping the other Android developers with a greater emphasis on automated testing (TDD, BDD, and probably ADHD in the process) and trying to get to grips with some sort of tech lead role in the liaison between the team who writes the music recognition code and the rest of the Android app.

Prior to that I worked for four years in Victoria at Google's mobile phone team, as a Software Engineer in Test - which became more of a conventional tools role, and then felt to be pushing me towards management. I learned a lot and still value the friendships I made and the time I spent there, but as one of my managers said a few months before closing the whole section I'd been working for, it wasn't the same company I joined.

I spent some ten happy years in Cambridge, at what was originally Shape Data, became EDS/Unigraphics, and became part of Siemens after I left. My main hat there was Toolsmith - administering the ClearCase source control systems, reengineering and maintaining the build system, and looking after the integration test system (which at some point started taking over 24 hours to run). I was involved with porting the system and its tests to Windows NT (ugh) and to Linux (yay), and did a couple of apparently pivotal real C++ developer projects in the system itself, involving the comparison of structured parts lists (so the users could identify precisely how two different configurations of car differed) and a way to export selected sections of those part lists into various different file formats. (I've been told my code in the latter was sufficiently efficient and flexible that it lasted several versions beyond its expected lifespan before it could be superseded.)

Before that, my job with Multi Media Machine involved C++ multimedia programming and Perl-based CGI scripting. (And also voicing, recording, and editing the voice-overs for the pub quiz questions and bingo calling!)

The code I remain most pleased with constitutes MMM's Kwizoke Plus karaoke system. (But please don't ask me for files, CDs, or how to hack the security: I'm not even in touch with MMM any more.)

I took the project over from MMM's former developer when it was essentially a desktop MIDI player, and developed it to saleable quality.

I had the fun of specifying, designing, and implementing a proprietory CD-ROM filing system (theoretically capable of storing up to 20,000 titles, some 8,600 when I last checked) because Amiga's own CD-ROM filing system was unreliable. This offered a measure of protection against pirating, futher improved by a separate hardware dongle.

I managed to explain to the computer how to automatically format the plain lyrics in real-time, both in timing and position on the screen: how to place the lines a useful and natural moment before they were due, and particularly how to jiggle the positioning and timing of display/removal if the preceeding set of lyrics were still onscreen. I was particularly pleased with it because I managed to codify the requirements into algebraic form, encode them in C, and have the thing working beautifully with minimal tinkering.

My main regrets are that I didn't manage to encode a `bouncing ball', and that I never tracked down the bug which made the top line of seven unusable, and caused it to hang if a line of lyrics which resolved into four screen lines was followed by a line which resolved into three screen lines (or perhaps the other way around). It would almost be worth offering to fix that for them, except that programming the Amiga brings me out in a rash.

I found it quite funny that MMM's main competitors' (SunFly's) later karaoke CDs (based on CD-G technology) appeared to have adopted the style of my algorithm's lyric timing, even though their original method had the advantage over mine of showing how quickly a word or syllable was supposed to be sung. (I never found out whether it was imitation or just new software of their own, but it looked suspiciously similar.)

Most of the CGI systems were based on a single pre-sorted ASCII records system with various configuration files for the presentation and data. Amongst the systems I wrote were Bolton Library's Database and the company's old CD ROM catalogue and shopping basket. I'd use a database now, obviously. I also wrote an email-based update system for the CPSA's rankings table.

< email > home

This page last changed Sun Jun 3 14:58:58 2012