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.
- ~30%
- est. less frontend dev time (shared UI)
- 2
- app stores shipped
- Storybook UI: A documented component library shared by the reading app and the job board.
- Reading app: The iOS and Android app, with reader theming and reading telemetry.
- Job board: The candidate-facing job board with anonymous posting and bounty-based hiring.
- REST APIs: Book, file and job endpoints with server-side validation.
- PostgreSQL: Primary data store for the platform.
- AWS S3: Secure upload and download for book files.

Context
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.
Problem
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.
My role
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.
Challenge
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.
Approach
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.
Outcome
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.
Decisions
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.
What shipped
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.
Stack
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.