All projects

Real estate platform, on a team

BrickUp

A real estate platform I worked on as a software developer on a team.

Employed 06/2025 to 02/2026

Who may do what?

Pick an action and a role.

  1. LoginAuthGuard
  2. RoleCaslGuard
  3. FilteraccessibleBy
  • New match
  • Customer replied
  • New leadnot theirs

Partly allowed. Agents see only their own, the rest stays in the database.

A simplified example: the flow matches my setup with custom NestJS guards and CASL, the roles and data are made up.

Core skills

  • Security and privacy
  • Integrations
  • Infrastructure and ops
  • Frontend
  • Backend and APIs
  • AI-assisted engineering

Tech stack

  • Expo
  • React Native Web
  • NativeWind
  • TanStack Query
  • Zustand
  • Leaflet
  • NestJS
  • Prisma
  • PostgreSQL
  • CASL
  • Socket.IO
  • AWS SES
  • S3
  • Lambda
  • Pulumi
  • HubSpot
  • PriceHubble
  • ThinkImmo
  • Heyflow
  • ImmoScout24

The hardest part

When the only interface is an email

A prototype can prove the flow before you commit to the infrastructure.

The whole story
  1. What it looked like

    When someone inquires about a property on ImmoScout24, all that arrives is an email. The data sits in an XML attachment whose format isn't documented anywhere. It still has to become a contact in the CRM automatically, without duplicates.

  2. What was really going on

    The first version read a Gmail inbox and started from a Windows script. That proved the flow, but a business can't run on it.

  3. The fix

    Reverse-engineered the format. Mail now lands in S3 through AWS SES, a Lambda function pulls out the data and sends it to the backend, which takes care of the contact in HubSpot.

112
commits of mine until 01/2026, of 547 in total
~28.9k
lines I added, 24% of the project
~7,200
lines removed in five cleanup commits
In plain words

Agents match buyers' search mandates with listings, customers rate the matches in their own dashboard, and inquiries flow into the CRM automatically. I worked across every phase, especially infrastructure, UI, permissions and lead handling.

This is my team project in a real business domain: from portal inquiry to lead, mandate, match and exposé, shipped through tickets and pull requests.

How it works

Step 1 of 5

Portal

Someone inquires on ImmoScout24. The inquiry arrives as an email with an XML attachment.

What was built
  • Platform authorisation based on CASL: a hierarchical role model, a central AbilityFactory and declarative NestJS decorators (per my employment reference)
  • An ImmoScout24 pipeline on AWS: mail via SES and S3 to Lambda, undocumented XML, backend logic with CRM sync, duplicate handling and exposé delivery
  • A customer dashboard with its own role: mandates, matches, rating with feedback and agent notes
  • Notifications with a bell and unread counts. A customer's reaction finds the responsible agent through HubSpot
  • A Heyflow webhook for leads, public project pages with filters and an admin switch that hides addresses
  • Removed about 7,200 lines of features cleanly
How those skills were used
Security and privacy
Roles and attribute-based checks with CASL across the core modules (RBAC and ABAC)
Integrations
HubSpot with contacts, leads, notes and duplicates, plus PriceHubble, ThinkImmo, Heyflow and ImmoScout24
Infrastructure and ops
Event-driven mail processing with AWS SES, S3 and Lambda, as infrastructure code in Pulumi
Frontend
A dashboard, notifications with optimistic updates and project pages with Expo, React Native Web and TanStack Query
Backend and APIs
NestJS modules for webhooks and notifications, Prisma Migrate on a team
AI-assisted engineering
Brought AI tools into the codebase and workflows, including internal automations (per my employment reference)
My role

Software developer on a team who helped build the architecture and took features end to end, from concept to production rollout.

Next projectAI Voice