Back to work

Social Platform · Production Application

Production

Dream Story

A social platform featuring chat, user connections, and a personalized Dream Book experience.

Project details are presented at an architectural level to respect product and client confidentiality.

Overview

Dream Story is a social platform built around chat, user connections, and a personalized 'Dream Book' experience, a product with several interactive surfaces that all needed to feel like one consistent application.

My Role

As a Senior Software Engineer / Frontend Engineer, I worked across the platform's core product surfaces, building and maintaining chat, connection, and personalization features as the product grew.

The Challenge

The product combined several distinct experiences (messaging, social connections, and a personalized content feature called Dream Book) that all needed to share design language, data-fetching patterns, and state conventions without becoming a collection of one-off implementations.

Constraints

  • Multiple application states across chat, connections, and personalization features
  • A growing product where consistency needed to hold up over time
  • Reusability of UI and data-fetching patterns across otherwise different features

My Approach

Rather than building each feature area in isolation, I focused on establishing shared conventions: a consistent way of fetching and caching server state, and a consistent component structure for interactive surfaces. This meant new features could be added without re-deriving the same architectural decisions each time.

Architecture & Technical Decisions

Each product surface (chat, connections, Dream Book) is built from the same underlying conventions: TanStack Query for API-driven data, Redux Toolkit for cross-cutting UI state, and a shared component layer for interactive elements like message threads and connection lists.

  • TanStack Query as the standard for all API-driven views to keep caching and loading/error states consistent
  • Redux Toolkit reserved for state that genuinely needed to be shared across features, not as a default
  • Shared, reusable components for repeating UI patterns (lists, threads, cards) across chat and connections

Key Contributions

  • Built and maintained chat functionality as a core product surface
  • Implemented user-connection workflows (requests, lists, status)
  • Contributed to the personalized Dream Book experience
  • Established reusable component patterns used across multiple feature areas

Technical Deep Dive

Keeping several product surfaces consistent as the product grew

With chat, connections, and Dream Book all evolving at once, the risk was each feature slowly drifting into its own patterns for fetching data and managing UI state. I focused on keeping the data layer (TanStack Query) and shared UI primitives consistent across all three, so a developer moving between features didn't have to re-learn a different approach each time, and so bug fixes or improvements to shared components benefited every surface at once.

Impact

  • New feature work could build on existing, shared patterns instead of starting from scratch
  • Chat and connection features remained stable and consistent as the product's feature set expanded

Tech Stack

  • React
  • Next.js
  • TypeScript
  • Redux Toolkit
  • TanStack Query
  • REST APIs