All work

Client work · via Camel Case Labs

BOUTLOOK

Rebuilt a combat sports organization's mobile app from scratch and shipped it to the App Store and Google Play.

liveMay 2026 – Present

My roleSole mobile engineer

app stores: App Store and Google Play
2
app stores: App Store and Google Play
screens rebuilt across 6 feature areas
11
screens rebuilt across 6 feature areas
engineer on the mobile app
Solo
engineer on the mobile app

01The problem

BOUTLOOK runs combat sports events, and its officials and staff work from their phones: checking events, setting availability, and finding each other in the directory. The mobile app needed a full rebuild, and it had to work against the live system the organization runs on.

02What I built

  • A ground-up rebuild in React Native and Expo: events, availability, a staff directory, documents, and profiles
  • Sign-in with biometric unlock and secure token storage, plus a working password reset
  • Push notifications end to end: EAS build configuration, Firebase delivery on Android, opening the right screen when someone taps a notification, and a clear path back when notifications are blocked
  • Separate mock, QA, and staging modes, so every feature could be tested without touching live data
  • QA-only diagnostics that show a device's push token, for debugging delivery on real phones

03Key decisions

Show blocked notifications instead of failing silently

Why
If someone has turned notifications off, pushes simply never arrive, and nobody knows why.
Result
The events screen tells users when notifications are blocked and how to turn them back on.

Mock, QA, and staging modes from the start

Why
Testing against the live system risks real event and staff data.
Result
Features were checked against mock and QA data before they reached staff.

Small releases driven by real use

Why
Staff found problems using the app day to day, like unmarked days showing as unavailable and a button that was too easy to tap by accident.
Result
Steady releases through v1.1.1, each fixing what staff actually ran into.

04Results

  • Live on the App Store and Google Play
  • The organization's staff run their day-to-day work on it
  • Push notifications delivered on iOS and Android, with recovery when they're blocked

05What I learned

  • Push notifications have more ways to fail silently than to work: permissions, build configuration, and device tokens all have to line up.
  • Real users find different problems than testers do. The most useful fixes came from watching how staff actually used the app.

06Stack

  • React Native
  • Expo
  • TypeScript
  • TanStack Query
  • Zustand
  • Firebase Cloud Messaging
  • EAS

want the longer version?

I'm happy to walk through how I built it.