Case study

Lampstand

Full-stack work on a personal-growth reading app: unblocked release-critical features and shipped to the App Store and Play Store.

Full-Stack Engineer · Apr 2024 – Dec 2025 · Mobile · Cross-platform

~30%
est. less frontend dev time (shared UI)
2
app stores shipped
Lampstand platform
Two products in one monorepo, sharing a component library and a REST API layer.
  1. Storybook UI: A documented component library shared by the reading app and the job board.
  2. Reading app: The iOS and Android app, with reader theming and reading telemetry.
  3. Job board: The candidate-facing job board with anonymous posting and bounty-based hiring.
  4. REST APIs: Book, file and job endpoints with server-side validation.
  5. PostgreSQL: Primary data store for the platform.
  6. AWS S3: Secure upload and download for book files.
Lampstand product mark
Shipped to the App Store and Play Store.

Lampstand is a personal-growth reading app: curated content, habit tracking, and a reading experience meant to feel considered rather than generic. I joined as a full-stack engineer while feature debt was blocking release to both stores.

Tickets had been open for months. The release was behind. The work was not to add a long feature list. It was to identify what actually blocked App Store and Play Store submission and ship that without introducing new regressions.

I worked across the React Native app and supporting APIs: reader theming, shared UI in a monorepo with Storybook, REST endpoints for books and files with AWS S3, and session/reading telemetry for the product team.

Time was the constraint. Existing work had stalled. The reader had to thread theme and font-size state through the React Native rendering path and persist preferences on device, without destabilising the rest of the release.

I built the in-app reader theme system — light, dark, and sepia, with font-size controls — and persisted preferences locally. I helped establish shared UI patterns in Storybook so later screens were not one-off. I added session tracking and reading-progress telemetry so the product team had engagement data after launch. Backend work included book and file APIs with S3 and server-side validation.

The app shipped to the App Store and Play Store. The product team had reading telemetry they did not have before. The work was deadline-driven: close the blockers, keep the app stable, ship.

Triage over novelty

Release-critical reader work came before interesting-but-not-blocking features. Knowing what can wait is part of the job in a small team with a store deadline.

Shared UI in the monorepo

A Storybook library made new screens cheaper for the whole team. The cost is discipline: components have to be documented enough to reuse, not just extracted.

Reader theme system

Light, dark, and sepia modes with font-size controls, persisted on device and threaded through the reader pipeline.

Shared component library

Monorepo UI with Storybook so the team could assemble screens from documented patterns instead of rebuilding them.

Telemetry

Session tracking and reading progress, giving the product team engagement data after launch.

React Native · TypeScript · PostgreSQL · Expo · Docker · TypeORM · Express

Shipping to both stores was the outcome. The engineering lesson was triage: which work is actually on the critical path.