Kenbuster

This is Kenbuster being advertised; I wrote the entire system from receiving satellite locations to paying the congestion charge.

User maintenance (client maintenance) for all system clients, with functionality to add, amend, or delete, including viewing and amending payments made.

The system automatically paid the congestion charge if a customer entered the zone. This screen shows payments made and includes options for manual payments if they failed.

Automatic SMS sending job to notify users when payments were made successfully.

Format of data received on the server: ASCII text over a raw socket. Data was stored in MySQL and connected to clients via unique identifiers.

Full Stack Programmer at Kenbuster, Systems Admin, Development, DBA, Everything

In 2007, an entrepreneur approached me with a mission: to beat London’s congestion charge fines, which he believed were unfairly profiting from missed payments. He wanted a system that would automatically pay the charge if a vehicle entered the zone during restricted hours. This was before smartphones had GPS, but he secured a company that produced satellite units to send real-time location data to a server.

I designed and built the entire system, which we called Kenbuster after Ken Livingstone, the mayor who introduced the congestion charge. Kenbuster received location data over a raw socket, containing a unique identifier, location, time, and accuracy details. My challenge was to connect this data to a specific client, determine if the vehicle entered the zone, and automatically process the congestion charge payment.

The system’s backend, built with JBoss and MySQL, connected to a front-end tool in SWT, which allowed employees to view journeys and manage client information. The format of the received data is described in the document you can see above. It was received via a raw socket and contained a unique identifier and information about the unit such as location, time, and accuracy.

The payment process was streamlined using a browser widget that filled in the congestion charge payment page, drawing on stored payment details. Every night, an automated job sent SMS and email confirmations to notify users of processed payments.

I designed the system to have as many checks in place as possible. Kenbuster could see all breaches of the zone, payments made, and where payments had failed.

Accuracy was a core challenge; GPS readings at that time could be off by 10 meters. For vehicles close to the boundary (like those on Marylebone Road), Kenbuster flagged the route and displayed it on a map so staff could verify if the zone had been breached. While I considered implementing road-specific locking for more precision, the cost of coordinate-based mapping was too high for Kenbuster at that time.

From start to finish, I developed and tested the entire system. Kenbuster became popular with tradespeople like electricians and plumbers, whose teams often skirted the congestion zone boundaries.

Eventually, Mayor Boris Johnson introduced an automatic payment option, allowing drivers to register their credit card for direct congestion charge payments—a feature I’d anticipated but was initially deemed unlikely. Nonetheless, Kenbuster had proven its worth, and I’m proud to have delivered a comprehensive, user-centered solution ahead of its time.

Project information

  • CategoryStartup
  • Client Kenbuster
  • Project date 01/05/2007 to 01/01/2009
  • Technology Java , JSP, MySql, SQL, HTML, Javascript, CSS , UNIX , Bash