Tony Ibbs

Full name:Tony John Ibbs

Summary

I am an experienced programmer and toolsmith, with particular skills in Python, and significant experience in C. I write clear, easy to maintain code. I am adaptable, interested in and able to take on new fields and skills as necessary. I am self motivated, enthusiastic, able to work independently or as part of a team, and have good communication skills.

Technical summary

Active skills in: Python (since 1994), Flask, REST, shell scripting (Unix and Windows), HTML, revision control systems (including svn, bzr, hg, git, Perforce), Vim.

Significant past experience with: C (1988-2014) and C++, cross-compilation toolchains, embedded Linux (x86, MIPS, ARM), Busybox, Java (including JNI), Lull, TeX/LaTeX, Bacula (backup system). [X]Emacs, Eclipse, XML and XML-Schema, object-oriented database design and implementation.

I have experience with national and international standards, both in creating and using them. I have experience working within a successful ISO 9001 (TickIt) accredited system.

Employment history

January 2016 - present: Nokia, Senior Software Engineer

June 2014 - January 2016 : Velocix Ltd. (part of Alcatel-Lucent), Senior Software Engineer

In January 2016, Alcatel-Lucent became part of Nokia. Our office is part of IP Video.

I am employed primarily as a Python engineer, although with occasional use of other technologies (e.g., Makefiles, Bash, Javascript, C++, etc.). One of my roles is to be a company expert on Python.

We work in an agile environment using SCRUM.

Our team has worked on projects including:

  • Development of a REST API to the CDN management backend. Using Flask and the SQLAlchemy Core to interface to MySQL.
  • Work on a frontend UI to that REST API.
  • Developing a simple client-side library for using the REST interface.
  • Writing software to manage the configuation and state of applications. This involves at least basic knowledge of nginx, systemd.

As a team we specialise in being versatile and able to take on problems at short notice.

I am also the main local FOSS evaluator (pre-Nokia) / FOSS advisor (since).

April 2008 - May 2014 : Kynesim Ltd., Software Consultant

Work included:

  • Python consultancy for TeraView Ltd.; 1-3 months each year 2009 to 2014, working on user interfaces for their TeraHertz imaging hardware, using Enthought Traits and TraitsGUI, numpy and cython.
  • 2 weeks of consultancy in 2013 for Ellexus Ltd, evaluating and packaging an open source project using Java, bash and some Ant.
  • A 3-month project in 2012 for DisplayLink, completing the Manufacturing Test Tool for a new product. This involved C++ code on both Windows and the hardware, with extensive use of unit and mock testing, both in C++ and Python, in an agile work environment using scrum.
  • Development of kbus, a lightweight messaging system aimed particularly at embedded Linux platforms.
  • Development of muddle, a build management system especially aimed at constructing firmware for embedded systems.
  • Continued support for tstools (originally MPEG tools).
  • The Metropolitan Police RAW CCTV Replay project, which interprets data from video surveillance system disks using plugin modules, and outputs the results through a Gstreamer pipeline. I wrote the support for output to H.264 MP4 files and the initial proof-of-concept disk decode module, and also set up the open-source web presence for the project.
  • A test system for an embedded system, where the test server sends shared libraries to the client embedded system, and then instructs it to run functions from the shared library and report on the results (in a manner slightly similar to systems such as cunit).
  • Simulation of GMLAN diagnostic messages, allowing testing of software without needing an actual CAN connection, for instance by reading back a Vehicle Spy log, or playing a user-written script.
  • Support for the Amino AmiNET125 system, particularly related to adding support for Windows Media and Windows Media DRM.
  • General responsibility for setting up and maintaining Linux build trees within Kynesim, generally using muddle, and using Jenkins to run overnight builds.
  • Responsibility for in-house backup and restore systems (using Bacula).

2006 - April 2008: Amino Communications Ltd., Software Consultant

  • Continued support work for colleagues and customers (including extensions to the MPEG tools, new support for video codec regression testing, and ad-hoc preparation of system for EMC testing).
  • An initial key developer of the Amino AmiNET125 platform (based on the TI DaVinci chip).
  • Worked at most levels of the Amino software stack, from ioctls to Opera, including (amongst other things):
    • Initial investigation of the AmiNET125 system, including determining a suitable cross-compilation toolchain, working on initial NAND support, writing serial bootloaders and the UBL (user bootloader), integrating TI/MontaVista Linux changes, and initial graphics driver support.
    • Producing documentation on Amino build systems and other infrastructure.
    • Producing a simplified run-time system for the AminNET125 for use in codec testing, independently of the main Amino software stack.
    • Proposing, reaching consensus on, documenting and implementing a new mechanism for dealing with "picture-in-picture" issues (requiring intervention at various layers of the software stack).
    • Some work with Javascript and CSS, primarily in a test environment.

2004 - 2006: SJ Consulting Ltd., Software Consultant

  • Wrote MPEG tools for manipulating and reporting on MPEG TS, PS and ES streams.
  • Developed and maintained the AR7STB patchset, and related bootloader support. (The AR7STB was a variant of the TI AR7 evaluation platforms, developed by SJ.)
  • Extended the SJ browser, including rewriting the HTML parser (supporting a variant subset of HTML 3.2), and adding preview capabilities to allow page designers to inspect pages off-box.

SJ Consulting was bought by Amino Communications Ltd in January 2006

1998 - 2003: Laser-Scan, Senior Software Engineer

In 2003, I returned to Cambridge, and direct employment with Laser-Scan. I continued as one of the senior developers of the Gothic team. Amongst other tasks, I:

  • Participated in a Y2K project for UKHO (porting Fortran applications on an obsoleted computer to C on Sparc, whilst maintaining acceptable positional accuracy).
  • Provided technical support to OS(GB) and UKHO.
  • Was technical project manager and lead developer embedding Java in the Gothic GIS.
  • Acted as an internal advisor on Laser-Scan's contributions to the Open GIS Consortium on the production of GML (Geographic Markup Language).

In 2006, Laser-Scan renamed themselves as 1Spatial.

1991 - 1998: Glasgow University Department of Topographic Science, Research Assistant

In 1991 I relocated to Glasgow, but was offered the chance to continue with my Gothic development work, fully funded by Laser-Scan. As a University employee, I also:

  • Contributed to the JUGGLE project, embedding the Gothic GIS within Java.
  • Provided support for and acted as advisor on student GIS projects.
  • Participated in the University's VMS Managers Group and Unix System Support Group.
  • Installed and supported Emacs and TeX/LaTeX on the University VMS systems.

1980 - 1991: Laser-Scan Laboratories Ltd., Programmer then (1984) Senior Software Engineer

Significant tasks included:

  • Developing a cartographic digitising system.
  • Technical liaison officer to OS(GB) and MCE(RE).
  • Contributing to an Alvey project (with UCL) on 2.5d vision systems.
  • Core developer on cartographic software suite LAMPS.
  • One of the original three developers on the Gothic GIS.

Education

B.A. (Hons) Computing Science 1981 Cambridge University (converted to M.A. 1985)

Standards and open-source work

1988 - 1992: BS 7567 (NTF)

This was the UK national standard for geographic data transfer. I was invited onto the NTF Technical Group in 1988, and then onto the working committee to produce the British Standard. I coordinated the first drafts of the standard, and chaired the working group that produced Part 3 (the ISO 8211 binding). I was also a member of the raster working group.

1994 - 1996: ISO/IEC 8211:1994

ISO 8211 is a data standard format, used as the underlying mechanism for various other formats, including the IHO's DX90. I was one of the two people tasked with updating it. This involved a complete rewrite of the document. I also designed the simple textual language that we introduced to describe the contents (schema) of an ISO 8211 dataset.

I wrote an open-source Python library and application for handling ISO/IEC 8211 data, as an aid to understanding the standard, and to help debugging ISO 8211 datasets. Although I no longer maintain this myself, it still exists at http://py-iso8211.sourceforge.net/.

1992 - 1996: CEN TC 287/WG-3

TC 287 was an attempt to produce a European Standard for GIS data transfer. I was a member of Working Group 3, dealing with the actual transfer layer, and of sub-group 3.1, tasked with physical data transfer.

1999: mxTextTools metalanguage

mxTextTools is a package of fast text manipulation tools for use with Python. I wrote a simple language which can be used to represent mxTextTools tag tables in a more readable form.

2000 and later: Python Doc-SIG and docutils

Python's Doc-SIG was founded to look at documentation issues relating to the language. In 2000/2001, I was active in the discussions which led to the adoption of David Goodger's reStructuredText, and wrote the (initial version of) the reStructuredText Quick Reference.

2008 - 2014: tstools

I was the administrator and principal author of tstools, a set of open-source cross-platform command line tools for working with MPEG data. The emphasis is on relatively simple tools which concentrate on MPEG (H.264 and H.262) data packaged according to H.222 (i.e., TS or PS), with a particular interest in checking for conformance.

2009 - 2014: kbus and muddle

I was the administrator and principal author of kbus, a lightweight messaging system for embedded Linux systems. This is implemented via a kernel module, with unit tests in Python, and APIs in C, C++, Java and Python.

I was also the administrator and currently principle developer of muddle, a build management system developed specifically for production of embedded system software, particularly to meet our own needs within Kynesim. The system and build descriptions are written in Python.

Professional affiliations

I helped start the Cambridge Python Users Group (CamPUG) in 2007, and have been running it since then.

Recent conferences

I have attended and helped (mainly session chairing) at all of the UK Python conferences (including the two British EuroPython conferences).

I attended EuroSciPy 2014 and 2015, when it was in Cambridge.

I attended the CELF Embedded Linux Conference Europe, October 2010, in Cambridge, and had a lunchtime showcase table for KBUS, muddle and tstools.

Papers and presentations

KBUS: A simple messaging system
Tony J. Ibbs, Talk at EuroPython 2010.
JUGGLE Project Report
Stewart D. Macneill, Tony J. Ibbs, Malcolm P. Atkinson, University of Glasgow, 1996 (no longer available on-line, please ask if you wish a copy).
Progress in the standardisation of geographical data - a UK, European and International perspective
Tony J. Ibbs, Proceedings of Workshop IUSM WG on LIS/GIS: "Current status and challenges of Geoinformation systems", Hannover, 25-28 September 1995.
ISO 8211 encoding of NTF
T. J. Ibbs, paper from AGI NTF workshop, University of Nottingham, 28 September 1990.
The national transfer format and ISO 8211
Tony Ibbs and Sam Sowton, Mapping Awareness, 1990, vol. 4, no. 9, 41-45
Transferring cartographic data between systems
T. J. Ibbs, paper from SORSA Large Geographic Data Structure Symposium, Airlie, Virginia, USA, 26-29 March 1989.
Quadtree storage of vector data
T. J. Ibbs (principal author) and A. Stevens, International Journal of Geographical Information Systems, 1988, vol. 2, no. 1, 43-56

References

Available on request.

Personal

I am married, with two children. I am an avid reader (especially of SF and fantasy), and have an interest in eBooks and related technologies. I have in the past been on the organising committees of several science fiction conventions (including the 1988 UK National Convention) and ran the printing and signage office at the 2014 World Science Fiction Convention (Loncon3).