Pivot
Pivot combines chat rooms, video calls and shared pages in one app. The engineering team is small, and my work there covers product features, backend services, and the tests and CI that every change goes through.
- React
- React Native
- TypeScript
- Node.js
- Go
- gRPC
- Playwright
01Video calls
Breakout groups
I built it
Hosts split a live call into smaller groups and start them all at once.
- People are assigned to groups automatically
- One button starts every group
- Traced late joiners landing in every group to the roster logic and fixed it
02Page editor
Blocks for the page editor
I built the blocks
Pages in Pivot are made of blocks, a bit like Notion. I added three of them and made saving safe while people type.
3blocks: Section, Event and Tabs
- Stopped server echoes from replacing the text being typed
- Fixed caret jumps and Japanese and other composed input
- A regression test keeps it fixed
03Backend
Notifications
Built with Pivot's CEO
The service behind the bell icon, in Node.js and gRPC. Someone else built the inbox screen shown here.
4,943notifications in 14 days in production
- More than ten gRPC methods; I designed the data model and pagination
- I wrote the reminders service
- Push notifications through Expo

04Video calls
Calls and recordings
I built it
Calls are where people use Pivot together in real time, so a glitch reaches everyone in the room.
- Audio recordings, the recordings player and hidden recordings
- Zoom on a shared screen for each viewer, reordering people, fullscreen video
- Audio level normalization, a quiet microphone warning, camera desync recovery


05Realtime
Live chat that holds up
Root cause fixes
About 60 users in Sentry were losing messages until they reloaded. I traced it to a sync collection that was never initialized.
~1,000repeated database reads a day removed
- Messages now arrive without a reload
- Added a cache for known misses after spotting the same lookups repeat

06Core product
Spaces, home and onboarding
I built it
The first screens every new user sees, which I built in my first months and kept extending.
- Sign up, onboarding, creating an organization and the home page
- Browsing spaces and space settings
- Duplication, labels, sharing, join requests and member permissions



07Marketing site
The public website
Next.js
I rebuilt parts of pivot.app.
- The home page globe
- The integrations page and the customer stories layout
- Pages for project management and creators



Beyond features
Work I started or led myself, outside any feature ticket.
Product quality
- Self started
50+accessibility changes
Accessibility
I found the apps fell short of accessibility standards and started fixing them unasked: keyboard access, screen reader labels, recording captions, and a lint that only lets the issue count go down.
- Self started
80+layout fixes
Phones and small screens
Tables that turn into cards, menus that wrap, long names that no longer push the page off screen. The web app now holds up on a phone.
296fixes merged since October 1
Bugs, fixed at the root
Across the editor, chat, calls, spaces and CI. I trace each one with Sentry and logs and leave a test where it could come back.
0% → 93.6%of interface text translatable
Ready for other languages
I built the frontend i18n layer and did most of the rollout, including a 33,000 line pull request.
Keys translated per language, of 4,938.
Developer tools
30tools for coding agents
Local Lab MCP server
Lets an agent start Pivot's stack, call its RPCs, diff the database and check a screen against a local copy of the Figma designs, while refusing anything off the developer's machine. I wrote most of it.
1command per red pull request
PR Ops
A CLI I wrote most of that gathers required checks, failing jobs and the flaky tests named in CI logs.








