Scarlet Beast Scarlet Beast Hunting Truth in a World of Shadows
Transmissions
NEWStartup Frameworks are for sale — buy a launch-ready business, not a slide deck.Sep 04 NEWTech’s Tinder — a swipe-to-match deal engine for hardware buyers and sellers — joins the framework catalogue.Sep 04 NEWSignal — the creators network for the people who build the machines (formerly networkedin) — joins the framework catalogue.Sep 03 NEWScarlet Beast Poker is packaged for acquisition — platform, native apps, the Hiss AI and the public API.Sep 03 LIVEBusiness Plans — every scope, timeline and price we quote, in one vault.Sep 01 NEWFree technical audit — one call, no pitch, a written findings list you keep either way.Aug 28 LIVEGROWL — the crypto and forex exchange, plus an algorithmic bot marketplace.Aug 26 LIVEHiss — production poker AI: deep reinforcement learning, computer vision, real-time inference.Aug 22 NEWPerformance engineering — measurable TTFB, LCP and CLS gains on enterprise traffic.Aug 18 NEWAdobe Commerce and Shopify Plus modernization — migrations that ship without downtime.Aug 05 NEWThe technology stack is published — what we run, why we chose it, what it costs.Aug 01 NEWStartup Frameworks are for sale — buy a launch-ready business, not a slide deck.Sep 04 NEWTech’s Tinder — a swipe-to-match deal engine for hardware buyers and sellers — joins the framework catalogue.Sep 04 NEWSignal — the creators network for the people who build the machines (formerly networkedin) — joins the framework catalogue.Sep 03 NEWScarlet Beast Poker is packaged for acquisition — platform, native apps, the Hiss AI and the public API.Sep 03 LIVEBusiness Plans — every scope, timeline and price we quote, in one vault.Sep 01 NEWFree technical audit — one call, no pitch, a written findings list you keep either way.Aug 28 LIVEGROWL — the crypto and forex exchange, plus an algorithmic bot marketplace.Aug 26 LIVEHiss — production poker AI: deep reinforcement learning, computer vision, real-time inference.Aug 22 NEWPerformance engineering — measurable TTFB, LCP and CLS gains on enterprise traffic.Aug 18 NEWAdobe Commerce and Shopify Plus modernization — migrations that ship without downtime.Aug 05 NEWThe technology stack is published — what we run, why we chose it, what it costs.Aug 01
Markets
BTC$79,738▲ +0.40%ETH$2,459▲ +0.41%SOL$103.15▲ +1.63%XRP$1.41▲ +0.48%BNB$763.51▲ +6.83%ADA$0.2165▲ +1.01%DOGE$0.0874▲ +2.81%LINK$11.84▲ +1.76%AVAX$7.54▲ +2.51%DOT$0.9176▲ +7.97%LTC$53.59▲ +6.43%TRX$0.3331▲ +1.43%BTC$79,738▲ +0.40%ETH$2,459▲ +0.41%SOL$103.15▲ +1.63%XRP$1.41▲ +0.48%BNB$763.51▲ +6.83%ADA$0.2165▲ +1.01%DOGE$0.0874▲ +2.81%LINK$11.84▲ +1.76%AVAX$7.54▲ +2.51%DOT$0.9176▲ +7.97%LTC$53.59▲ +6.43%TRX$0.3331▲ +1.43%
GROWL feed
Java · Part IV

The Practice

If an agent writes the syntax, your job moves up a level: deciding the shape, and judging the result. Both are done in the vocabulary of Parts I to III. This page is how to use it.

What to delegate, what to own

Delegate freelyOwn yourself, always
Syntax, imports, boilerplateWhere the transaction boundary is
Builder and mapping codeWhat is shared between threads, and why it is safe
Test scaffoldingWhich tests are unit, slice or integration
Config wiringWhat the module boundaries are
Library API lookupWhich queries a request issues
Refactoring mechanicsWhat happens when it fails twice

The pattern: delegate anything whose correctness the compiler or a test can check for you. Own anything whose correctness only shows up under concurrency, under load, or at 3am — because those are exactly the things that look fine in a diff.

A review checklist that finds real Java bugs

Read generated code against this. Every item is a failure from the earlier parts, and each one is invisible unless you go looking.

  1. Is anything shared and mutable? A field on a singleton bean is shared by every concurrent request. Either it is immutable, or a concurrent type, or it is a bug.
  2. Where does the transaction start and end? Point at the line. If a transactional method is called from inside the same class, the proxy is bypassed and the transaction does not exist.
  3. How many queries does this issue? If a loop touches a relation, assume N+1 until proven otherwise.
  4. Is an entity being returned from the API? That couples your schema to your contract and invites lazy-loading failures during serialisation.
  5. What happens on the second delivery? Message consumers and retried calls must be idempotent.
  6. Is an exception caught and logged and then execution continues? That converts a loud failure into a silent wrong answer.
  7. Are resources closed on the failure path as well as the happy one?
  8. Does config failure stop the boot? Better a crash at startup than a null at midnight.
  9. Are timeouts set on every outbound call? A call with no timeout is a guaranteed outage waiting for a slow dependency.
  10. Do the metrics have bounded tags? One tag with unbounded values is an outage in the monitoring system.

Questions that force the ideas out of an agent

Generated Java compiles and looks plausible; that is exactly the danger. These questions make the model state the things it usually leaves implicit, and they are the same questions a senior reviewer would ask you.

The point of asking

You are not checking the answer for facts you already know. You are forcing the mechanism into the open, where you can judge it against Parts I to III. An agent that cannot answer these has written code neither of you understands.

An order to learn in

  1. The process model. Long-lived, multi-threaded, shared heap. Everything else is downstream of this and it is the one that breaks PHP instincts.
  2. The container. Beans, scopes, constructor injection, and what a singleton really implies.
  3. Proxies. Once you know a proxy is what makes annotations work, half of Spring's mystery evaporates — and the self-invocation trap becomes obvious.
  4. Transactions and the persistence context. The most expensive area to be vague about; also where most production incidents live.
  5. Concurrency. Happens-before, then the tool ladder, then virtual threads.
  6. The build graph. How to print it and read a conflict.
  7. Observability. Wire it before you need it; it is how you learn what your program actually does.
  8. Memory and GC. Last, and only to the depth of reading a heap dump — do not tune collectors you have not measured.

How to tell you have actually learned it

Not by writing code from memory — that is what the agent is for. You have learned it when you can do these without looking:

The last idea

Java's reputation for verbosity was a complaint about typing, and typing is the part that has been automated. What is left is the part that was always the actual work: deciding what the objects are, who owns them, when they change, and what happens when something fails. Java is unusually good at making those decisions explicit — which is precisely why it rewards the person who understands the machine rather than the syntax.

← back to Part I

Written for someone who has an agent for the syntax and needs the ideas instead. Nothing here is a code sample on purpose — if you can name the mechanism, you can ask for the code and judge what comes back.