← Back to all projects

CoffieldWeb

Scribe

Cross-platform desktop app for wildlife aerial survey transcription

Role
Full Stack Engineer
Timeframe
Aug 2023 — Present
Status
Active
Team Size
4
Domain
Wildlife / ecological aerial survey data transcription

CoffieldWeb

Scribe

Scribe is a cross-platform desktop app used by wildlife survey teams to transcribe aerial observation data — entirely offline, with no cloud backend required. I contributed to a ground-up 4.x rewrite, building the customizable session UI, the GPS-to-audio synchronization, and the Electron layer connecting the interface to local files.

Field teams define configurable survey types (species hotkeys, GeoJSON schemas, data rules), arrange their workspace with a drag-and-resize layout builder, and run multi-day sessions that sync GPS flight tracks, WAV audio, and spatial data. Native interpolator binaries, Howler.js audio, and Google Maps markers come together in a single, tightly synchronized session model shipped for macOS and Windows.

Full Stack Engineer

  • Built the drag-and-resize layout builder for customizable transcription session UIs
  • Implemented GPS-to-audio synchronization linking flight tracks with WAV playback
  • Designed and implemented the Electron IPC layer between renderer and main-process file operations
  • Survey type builder with species hotkeys, groupings, GeoJSON types, data fields, and parent/child inheritance
  • Drag-and-resize layout builder for transcription session UIs
  • Multi-day survey session workflow with continue/resume and auto-save
  • GPS flight track validation and native interpolation
  • WAV audio playback synchronized with GPS observations on an interactive map
  • GeoJSON validation and map overlay visualization
  • Import/export of survey types (.surv) with legacy Scribe compatibility
  • Built-in validators for flight tracks, survey templates, and GeoJSON

Problem

Scribe 4.x required a full rewrite while preserving compatibility with legacy .surv survey type imports

Solution

Modular survey type builder with import/export pipelines and versioned session folder structure

Problem

Transcription requires tight synchronization between interpolated GPS flight tracks, WAV audio timestamps, and map-based observation entry

Solution

Integrated native GpsDataInterpolator binaries with Howler.js audio playback and Google Maps marker state in a unified session model

Problem

Complex multi-day survey sessions with auto-save needed reliable cross-process communication between React UI and local filesystem

Solution

Structured Electron IPC event layer with debounced persistence and standardized session folder layouts (WAV, GPS, GeoJSON)

Languages

TypeScriptJavaScript

Frameworks

ElectronReactRedux ToolkitTailwind CSSReact Router

Tools

Webpackelectron-builderJestPlaywrightESLintGitHub Actions

Infrastructure

Deployment
Desktop distribution (macOS DMG, Windows NSIS)
CI/CD
GitHub Actions
Other
macOS notarization, electron-updater

Google Maps API

Map visualization, GeoJSON layers, and observation markers during transcription

Local filesystem (Electron IPC)

Survey type storage, session data, WAV/GPS/GeoJSON file management

GpsDataInterpolator

Native binary for interpolating GPS flight track data (macOS and Windows)

Delivered Scribe 4.x as an actively maintained desktop product replacing a legacy codebase, enabling configurable survey workflows for wildlife aerial transcription teams on macOS and Windows.

4.0.13

Version shipped

macOS, Windows

Supported platforms

WBPHS, BAEA, GOEA

Survey programs supported

8 (species/hotkeys, headers, observations, map, audio player, and more)

Layout components configurable

  • Built the layout builder enabling survey teams to customize transcription UIs with drag-and-resize panels (map, audio player, observation list, species hotkeys)
  • Implemented GPS-to-audio sync pipeline integrating native interpolator binaries with Redux-managed session state and map markers
  • Designed Electron IPC handlers connecting React renderer workflows to main-process filesystem, GPS, and session persistence
  • Contributed to a ground-up Scribe 4.x rewrite shipping v4.0.13 with support for WBPHS, BAEA, and GOEA survey programs