Swipey
A consumer platform where people create AI characters, chat with them and browse a personalized feed of what others made.
What I built
Content feed and ranking
Sole author. Replaced a per-request MongoDB aggregation that could not use an index with a scored Redis cache rebuilt on schedule. A request now reads a ranked slice and touches Mongo once, by id.
Pagination without duplicates
Rank-based cursors over the cache, per-user seen-sets and attribute filters on cached metadata. No offset scans, and no repeats when the cache rebuilds mid-scroll.
Chat Memories, end to end
Schema, API and UI in one slice. Partial unique indexes keep it correct under four concurrent workers instead of relying on application checks.
Creator leaderboard
Backend, web and admin: daily rollups, cursor-batched rank assignment and an index that keeps the largest collection off a full scan.
Web client
Quests, daily rewards and level-ups, the character-creation wizard and the chat UI. Part of the pass that cut chat-page LCP in half.
Creator leaderboard
Levels, daily streak and challenges
Memories on mobile
Character creation wizard
Chat on mobile
Explore feed
Stack
- TypeScript
- NestJS
- MongoDB
- Redis
- BullMQ
- Socket.IO
- Next.js
- React