I once spent three days building a notification system.
Real-time WebSocket updates. Notification center with read/unread state. Badge counts. Persistence across sessions. It was clean, well-tested, well-reviewed code.
Then I showed it to the product team.
"Oh — we just meant a simple email when someone assigns a task. We don't need any of that in the app."
Three days. Gone. Not because the code was bad. Because I built the wrong thing.






