// writing

Notes from the build

Essays on enterprise software, legacy integration, and the side projects I make mostly as an excuse to learn something the hard way.

PICASSO · Part 1 of 6 7 min read

The thing that should already exist

The OutSystems Forge has a connector for almost everything — except COBOL. So every mainframe integration on the platform gets hand-rolled from byte offsets typed into a config file. Copybook parsing is a solved problem everywhere else — so I built it where it was missing, and proved it against a real compiler.

PICASSO · Part 2 of 6 8 min read

What's actually inside a copybook

PIC clauses, implied decimals, packed decimal, binary COMP, EBCDIC, signs, OCCURS and REDEFINES — the anatomy of a byte layout, and why a human counting characters gets it wrong.

PICASSO · Part 3 of 6 8 min read

Let the real files find the bugs

Fail loudly, never silently miscompute. How one genuine 1990s mainframe extract exposed four gaps that every synthetic test had missed.

PICASSO · Part 4 of 6 8 min read

Trust, but verify

How do you trust a parser whose whole job is byte offsets? Prove it three independent ways that don't quote each other — a real compiler, a third party's published values, and a human's hand-transcription.

PICASSO · Part 5 of 6 9 min read

I didn't write a line of the C#

The honest division of labour: I set the problem, the scope, and the real-data checks; an AI wrote the .NET engine under my direction. What each side actually brought.

PICASSO · Part 6 of 6 6 min read

The last mile is a Windows GUI

The engine is done and portable — but shipping it as a Forge component runs into proprietary, Windows-only tools you can't automate, plus the O11-versus-ODC question.