gofri Why two g's? When I was a kid my grandma called me Gofri, and the family picked it up. She said the G hard, almost twice, so I write it twice.
demo stage

Banking graph and NXCore

for
Veritran
when
2026
Problem
Veritran wanted business value from stored transaction data, as a product bank clients could evaluate.
My contribution
Owned the graph feature pipeline, validation and product UI/API, plus the NXCore API end to end.
Delivered
Delivered in one month for technical evaluation and demos. Demo stage, no production customer.
Result
A bank-data graph product and API, delivered in one month and shown in evaluation demos to bank directors. Demo stage, not banking production.
Status
demo stage · 2026

1 monthto a demo-stage graph product, no production deployment

what I foundDocumented assumptions and unknown fields and validated them with a bank contact.

what I foundRows that looked complete could still be failed operations; I corrected the filtering before the first external demo.

what I foundRaised PII concerns and directed fixes to pseudonymization gaps, including in JSON fields.

account A account B account C account D account E account F

aggregated relationship failed operation, looked complete

6 nodes · 7 aggregated relationships · 3 failed operations excluded (schematic)

Aggregated relationships, failed operations excludedreconstruction, illustrative

pipeline

From stored transactions to a graph

  1. 1Stored transactionsthe stored transaction data
  2. 2Validationfailed operations excluded before anything is aggregated
  3. 3Pseudonymizationa data engineer's layer; stable hashes preserve joins
  4. 4Featuresbehavioral and contact features per node
  5. 5Graphdirected, aggregated relationships; Python/Snowpark and SQL procedures, daily incremental orchestration inside Snowflake
  6. 6NXCore APIserves the graph to the product
  7. 7Demosevaluation and demos, no production

discovery

What I checked before the first demo

  • Assumptions written downI documented assumptions and unknown fields and validated them with a bank contact
  • Failed operationsfully populated rows could still be failed operations, marked success by a specific response code; I corrected the filtering before the first external demo
  • PIII raised PII concerns and directed fixes to pseudonymization gaps, including in JSON fields

NXCore

The API that serves it

  • Go over stored proceduresan HTTP API over typed Snowflake stored procedures
  • Bounded and typedbounded queries and typed errors
  • ObservableOpenTelemetry trace correlation and connection pooling
  • PermissionsWorkspace permissions integration; a Fastify backend-for-frontend consumes it

ownership

Who did what, and when

  1. requesta bank-data product to evaluate
  2. one monthbuilt for evaluation
  3. first external demoafter the filtering fix
  4. demosleadership, business developers, directors
  • MeFeature pipeline, validation, product UI/API and the NXCore API; chose the features and architecture
  • BusinessChose churn and acquisition as the use cases
  • A data engineerImplemented the pseudonymization layer
  • Other engineersUpstream ingestion and downstream labeling and models
  • Validated predictionNot claimed: demo scoring was heuristic and labels were synthetic

What shipped

A bank-data graph, built in one month for evaluation and demos.

demo stage, no production deployment
  • Supported demos to Veritran leadership, bank business developers and bank directors.
Method and caveats

Demo stage, no production deployment. Demo scoring was heuristic and the labels were synthetic; this is not validated prediction. Business chose churn and acquisition as the use cases.

  • Stage: demo and evaluation; no production deployment or customer
  • Scoring: heuristic, with synthetic labels; not validated prediction
  • The graph above is a schematic with invented names and edges; real volumes are not published