Skip to content

Work

2024NDA

Operations back office for a fintech product

An internal interface where nearly every action is irreversible and must still be explainable a year later.

Client under NDA. The problem, the approach and the stack are published; the name and the assets are not.

Role

  • Frontend architecture
  • Development

Stack

  • React
  • TypeScript
  • PostgreSQL

Permissions as data, not as conditions in the markup

There were many roles and they overlapped, so permission checks could not live as conditions wrapped around buttons: every new role would then require an audit of the entire interface. Permissions are described as data and enforced on the server when the operation runs, with the UI merely reflecting that same model. A hidden button is a convenience, not a protection, and keeping those two things distinct was an explicit part of the brief.

Irreversibility was made visible

Some operations cannot be undone, and an ordinary “are you sure?” dialog does not work for them: people stop reading it by the third day. Irreversible actions are separated from reversible ones in the interface itself and require a confirmation that cannot be completed from muscle memory. Every action is written to a log together with who performed it and on what grounds, because a year later that is the exact form the question takes.

  • Internal tooling
  • Access control
  • Audit