01Discover

Engineering / control plane

A small, explicit core.
Deliberate boundaries.

The C-first decision is about controlled dependencies, explicit ownership and understandable execution and failure behaviour.

The important backend control plane is intended to stay small and auditable. Memory behaviour and responsibility remain visible, instead of being spread across unnecessary wrapper layers.

  • C17
  • Selected C23
  • Clang
  • GCC
  • CMake
  • libevent
  • libpq
  • PostgreSQL
  • NGINX

Repository evidence

The current scaffold uses a C17 ABI baseline, optional selected C23 features, Clang/GCC compiler policy, CMake, libevent for event-driven I/O and libpq for PostgreSQL access. PostgreSQL is the authoritative-state direction; NGINX is the public-edge design.

C increases memory-safety responsibility. Predictable behaviour requires explicit ownership and stronger engineering controls; choosing C does not remove risk.

02Understand

Interface contracts

Strong boundaries
above the core.

Stable contracts let the customer experience and financial core evolve independently.

The web uses TypeScript, semantic HTML and CSS. OpenAPI and JSON Schema define the external contract direction. Interfaces should consume those contracts without inheriting the C core’s internal assumptions.

  • TypeScript
  • HTML
  • CSS
  • OpenAPI
  • JSON Schema
Customer experienceWeb / future native clients
Explicit interface boundaryOpenAPI + JSON Schema
Authoritative control planeC core / PostgreSQL state

Native clients are roadmap direction: Swift / SwiftUI for iOS and Kotlin / Jetpack Compose for Android. This coming-soon deployment is a static website and runs none of the backend systems described here.

03Look ahead

Verification over magic

Verification is
part of the design.

The C decision raises the obligation to verify the system. Testing alone cannot make C memory safe.

Implemented in the scaffold

Controls that can be inspected.

Strict compiler warnings, sanitizer build options for ASan and UBSan, explicit modules and ownership boundaries, PostgreSQL migrations and transactional state handling are present in the repository. Their presence is not a production assurance claim.

Engineering direction

A wider verification discipline.

Static analysis, fuzzing, bounded inputs, defensive parsing, least privilege, auditability and reproducible behaviour should be enforced and expanded as the system develops. Use mature libraries for cryptography, TLS and networking rather than inventing replacements.

This describes a developing architecture. It does not claim a deployed financial platform, completed security audit or regulatory approval.