An OAuth 2.0 integration with the John Deere Operations Center API, putting the fleet’s own telemetry into the place where rental decisions get made.
Why it was worth building
Eight machines out on rent, and the honest answer to “where is it and is it running” was a phone call to whoever last saw it. The machines already report to the manufacturer. The work was getting that answer out of their API and into the business systems, on a schedule, with no person in the loop.
What it reads
Engine state and battery level, live, on the machines that report them. That is a shorter list than the marketing implies, and establishing exactly where the list ends was most of the engineering.
The edges, which are the useful part
Fuel level is not obtainable. The endpoint exists, the scope does not, and the API returns a 403 however the request is framed. Documenting that is worth more than leaving a field on a dashboard that will never populate.
One machine in the fleet has no telematics modem at all. It is not a connected machine and no amount of integration work changes that. The system now says so explicitly instead of showing it as permanently offline.
The first version swallowed its own errors, which meant a machine that had stopped reporting looked identical to a machine that was fine. It no longer does, and the first thing the corrected version surfaced was a machine sitting on a flat battery that nobody had noticed.

Make the gaps visible
An integration that hides its own failures is worse than no integration, because it converts an unknown into a confident wrong answer. Make the gaps visible and name them.

