NHNYASHA HAMA ENGINEER / BUILDER← Back to selected work

SELECTED WORK / 01 / ALPHA DEMO

ClinicPulse.

A field report should survive weak signal and uncertain retries.

PRODUCT & ENGINEERINGSCROLL TO EXPLORE ↓
Concept illustration of a fictional clinical worker using a tablet

CLINICPULSE / CONCEPT ILLUSTRATION

Seeded ClinicPulse district console showing clinic risk and triage context
DISTRICT CONSOLE / LOCAL SEEDED CAPTURE
Seeded ClinicPulse mobile field report view showing assigned clinics and offline sync status
FIELD REPORTING / LOCAL SEEDED CAPTURE

Field reporting that can recover.

A self-directed clinic-operations demo connecting field reporting, district review, public discovery, and audit context.

01 / THE PROBLEM

What made this hard

A clinic status can change before a field reporter has reliable connectivity. A delayed acknowledgement can make a submitted report look unsent, and a retry can create a duplicate or hide a changed payload.

02 / ROLE & CONSTRAINTS

What I owned

Self-directed product engineering across the Next.js reporting interface, Go synchronization service, and PostgreSQL records.

Offline drafts must persist, retries need a stable client identity, district review needs the source and sync outcome, and role boundaries must hold on the server.

03 / DECISIONS

How the boundary works

  1. 01

    Persist field reports in IndexedDB until synchronization can complete.

  2. 02

    Compare client report IDs and payloads: equal submissions are duplicates, while changed submissions return a conflict for review.

  3. 03

    Record sync attempts and re-read after a uniqueness race so the response describes the surviving report.

04 / FAILURE CASE

The case worth testing

When a client retries after an uncertain response, the same ID and payload is safe to recognize as a duplicate. Reusing the ID with different content returns a conflict instead of silently replacing the report.

05 / PROOF & LIMITS

What the evidence supports

Go regressions cover duplicates, conflicts, uniqueness races, timestamp precision, per-item validation, and attempt-record failure. Public CI for the referenced revision passed on 13 August 2026.

Alpha, self-directed demo with seeded scenario data. The modeled routing and time-saved figures are not observed clinic deployments or patient outcomes.

TOOLS & TECHNOLOGIES

Next.jsTypeScriptGoPostgreSQLPlaywright