Jay was smiling, and Navan found this suspicious.
Not that Jay was an unhappy person—far from it. But this was the particular smile of a person who had just been told that the next nine thousand five hundred lines of code would be in their native language. This was the smile of a Go programmer who had been politely tolerating Rust for three weeks and had just been handed the keys to the gateway layer.
"OAuth proxy," Jay said, reading the spec aloud as if savoring each word. "Static file serving. Request routing. Session management. Health checks." He looked up. "This is everything I know how to do."
"That's the point," Justin said. "The gateway sits between the React frontend and the Rust server. It handles authentication, authorization, and serves the static assets. It doesn't need Rust's guarantees because it doesn't manage mutable state. It's a pass-through layer."
"A very important pass-through layer," Jay clarified.
"The most important pass-through layer," Justin agreed, and Jay's smile widened another millimeter.
Jay started the gateway with the standard library's net/http package and built outward from there. No frameworks. No magic. Just handlers, middleware, and the quiet confidence of a language that compiled to a single binary and ran without a runtime.
The OAuth proxy came first. Agents and human users both needed to authenticate, and the gateway was the single point of entry. Jay implemented the token validation, the session cookie management, the refresh flow. Each handler was a function. Each middleware wrapped another handler. The composition was clean, almost mathematical.
"I forgot how much I like this," Jay said to no one, his fingers moving at a pace that suggested muscle memory rather than conscious thought.
Navan watched the gateway take shape over the next few days. The static serving layer mapped URL paths to the React build output. The API proxy forwarded authenticated requests to the Rust server's HTTP port. The health endpoint returned a JSON object with uptime, version, and connection status to the backend.
"Nine thousand five hundred lines," Navan said, reviewing the final count. "That's a lot for a proxy."
"It's not just a proxy," Jay said, a hint of defensiveness in his voice. "It's the type registry client. It's the WebSocket relay for real-time turn updates. It's the static asset pipeline with cache-busting. It's the CORS configuration for the dev environment." He paused. "And it's the proxy."
Navan held up his hands. "I'm not criticizing. I'm impressed. It's clean code."
"It's Go," Jay said, as if that explained everything.
For Jay, it did. The gateway compiled in four seconds, produced a 22-megabyte binary, and handled twelve thousand requests per second on the benchmark without breaking a sweat. No garbage collection pauses above a millisecond. No dependencies that needed a lockfile.
Jay was home again.
"It's Go," as if that explained everything. It does. It absolutely does. The simplicity is the feature.