From the Blog

Short notes on design, engineering, and product thinking.

Designing for Trust on Campus Apps

When building safety-focused apps like BuddyGuard, trust isn't just a UI problem — it's a system property. In this post I walk through three practical patterns I used to increase adoption and perceived safety during early pilot tests.

Abstract: privacy-first defaults, graceful permission requests, and social proof channels made a measurable difference in adoption.

Summary: Use progressive disclosure, clearly explain why location is needed, and provide easy ways to revoke access. Build audit logs and let users control who sees what.

A Pragmatic Approach to Offline-First Sync

Mobile apps used in campus environments must handle flaky connectivity. Here's a simple offline-first sync pattern I implemented for Shuttle Smart that keeps the UI responsive and prevents duplicate writes.

Use local optimistic updates, queue mutations, and a compact conflict-resolution policy (last-write-wins + tombstones for deletes). Keep sync batches small and instrument telemetry for retry behavior.

Why Product Strategy Beats Feature Lists

I used to try to ship everything users asked for. Over time I learned to say no. This short piece explains a simple prioritization framework I use: problem severity × frequency × technical cost.

Features should be judged by the problems they solve. Maintain a lightweight roadmap and build guardrails that prevent scope creep. Use prototypes and quick experiments to validate assumptions before you build the whole thing.

Back to portfolio