All workStop 1

Baker Health

Telemedicine app · iOS, Android, web · New York and New Jersey

Baker Health is a New York-based healthcare provider, offering primary and pediatric care in New York and New Jersey. At Speer I worked on its app as a developer and later led it. I also led its move to React Native and set up the new project from scratch.

Role
Developer, then lead
Years
2021–2026
Platforms
iOS, Android, web
Stack
React Native · TypeScript · Node.js · NestJS · PostgreSQL · Stream Chat · AWS · Loki
Published
Updated
Home page of bakerhealth.comBaker Health app chat screen with a member's message, as shown on bakerhealth.com
bakerhealth.com, Baker Health's public website.

Context

I was responsible for the app's architecture and technical decisions, and for the API, the database design and the releases. I kept writing code too, reviewed the team's pull requests and helped junior developers when they got stuck.

Real-time chat is one of the app's key features. And with patient data, HIPAA came up in almost every design discussion.

Constraint

The chat runs on Stream Chat, a hosted service, and its rate limits depend on which plan you pay for. I wanted to stay on the plan we had.

The problem

Our chat was losing messages, but only sometimes.

It took us a while to find. In the end it was Stream Chat rate limiting our API calls.

What changed

Upgrading to their enterprise plan would have fixed it. I didn't want to pay for that just for one bug, so we cut down our API calls until we stayed under the limit.

I also set up Loki, so problems like this show up in the logs first.

API callsProvider rate limitBeforeAfter
  • Under the limit
  • Over the limit, message lost
DiagramAPI calls to Stream Chat against its rate limit, before and after the change.

Result

We fixed it without changing plans.

No lost messages after that.