The situation
Several existing apps needed their structure put in order.
What made it hard?
At the same time, we had to add face and fingerprint sign-in without rewriting the apps from scratch.
What was I responsible for?
- I reviewed how the apps were built and made the way they fetch data from the server consistent (TanStack Query).
- I built the system on one shared code repository (a monorepo), with a separate NestJS server layer for the apps (a BFF). The platform served multiple customer organisations in isolation.
- I wrote Swift and Kotlin modules so the apps use the phone's own face recognition and fingerprint reader for signing in.
Decisions and reasons
- I sorted out data fetching first
- That way the new sign-in fetches data the same way as the rest of the app, with no special cases.
Results
- Roughly 40% less repetitive boilerplate code.
- The share of successful, secure sign-ins improved by 15%.
- The apps loaded in 0.3 seconds instead of 10.
When this matters to you
- If an existing app needs fixing and extending, a rewrite is not the first thing I will suggest.