Tibs (Tony Ibbs)

Full name:Tony John Ibbs
Known as:Tibs

Summary

I am currently a Developer Educator at Aiven

I am an experienced programmer and toolsmith who writes clear, easy to maintain code, with current skills in Python, significant experience in C, and decent knowledge of Ruby. I have been using reStructuredText and markdown since they were invented, and am enthusiastic about Vale

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), shell scripting (bash and fish), Git, Vim, Emacs (and Evil mode), reStructuredText, markdown, Vale.

Significant past experience with: Ruby and Rails (2019-2021), C (1988-2014) and C++, cross-compilation toolchains, embedded Linux (x86, MIPS, ARM), Busybox, Flask, REST, Django, Java (including JNI), Lull, TeX/LaTeX, Bacula (backup system). XEmacs, Eclipse, XML and XML-Schema, Subversion, Bazaar, Mercurial and Perforce, object-oriented database design and implementation.

I have experience in creating and using national and international standards.

Employment history

January 2022 - present Aiven, Developer Educator

A change of career path, towards the documentation side of things.

So far, this includes working with Vale to lint our developer documentation, working on long content production for our blog, and learning more about the open source technologies that we provide, especially Apache Kafka® and Apache Flink®.

October 2020 - December 2021: Treasure Data, Staff Software Engineer

July 2019 - September 2020: Arm Treasure Data, Staff Software Engineer

Our team moved to Arm Treasure Data, to work on the backend web applications for Treasure Data's CDP (Customer Data Platform) using Ruby and Rails. Also using AWS Lambda functions, EC2, DynamoDB, Elasticsearch and Terraform.

In October 2020, Treasure Data became a separate company again.

September 2017 - present: Arm, Staff Software Engineer

A member of the Update Services team, using Python, Django and PostgreSQL to provide device registration, device management and firmware update services.

January 2016 - August 2017: 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 was part of IP Video.

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

We worked in an agile environment using SCRUM.

Projects our team worked on included:

  • 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 involved at least basic knowledge of nginx, systemd.

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

I was also the main local FOSS evaluator for Velocix, and a FOSS advisor for Nokia.

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 could 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 gave a talk on KBUS at EuroPython 2010.

I was also the administrator and principal 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 ran it until September 2022. In 2017 I was awarded a John Pinner Award for services to the UK Python community because of this work.

In 2018 I joined the Arm Toastmasters club and was a member until 2021.

Recent conferences

Recent talks (often with links to videos) can be found on github:

Papers

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 adult 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). Since 2018 I have been studying Chen style Taiji, although this was rather interrupted by the pandemic.