I was on-site at Atrium Health watching visitors check in. Everything looked fine, until the line started stacking up. One user took almost a full minute to get through the kiosk.
No crashes. No errors. Just lag. I watched closely and noticed a tiny delay after every keystroke in the "Recent Visitors" search field.
The Field No One Questioned
That field was doing a live DB call on every character typed, re-querying the database for matches in real time. With thousands of past entries and no debounce logic, it was hammering our backend with every keystroke.
"That field was added as a last-minute request. No one thought it would be the bottleneck." — Implementation Engineer
The Fix
We disabled live searching and switched to a dropdown of the last 10 visits (client-configurable). Paired that with debounce logic for any future search fields.
Line wait times dropped by 40%. Visitors were happier. Staff stopped redirecting people manually. Everyone won.
Performance issues do not always show up in dashboards. Sometimes, they show up in line.
SE Takeaways
- 👁️Not every performance bug throws an error. Watch the system like a user.
- 📋Field requests need performance reviews too. Even the simple ones.
- 💡Sometimes the best fix is a UX rethink.
More from the SE Blog