Web Applications
Access review tooling for a regulated lender
Built by Sheena Marie Tolentino
Built the system that makes managers actually review who has access to what, at a lender where the previous answer was a quarterly spreadsheet nobody read.
Builder email verified
Verification
- Type
- Professional
- Category
- Web Applications
- Published
- Jul 26, 2026
- Updated
- Jul 26, 2026
About this project
- The problem
The lender had to demonstrate to its regulator that access to customer data was reviewed periodically and that leavers lost access promptly. The existing process was a spreadsheet exported from four systems, emailed to about sixty managers, and returned by roughly half of them, usually approved wholesale without being read. It was failing on two counts: it did not actually reduce access, and it could not produce evidence anyone believed. There had also been a finding about accounts belonging to people who had left months earlier, which is the kind of thing that turns an internal problem into a deadline.
- My role
Senior backend engineer, one of four on a platform team, for about eleven months. I led the technical design and did roughly half the implementation, working to a compliance manager who owned the requirement and a product owner who owned everything else the team was doing and had to keep re-prioritising us against it. I also presented the design twice to a governance forum, which was a new experience and taught me to bring one diagram rather than six.
- What I owned
I owned the connectors that pull entitlements out of the source systems and the model that normalises them into something a manager can read — which is most of the difficulty, because a permission in one system is a group in another and a database role in a third. I built the review campaign engine: who is asked what, when it expires, what happens on no response, and the revocation queue that comes out the other end. I also owned the evidence export the auditors receive. I did not build the manager-facing UI, though I wrote the API for it and rewrote it once after watching a manager use it.
- Technical & product decisions
The decision that shaped everything was translating raw entitlements into plain statements before showing them to a manager. The obvious build shows the underlying group names, and a manager confronted with a list of internal group identifiers approves all of them, which is exactly what the spreadsheet already achieved. So we invested in a mapping layer that says what an entitlement lets a person do in business terms, and accepted that it needs curating. I also argued successfully for making no-response a revocation rather than a retention — a default that the compliance manager supported and that two department heads fought hard, which took a governance decision rather than a technical one.
- Constraints
The regulator's timetable was fixed and public, so the first full campaign had to complete before a stated date, which meant we cut the fourth system's connector into a later phase and said so in writing rather than pretending. Two source systems were vendor products with rate-limited APIs and no bulk export, so the pull ran over hours and had to be restartable. Nothing could revoke access automatically in the lending platform itself because a mid-transaction revocation has real consequences, so we produced a queue that a named administrator actions. And every design decision had to survive a security review by a team of two who were, correctly, harder on us than anyone else.
- Result & impact
The first campaign covered about nineteen hundred accounts and led to roughly a fifth of reviewed entitlements being removed, which tells you what the spreadsheet years had accumulated. Response rate from managers went from around half to over ninety per cent, mostly because a default of revocation is a strong motivator. The leaver gap — the time between someone leaving and losing access — went from a median of eleven days to under two, though that was as much a process change as a technical one. The auditors accepted the evidence export without a follow-up request, which the compliance manager described as the best possible outcome and the least interesting sentence in the report.
- Who else worked on it
The compliance manager translated between the regulator's language and ours and is the reason we built the right thing rather than a very good wrong thing. A colleague on the platform team built the manager UI and ran the usability sessions that made me rewrite the API. The two-person security team reviewed the design twice and found a genuine flaw in how I was handling connector credentials the first time.