A project by Dylan

BridgeSphere

Real estate networking platform MVP, contracted to architect whole platform and infrastructure. Primary full-stack engineer from graduate hire to 1.0 launch. (All visuals contain demo data)

BridgeSphere project preview
Project still · BridgeSphere

Role

Primary full-stack engineer

Released

Stack

  • HTML
  • CSS
  • JavaScript
  • React
  • TypeScript
  • ASP.NET Core 8
  • PostgreSQL
  • Mapbox
  • Azure

See it

Project Overview

BridgeSphere was already stalled when I joined the project. The previous developer had left about five weeks in with wireframes, technical documents, and some boilerplate.

As a recent graduate, I came on as a contract developer and became the primary engineer. Over the next year, I took the application from an unfinished prototype to a production platform supporting 300+ real estate professionals.

I worked closely with the product owner and a small technical team, owning everything from architecture and UI through backend development, infrastructure, testing, and deployment.

What Was Built

A multi-role networking platform for clients, agents, and brokerages.

I designed and built the application using React, TypeScript, ASP.NET Core 8, PostgreSQL, PostGIS, Mapbox, and Azure. The system includes role-based workflows, profile builders, onboarding, geospatial matching, analytics dashboards, image processing, and semantic profile matching.

Architecture diagram of the BridgeSphere system
React SPA → ASP.NET Core API → PostgreSQL/PostGIS/pgvector, supported by Azure services and a GitHub Actions Dev → QA → Prod pipeline.

I also built the Docker and GitHub Actions CI/CD pipeline, managing separate development, QA, and production environments on Azure.

Performance Problems

The matching system started with too much work happening in the C# application layer. Geographic filtering, scoring, and semantic matching were being performed across a large candidate set, and some requests were taking around 20 seconds.

I moved geographic filtering into PostGIS, so expensive scoring only ran against relevant candidates, then added caching with explicit invalidation when profile or location data changed.

The result was a representative matching operation dropping from roughly 20 seconds to 5 seconds.

BridgeSphere hybrid matching pipeline
High-level matching pipeline. Detailed scoring logic remains private under NDA.

Additional Work

This project gave me the opportunity to work across a surprisingly broad part of the software development lifecycle. Because I was responsible for moving the product forward, I developed a workflow around research → design → develop → test → iterate → deploy → maintain.

That process became just as important as the technologies themselves.

Along the way I:

Built REST APIs with ASP.NET Core, dependency injection, and OpenAPI Implemented authentication and role-based access control Added automated backend testing with xUnit Built a small FastAPI service for semantic profile matching Designed geospatial workflows using PostGIS and Mapbox Managed Azure infrastructure, secrets, deployments, and production operations Worked directly with the product owner through requirements, feedback, and iteration

What I Learned

This was my first opportunity to own a production system end-to-end, and it accelerated my learning considerably. Working across the entire stack taught me to think beyond individual features. A decision in the UI could affect an API, which could affect a database query, which could affect deployment or performance.

I also learned that good engineering means making tradeoffs, communicating decisions, debugging things that worked yesterday, and knowing when an implementation needs to change.

There are plenty of things I’d build differently today.

Which is the fun part.

The project gave me over a year of real experience turning ambiguous requirements into software, learning unfamiliar technologies when I needed them, and seeing the consequences of my engineering decisions in production.