The problem
A real estate platform is mostly a permissions problem wearing a listings UI. Buyers, sellers, agents and admins all see the same objects and almost none of the same fields. Get that wrong and you leak a seller's reserve price to a buyer.
The client was in Canada, I was in India, and the engineering team was me.
The approach
Role-based access control first, features second. Every listing, message and document got an owner and a visibility rule before any screen was designed, so the UI could never be the thing enforcing the rule.
The second constraint shaped everything else: whatever I built had to be operable by someone who was not me. That ruled out clever infrastructure. One well-understood Node service, MongoDB, Socket.io for buyer-to-agent messaging, DigitalOcean for hosting, and documentation written as I went rather than at the end.
What shipped
A complete platform in six months — listings, RBAC, real-time messaging, document handling and admin tooling — running at 99.9% uptime through launch and handover.
What I would do differently
I would have written the handover documentation from week one instead of week twenty. Writing it at the end meant documenting decisions I had already forgotten the reasons for, which is how a system quietly becomes unmaintainable while still technically working.