Three systems that had to work.

Not a portfolio grid. Three programmes written up the way an engineer would want to read them: what was actually broken, what we changed about the architecture, and what that bought the business. Sectors differ — capital markets, industrial manufacturing, retail supply chain — the discipline doesn't.

50+ distributed microservices in production
Sub-ms execution latency on the trading hot path
4 organisations coordinated in one workflow
3 sectors: finance, manufacturing, retail
Capital Markets Fixed Income End-to-end delivery

High-frequency bond market trading platform on ION bus

A quoting and execution platform for fixed income, rebuilt as 50+ independently deployable services on ION bus middleware — with sub-millisecond execution latency, pricing models that iterate without a platform release, and risk that is computed in the order path rather than reported after it.

50+ cooperating microservices
< 1 ms execution latency, hot path
3 languages in one runtime: Java, C++, Julia
FIX venue connectivity with full audit trail

The challenge

Bond market making is not equity market making. The instrument universe is large, quoting is request-driven, liquidity is fragmented across venues, and pricing depends on curve construction and model calibration that cannot possibly run inside the order path.

The platform in place coupled pricing, execution and risk into components that had to be released together. Onboarding a venue meant a full-platform release. Changing a pricing model meant the same. The desk was effectively choosing between shipping improvements and keeping the platform stable.

The approach

We redrew the boundaries around failure and change rate rather than around teams, then made latency an explicitly measured requirement instead of a shared hope.

  • Split by rate of change — pricing, quoting, execution, position and risk, market data and venue adapters became independently deployable.
  • ION bus as the backbone — the middleware the desk already trusted, with explicit message contracts and versioning between services.
  • Heavy maths out of the hot path — curve construction and calibration pushed into C++ and Julia behind JNI bridges.
  • Latency as a gated requirement — percentile tracking on every hop, allocation-free critical sections, regression gates in CI.

What we built

  • A 50+ service platform communicating over ION bus middleware, each service owning its own release cycle.
  • FIX connectivity through QuickFIX/J: session lifecycle, sequence recovery, drop-copy reconciliation and message-level auditability.
  • JNI bridges from JVM services into native C++ and Julia libraries for pricing and calibration.
  • Real-time position and risk, continuously recomputed, with pre-trade limit checks inside the order path and kill-switch semantics that genuinely stop flow.
  • A latency measurement harness wired into CI, so a change that costs microseconds shows up before production does.

The outcome

  • Sub-millisecond execution latency sustained across the hot path, measured at the percentiles that matter rather than the average.
  • Venue onboarding became an adapter change, not a platform release — new connectivity ships without touching pricing or risk.
  • Model iteration decoupled from platform cadence: quants change pricing behaviour without waiting for a release train.
  • Regulatory review supported by the record — every order carries a message-level trail from decision to venue acknowledgement.

What actually changed: the win wasn't one faster component. It was turning latency, risk and release cadence into three separate conversations instead of one argument.

Industrial Manufacturing Quality & Compliance ERP integration

ERP-integrated industrial testing and acceptance platform

Industrial acceptance testing — collaudi — coordinated across manufacturer, supplier, client and independent testing agency in one system. Inspection status became a state machine backed by evidence, instead of whoever answered the email thread last.

4 organisations in a single workflow
Full bidirectional ERP integration
100% of transitions evidence-backed and versioned
Real-time compliance and non-conformity tracking

The challenge

An acceptance test involves at least four parties, each with partial visibility: the manufacturer, the supplier, the client and an independent testing agency. Coordination ran on email and shared drives — scheduling by thread, evidence as attachments, status as an opinion.

Non-conformities lived in spreadsheets that drifted away from the ERP within days. When an auditor asked for the evidence behind an acceptance, assembling it took people off their actual work for the better part of a week.

The approach

Digitising the form would have saved paper. We digitised the process itself: the legal transitions, the evidence each one requires, and who is allowed to make it.

  • Inspection as an explicit state machine — not a status column. Transitions are validated, attributed and irreversible by design.
  • ERP as system of record — orders, items and suppliers integrated rather than duplicated, with reconciliation and replay instead of one-shot imports.
  • Documents as first-class evidence — versioned, immutable, attached to the transition that produced them.
  • Role-scoped portals — each party sees its own view of the same underlying truth.

What we built

  • A Java/Spring backend with a React front end over PostgreSQL, deployed on AWS.
  • Bidirectional ERP interfaces with reconciliation, replay and conflict reporting.
  • S3-backed document management with versioning, retention and full traceability.
  • State-machine workflows covering scheduling, execution, non-conformity, rework and final acceptance.
  • Real-time compliance dashboards, with non-conformities attached to the ERP object they belong to.

The outcome

  • One source of truth across four organisations — status is derived from the record, not negotiated over email.
  • Audit evidence assembled, not reconstructed: the trail already exists because the process produced it.
  • Non-conformities stopped drifting from the ERP, because they are attached to it rather than copied out of it.
  • Coordination cost moved into the software — the portal replaced the mailbox as the coordination layer.

What actually changed: the value wasn't the interface. It was making an illegal process transition impossible to record — which is what made the data trustworthy enough to audit.

Retail Supply Chain Decision Intelligence ML & Optimisation

Multi-echelon inventory optimisation and demand forecasting

The classic symptom: too much stock in total, too little of what customers actually ask for. We separated forecasting from inventory policy, modelled demand and lead time as the distinct sources of variability they are, and gave planners a way to test a policy before living with it.

ML demand forecasting with honest backtesting
Multi-echelon safety stock placement across the network
↓ Stock-outs measurable reduction against baseline
Minutes to compare a scenario, not a spreadsheet rebuild

The challenge

Planning ran on spreadsheets: one forecasting method applied uniformly across a heterogeneous catalogue, safety stock set by rule of thumb, and no way to evaluate a policy change other than adopting it and waiting a quarter.

Demand variability and supplier lead-time variability were being treated as if they were the same problem — so buffers were sized for the wrong risk and placed at the wrong echelon.

The approach

Better forecasts do not fix wrongly placed buffers. We treated the two as separate problems and measured each against a baseline that could not be argued with.

  • Forecasting separated from policy — each evaluated on its own terms, against an explicit naive baseline.
  • Stochastic demand and lead time — modelled independently, so buffers absorb the variability that actually causes the stock-out.
  • Optimisation under constraints — capacity, service level and cost expressed as a trade-off curve rather than a single answer.
  • Delivered into the planners' tools — results land where the work already happens, so the model survives contact with the working week.

What we built

  • A Python/Pandas modelling stack with ML demand forecasting and reproducible backtesting.
  • Multi-echelon inventory optimisation over stochastic demand and lead-time distributions.
  • Constraint-based optimisation exposing the cost-versus-service-level frontier.
  • Data pipelines on Apache NiFi and RabbitMQ over Oracle sources, with Jenkins driving scheduled runs and retraining.
  • Scenario simulation so a planner can compare policies before committing to one.

The outcome

  • Measurable reduction in stock-outs, evaluated against the pre-existing policy rather than against the model's own optimism.
  • Scenario comparison in minutes instead of a spreadsheet rebuild — planning conversations moved from "what does the file say" to "which trade-off do we want".
  • Forecast quality became a measured number, with a baseline anyone could reproduce.
  • Inventory policy became reviewable — assumptions written down, versioned and testable.

What actually changed: a model earns its place the day a planner changes a decision because of it. Everything before that is a science project — which is why the scenario tool shipped before the last percentage point of forecast accuracy.

Same method. Every sector.

Three very different programmes, one sequence. It is deliberately unglamorous — the goal is that nothing important is discovered late.

1 · Understand

We map the real process, including the workarounds, and agree on what "working" would mean in numbers. If we can't state the target, we're not ready to build.

2 · Design

Boundaries drawn around rate of change and failure domains. The riskiest assumption gets a prototype first, not a slide.

3 · Build

Short cycles, TDD where it earns its keep, contract tests at the seams, and continuous delivery from the first week rather than the last month.

4 · Hand over

Documentation, tests and pairing so the client team owns the system afterwards. Success is measured by them not needing us to change it.

Questions we get before the first call.

What size of engagement do you take on?

From a two-week architecture review through to multi-year platform programmes. The common thread is ownership of an outcome rather than a headcount: we scope around a system that has to work, not a number of days to be filled.

Do you work alongside an existing in-house engineering team?

Usually, yes. We pair with in-house engineers, review code together and hand over documentation and tests as we go, so the client team owns the system afterwards rather than depending on us to change it.

Which sectors do you work in?

Capital markets and quantitative trading, industrial manufacturing, and retail and supply chain operations. In practice that means low-latency trading infrastructure, ERP-integrated operational platforms, and decision-support and optimisation systems.

How do you handle low-latency requirements?

Latency is treated as a measured requirement, not an aspiration. We instrument the hot path, track percentiles rather than averages, keep critical sections allocation-free, and put regression gates in CI so a change that costs microseconds is visible before it reaches production.

Do you work with the ION platform?

Yes — over five years of hands-on experience building on ION bus middleware, including microservice platforms that use it as their backbone, alongside FIX connectivity via QuickFIX/J and native interop with C++ and Julia through JNI.

Where are you based and where do you deliver?

Converging Technologies S.r.l. is based in Livorno, Tuscany, Italy, and delivers across Italy and Europe. Engagements run remote-first, with on-site presence where the work requires it. Get in touch to talk about yours.

Have a system that has to work?

Tell us what is breaking — a latency budget you keep missing, a process running on spreadsheets, a forecast nobody trusts. We will tell you honestly whether it is a problem we should take on.