Charles Venshore

Selected leadership work

The older contract, the held package and the remaining exception

162

Engineering employees

Five direct reports; forty-two contractors separately

USD62 m

2026 authority

USD38 million platform engineering; USD24 million maintenance

34 years

Software career

Development, platforms and banking technology leadership

Case 01

Keeping two older consumers on a contract they could still interpret

In September 2024, a proposed banking-service response introduced an optional field. The producing team considered the addition compatible because clients could ignore a field they did not use. A rehearsal across seventy-two known consumers found sixty behaved as expected, but twelve depended on a rigid response shape. For those applications, the producer's definition of optional did not describe the receiving behaviour.

The product team wanted a single transition date to simplify the release. Application owners were concerned that changing every dependent client at once would compete with already committed work. I asked for a versioned transition, with the older contract retained for consumers whose readiness had not been demonstrated. That choice added support and testing work. It also prevented the convenience of a single release date from deciding how much uncertainty a receiving team had to accept.

We spent seven weeks and USD1.4 million examining the consumer behaviour, adapting ten of the twelve rigid clients and rehearsing both contracts. The result was seventy consumers compatible with the new response and two remaining on the older contract. Their owners retained an explicit migration task and support arrangement. We did not describe the two as technically migrated because traffic could still reach the service through the existing route.

The enterprise gained a more precise transition account. A producing team could see which consumers had demonstrated compatibility, and application owners could identify the version they were relying upon. The result did not establish that every banking workflow using those consumers had been accepted for every possible change. It addressed the response contract examined in the rehearsal.

I accepted the cost of coexistence and asked for a reviewable exit condition, rather than treat indefinite dual support as the answer. Looking back, I would inventory actual parsing behaviour when proposing the interface change, before the word optional creates an expectation that receiving applications have no work to do.

Case 02

Holding two release artefacts whose build histories remained incomplete

In February 2025, we examined thirty-six release artefacts from a defined banking-application portfolio. Twenty-eight had a traceable account connecting the package to the relevant source, dependencies and build process. Eight did not: five lacked sufficient build records and three had incomplete dependency information. Access to the repositories did not resolve those gaps. The question concerned the package presented for release, not merely whether some related source code existed.

Delivery managers wanted to avoid holding releases whose functional tests were otherwise satisfactory. Engineering colleagues argued that accepting an unexplained package would leave future maintenance and investigation dependent on individual recollection. I supported a hold on the affected artefacts while the teams reconstructed the evidence. Functional testing remained necessary, but it did not answer how the executable had been produced.

The five-week programme cost USD620,000. We worked with the producing teams to recover build inputs, examine dependency records and document the relationship to the reviewed packages. Six histories became traceable. Thirty-four of the original thirty-six artefacts therefore had an adequate build account for this review, while two remained held. We did not silently replace the original inventory with only the packages that were easiest to explain.

The immediate change was a release discussion anchored to identifiable artefacts and their supporting records. It was not a finding that the thirty-four packages were defect-free, secure in every respect or authorised for every deployment. Those questions retained their own examinations and decision owners. My report included the cost of the reconstruction and the remaining two holds.

I wanted the next maintainer to be able to begin from an engineering record rather than a search for the colleague who remembered the build. For a similar portfolio, I would agree the required build evidence when the delivery route is established, instead of discovering at release review which parts of that history were never retained.

Case 03

Leaving twelve synthetic rounding examples outside an accepted calculation set

In June 2025, a calculation-engine rehearsal compared eighteen thousand synthetic examples with the intended banking conventions. The first run matched in 17,928 cases and differed in seventy-two. Forty-eight differences concerned midpoint treatment and twenty-four concerned negative credits. No actual customer funds moved in this exercise. A high overall agreement rate could still conceal a meaningful disagreement about the rule being implemented.

The engineering team could explain the numerical behaviour, but it could not independently choose the commercial convention. Operating colleagues wanted the unresolved examples examined before a broader acceptance recommendation. The schedule sponsor asked whether the small exception population could be handled later. I supported holding those cases and preserving the distinction between an implementation defect and a convention that required an authorised business decision.

Over six weeks, at USD780,000, engineers produced reproducible examples, compared the relevant behaviours and worked with the responsible owners on intended treatment. Sixty of the seventy-two differences were resolved in the rehearsal. The reviewed set then contained 17,988 consistent examples and twelve still held. The latter remained outside the accepted set rather than being assigned the most convenient technical answer.

We retained the original test population, the agreed convention and the explanation for each resolved group. That made the next change review more useful: another engineer could understand why the behaviour was expected, not simply observe that a test had become green. The evidence did not establish a monetary saving, a customer-remediation result or universal correctness beyond the examined conditions.

I regarded the remaining twelve as part of the delivery account. Their presence identified a decision still owed, while the resolved sixty demonstrated specific progress. My improvement next time would be to include midpoint and negative-credit examples when the calculation contract is first discussed, before ordinary cases create confidence that the convention has already been understood.

Case 04

Preventing eleven unrelated services from inheriting a dependency stall in a rehearsal

In November 2025, we ran a controlled failure exercise across twenty services. Three depended directly on the component being stalled. Under the initial shared worker-pool arrangement, the stall also blocked eleven otherwise unrelated services. Fourteen were affected and six remained responsive. The direct dependency was known; the spread through a shared execution resource had not been adequately represented in the service account.

A fully separate resource allocation for every service would have increased operating complexity and capacity overhead. The platform team preferred a common pool for its administrative simplicity. Application owners wanted a clearer boundary around the consequence of one slow dependency. I asked the teams to isolate the relevant work and test the resulting behaviour rather than choose either unrestricted sharing or universal separation as an architectural principle.

The eight-week programme cost USD980,000, including engineering and the test arrangement. In the repeated exercise at 250 requests per second for thirty minutes, three directly dependent services remained affected while seventeen stayed responsive. The eleven unrelated services no longer inherited the stall under those conditions. We recorded the load, duration and failure scenario beside the counts.

That was a useful improvement in the tested failure boundary. It did not establish performance under every traffic pattern or prove that the three dependent services had become available. Nor did it measure a realised reduction in customer loss. Operating and application owners still needed to decide how their services should respond when their own dependency was unavailable.

The enterprise account became more specific about where sharing was acceptable and what support it required. I accepted the additional resource management because it addressed the propagation we had actually observed. On another platform change, I would examine shared execution limits alongside the dependency map at design review, before a diagram of direct calls encourages confidence about failures that can spread through a different route.

Case 05

Supporting eleven teams on a common route while preserving one justified exception

In April 2026, twelve application teams were considered for a common developer platform. Nine could adopt the initial service. Three had requirements it did not yet support. The platform sponsor wanted one standard route across the whole group; specialist teams were concerned that adoption would be measured before the service could support their work. I asked for an explicit account of those requirements before setting the adoption objective.

The decision was to fund selected support changes while retaining a governed specialist route where the common offering remained unsuitable. That reduced the simplicity of the operating model and meant the platform could not claim universal coverage. I accepted the continuing exception because forcing a team onto an incomplete service would transfer hidden support work rather than remove it.

Ten weeks and USD1.8 million of work enabled two further teams to adopt. Eleven used the common route and one retained the specialist arrangement with an accountable owner. For the original nine adopters, observed median time from approved request to a usable test environment fell from 4.2 to 2.1 days across the comparison periods. We kept that same cohort separate from the two later arrivals.

The observation concerned a particular preparation stage. It did not establish that production releases became twice as fast, that all other changes were controlled for, or that staff could be removed. The result supported a narrower conclusion: the common route was useful for the examined teams and the specified waiting interval, with further operating evidence still needed.

I asked the platform owner to retain the cost and rationale of the remaining exception in subsequent reviews. Its presence should be revisited when either the requirement or the common service changes, not hidden behind an adoption percentage. I would begin the next platform proposal with a fit assessment across representative teams, before the desire for a single route becomes a substitute for understanding the work it must serve.

In the words of others

Endorsements

Charles made the cost of retaining two older contracts part of the release decision. We could support the new capability without pretending its remaining maintenance obligation had disappeared.
Leona WexmereFictional chief information officer, Talverin Bank
He kept our authority over the calculation convention separate from the engineering team's ability to reproduce a difference. The twelve held examples gave us a clear decision to resolve instead of a technical answer we had not approved.
Martin OrvellFictional chief operating officer, Talverin Bank