Making complex systems work together.

Systems rarely fail inside a single service. They fail at the seams, where services, platforms, and legacy software meet, and where problems are hardest to see.

I help engineering teams find those problems, trace them to their cause, and simplify what’s creating them.

Have a system problem that needs untangling?

Capabilities

Difficult problems are often found in
between things.

Services can function exactly as designed, while the system built with them fails.

The parts of a system can behave as expected while making every future change harder. An architecture that made sense five years ago can start to get in the way as user needs change. A production problem can appear in one service while the underlying cause is in a completely different, non-obvious place.

This is exactly where my expertise is strongest.

Integrate

Make systems work together across difficult technical boundaries.

APIs, services, data flows, event-driven systems, legacy interfaces, cloud platforms, and proprietary technology.

I bring things together so that independently evolving systems can cooperate without unnecessary exposure of their internals.

Evolve

Change an architecture when the assumptions no longer fit.

Legacy doesn't necessarily mean obsolete, and modernization doesn't necessarily mean rewrite.

I help teams find the constraints and old decisions that are getting in the way of success, and help change and evolve systems incrementally. This allows them to stay operational and useful while under development.

Diagnose

Find problems that can't be understood from inside one component.

Distributed systems suffer from distributed issues.

I use tracing, metrics, logs, targeted testing, and architectural analysis to follow behavior across service and system boundaries, then turn ambiguous performance and reliability problems into concrete engineering problems that can be addressed.

Selected work

A few examples of this in practice.

Made the fast path actually fast.

A passenger-facing reservation API was making people wait for years of historical data before showing the handful of upcoming reservations they actually cared about. I traced the calls, separated the two paths, and let history load asynchronously. The latency-sensitive response dropped from several seconds to consistently under 500 milliseconds.

Spring Boot · Distributed services· AWS · Production performance

One gateway, three different views.

A military simulation system could only report a single view of its simulated forces. I reworked the gateway so multiple instances could run from the same implementation with independent configuration and filtering. During a live joint exercise, three instances simultaneously provided different force views into the command-and-control systems.

Systems integration · Configuration· Distributed simulation · Data model translation

Give each system a clean boundary.

A proprietary ledger and the applications consuming it shouldn't need to understand each other's internals. I built an HTTP API and OpenAPI contract around the ledger, along with native iOS and Android SDKs, giving application developers a conventional interface to a very different underlying system.

HTTP APIs · OpenAPI · SDKs· iOS & Android

About

I am Jason Chestnut.

I'm a software architect and engineer based in Orlando, Florida. I've spent more than 27 years building and untangling distributed systems: 17 of them on defense training simulation, and the rest across travel, financial technology, and healthcare.

Castanea Systems is my independent practice. When you work with Castanea, you work directly with me.

LinkedIn