Development Projects

This page lists the various public / open source and some private / commercial development projects that I am involved with. Usually as the sole developer unless otherwise noted.

In the main, most of the public / open source projects can be found via my GitHub profile page. Typically older projects will be PHP/Zend Framework and newer projects will be PHP/Laravel.

IXP Manager

IXP Manager is the biggest open source project I’m involved with – both as project manager and lead developer. It is a full-stack management system for running internet exchange points (IXPs) and it is use by over 200 IXPs worldwide (about 40% of active IXPs). You can find full details at its own website – www.ixpmanager.org.

The project was conceived by Nick Hilliard, INEX’s CTO, and myself around 2008 and we both contribute to it via INEX, in our own personal time and through Island Bridge Networks. It also has a sponsorship program which has yielded a full time developer, Yann Robin, who works on it via Nick and my company, Island Bridge Networks, on a strictly not-for-profit basis.

Billy – Telecoms and Utility Billing

Billy is a commercial project of Island Bridge Billing Systems that takes telecoms and utility billing into the 21st century. It’s currently in private beta with a number customers using it for production billing.

If you would like to know more about this, please contact me.

ViMbAdmin

ViMbAdmin (Virtual Mailbox Administration) is a Postfix Admin replacement which I started in 2011 to scratch an itch we had in Open Solutions. In the initial ~5 years, we continued to update and add new features to ViMbAdmin as exercises for new employees to get used to our coding practices.

It has a dedicated website – vimbadmin.net – and as of early 2019, we had recorded over 10,000 unique installations.

GitHub: https://github.com/opensolutions/ViMbAdmin (GPL3, Zend Framework)

OSS_SNMP

A PHP SNMP Library for People Who HATE SNMP, MIBs and OIDs! I always had a love/hate/hate/hate relationship with SNMP, but it’s something I need to use on a daily basis. OSS_SNMP provides a programmatic API to allow you to query defined OIDs easily from within PHP.

Packagist tells me that – as of early 2019 – is has nearly 6,000 installs and 50 GitHub forks. That’s not too shabby. For my use, it tends to just work. But as a caveat, it was written a number of years ago for PHP 5.4. If I had to write it today, it’s probably look very different. It’s still maintained and is a requirement for our IXP Manager project above.

GitHub: https://github.com/opensolutions/OSS_SNMP (BSD)

Tallystick

Tallystick started life as an internal training project in Open Solutions with a specific itch to scratch – tracking billable time for customer work. We use it daily in Island Bridge Networks and it works well to suit our needs.

There was a thought to commercialise it from Open Solutions and so tallystick.net exists and can be used free of charge. It turns out this is a crowded market space and my return on investment was a tool we use daily and well trained developers.

It’s not something I have open sourced and – considering the code base dates from 2012 – it’s unlikely that I would in its current form (Zend Framework).

NOCtools

A mixed bag of tools and utilities that are useful for NOC engineers. This project originally started out as a way to highlight and utilise my OSS_SNMP library (a PHP SNMP library for people who hate SNMP).

It since grew into a way to graphically present information on network topology that is normally difficult and cumbersome to do by logging into individual devices. Such information includes a discovered L2 topology by CDP, using this to present rapid-PVST or MST port roles and so forth.

GitHub: https://github.com/opensolutions/NOCtools (GPL3)

Bird’s Eye

A simple secure PHP micro service to provide some BIRD protocol / routing information via a HTTP API as JSON, with an optional built-in looking-glass implementation.

This is the winning project from the RIPE IXP Tools Hackaton just prior to RIPE73 in Madrid, Spain. Since the hackathon, substantial improvements have been made – including, in 2019 – added support for Bird v2.

The medium-term wish for Bird’s Eye is – despite my many hours in working on it – that we can consign it to the waste bin if and when Bird ships with a built-in API to replace this.

GitHub: https://github.com/inex/birdseye (MIT, Laravel Lumen)

Detector for Asymmetric Routing Over IXPs

A tool to detect asymmetric routing over IXPs using bi-directional traceroutes from RIPE Atlas probes. This is a project of the RIPE Atlas Interface Hackaton just prior to RIPE72 in Copenhagen, Denmark.

Live version: https://www.inex.ie/ard/

GitHub: https://github.com/inex/ixp-as (MIT, Laravel)

RADIUS Admin

An internal development project of Island Bridge Networks for our ISP customers using FreeRADIUS / MySQL for AAA. RADIUS Admin is a modern web-based application to allow customers to manage RADIUS accounts, monitor and graph data usage, throttle speeds where appropriate, suspend and cancel accounts, etc.

If you would like to know more about this, please contact me.

Nagios Plugins

A collection of about 20 Nagios plugins I have written / expanded / modified over the last 15 years or so. Open sourced with a BSD/BSD-like license for use across Open Solutions / INEX / Island Bridge Networks and their respective customers and for anyone else that may find them useful.

GitHub: https://github.com/barryo/nagios-plugins (BSD/BSD-like)

OpenVPNAdmin

Like ViMbAdmin and Tallystick above, OpenVPNAdmin was an internal Open Solutions project for training developers and scratching an itch. It allows us to manage OpenVPN server(s) and create client certificates via a web-based GUI. It has useful features such as one-time-use links, OpenVPN and Viscosity bundle generation, etc. Currently used across all Island Bridge Networks customers and maintained as an internal Island Bridge project. Zend Framework.

DirectNS

Like OpenVPNAdmin, this was an internal Open Solutions project for training developers and scratching another itch. It allows us to manage domains and resource records for PowerDNS / MySQL authoritative DNS server(s) via a web-based GUI. Currently used across all Island Bridge Networks customers and maintained as an internal Island Bridge project. Zend Framework.

Sample Commercial Projects

A selection of on-going and past commercial development projects that I have worked on (usually sole/lead developer and/or project manager):

  • CU 24/7: An secure online banking application for ICE – a credit union software company, now Inutity. This was in production from 2008 until early 2019 for ~20 credit unions around Ireland.
  • DMSAPP: a good example of one of my specialities: integrating legacy technologies with modern systems by creating API middleware. This particular application allowed modern billing systems integrate with a Nortel DMS100 to fetch call records. To put it in context, the DMS100’s means of commination was either X25 or, latterly, 10Base-T HD.
  • imag!ne: Back in the mid-2000’s I worked for imag!ne as their ISP System Manager – an all encompassing role – to build an ADSL platform for 30k customers, online portals, content filtering, email hosting, VoIP services. There were also some other projects including a virtual money wallet in conjunction with some mobile operators, sits to support Kit4Kids – a GAA link up, virtual office VoIP services. Additional supported the voice engineer on international VoIP trunks, mobile gateways, mobile number portability database and applications.
  • IPv6Ready: An INEX project from 2011. Probably a little bit too early. As well as the public facing aspects of IPv6Ready.ie, there are also back end administrative tools.
  • SavvyBasket: a mobile app coupon tool using Cordova to distribute to Android and iOS and a Laravel backend. Supports distributing coupons by user-profile, location, etc. and reporting which includes views / impressions, detail clicks and redemption.
  • SeniorsMoney: Another mid-2000’s project involving computer-telephony integration (CTI). An Asterisk application server with a web frontend to capture call details, create leads and update Salesforce CRM systems.
  • ShowreelPlayer: provided and outsourced-CTO role over almost a decade to this ambitious project involving web, mobile and desktop based applications, large-scale video encoding and editing, comprehensive database, large own-cloud environment, etc. Sounds vague? Yeah, I can’t really say too much about it!
  • WINI Technologies: WINIcabs is pitched as an alternative / antidote to MyTaxi / Lynk / Uber for local taxi companies. I continue to provide services in an outsourced-CTO capacity. I have also provided hands on development and proof-of-concept for tooling around Asterisk AGI integration, geo-location, application development, payments and invoicing, etc.

Legacy / Past Projects

Some open-source projects just don’t make it. While many aren’t designed to, other reasons may include: proof of concept that worked but didn’t gain interest; out-dated; loss of interest; etc.

Some of these include:

  • OSS-Framework: at Open Solutions we used Zend Framework v1 extensively across a number of projects. These all had elements in common as well as specific ways we preferred to do things (utility libraries, authentication controllers, Doctrine extensions, logging and session management, etc). To prevent duplication, we created this library and, in its prime, it was used by IXP Manager, ViMbAdmin, Tallystick, DirectNS, OpenVPNAdmin, ShowreelPlayer, WINI and other older internal projects). As development on those projects has moved onto Laravel or stagnated and no new Zend Framework v1 projects will be undertaken, this is no longer maintained. (GitHub)
  • Maintenance Manager: this was a proof of concept from 2015- see the talks at Euro-IX and EPF here and this site for more detail. I still harbour hope that this could be resurrected.
  • Property Price Register: in 2013 the Irish Government created a property price register but put some ill-conceived restrictions on access to it (cumbersome search, low daily request limits, etc.). This was a quick knock-up to solve these. As it happens, a number of Irish developers had similar projects and, fairly shortly afterwards, the Government resolved the issues / restrictions / limitations of the official version. (GitHub)