Challenge Framing
Static personality labels fail to capture how user behavior shifts over time, but longitudinal prediction introduces leakage risks, irregular activity gaps, and operational complexity.
The engineering challenge here was to serve a causality-safe longitudinal NLP pipeline through an API and background worker model without collapsing into fragile batch-only research code.

Case Study
Project Overview
Designed a longitudinal personality prediction module that converts raw Reddit behavior into weekly trait-direction forecasts, persists run metadata, and serves multi-trait results through authenticated backend endpoints.
Challenge Framing
Static personality labels fail to capture how user behavior shifts over time, but longitudinal prediction introduces leakage risks, irregular activity gaps, and operational complexity.
Solution Strategy
I built a trait-specific weekly forecasting service with async job orchestration, causal feature generation, versioned artifacts, and authenticated prediction APIs.
Project Highlights
Gallery
Selected screens show the visible product experience and the operational surfaces behind each project. Projects without captured assets keep a structured placeholder until real screenshots are available.
MindMirror Personality Forecasting Engine
Raw Reddit activity flows through scoring, weekly aggregation, causal feature construction, and trait-specific classification.
MindMirror Personality Forecasting Engine
User signup, job creation, worker execution, and persisted predictions are decoupled for operational safety.
MindMirror Personality Forecasting Engine
Each inference run stores artifact versions, confidence values, and week-level prediction records.
Tech Stack
Temporal NLP pipelines, async inference orchestration, feature lineage, and production-style delivery of research-oriented models.
Key Features
Transforms raw Reddit posts into weekly aggregates, lagged trait states, gap features, and rolling statistics.
Each Big Five dimension resolves its own artifact, label encoder, and version metadata.
Signup inference creates background jobs so heavy NLP processing stays outside request latency.
Prediction results are exposed through JWT-protected endpoints for integrated product consumption.
Architecture
Each layer stays explicit so reviewers can quickly understand where interface, orchestration, persistence, and service responsibilities live.
The application links user accounts to Reddit identities and persists inference requests into a job queue.
Post-level personality signals and text embeddings roll into weekly causal feature frames for each trait.
Runs, predictions, and model artifacts are versioned so each response remains traceable.
System Flow
The pipeline section keeps the most important engineering steps visible without collapsing them into generic bullet lists.
Pull Reddit content, normalize text, and prepare post-level inputs for personality scoring.
Generate transformer-based signals and weekly aggregates with causal shifting rules.
Run trait-specific classifiers for up, neutral, or down direction forecasting.
Persist predictions and expose authenticated endpoints plus job-based status polling.
Timeline
This timeline keeps the implementation story concise: what was framed first, what was hardened next, and what ultimately made the project production-ready.
Reframed personality as a weekly direction prediction problem rather than a static classification task.
Built a runtime feature builder that can infer directly from raw Reddit bundles for new users.
Separated request handling from heavy inference using a PostgreSQL-backed job queue and worker process.
Challenges
Each challenge is tied to a concrete design choice and a specific outcome.
Solution
Shifted embeddings and derived features, computed thresholds on the training subset only, and used author-aware temporal splits.
Outcome
Preserved causal validity and reviewer credibility.
Solution
Engineered gap-aware features and robust variance fallbacks to stabilize weekly signals.
Outcome
Made the pipeline more reliable across inconsistent user histories.
Solution
Queued jobs in PostgreSQL and processed them through a dedicated worker instead of blocking the API.
Outcome
Kept the product-facing experience responsive.
Results
The emphasis here is signal, not decoration: key numbers, verifiable outcomes, and the context needed to interpret them responsibly.
30,116
Weekly Samples
Per-trait dataset scale across processed weekly records.
774
Feature Count
Embeddings, temporal gaps, lag states, and rolling stats.
75.6-76.9%
Trait Accuracy
Across five trait-specific classifiers.
Queue-based
Async Delivery
Signup inference runs through a DB-backed worker flow.
Key Results
Business Impact
Demonstrates how longitudinal behavioral modeling can move from static personality labeling to production-oriented forecasting.
Creates a more adaptable input for personalized product experiences and trend-aware user analytics.
Continue