Back to portfolio
Muhamed Malkoč
01 / Featured project

Broker Intelligence

A full-stack performance intelligence system that ranks real-estate brokers using transparent, configurable business rules.

RoleFull-stack architecture & implementation
Project typeTechnical assessment / independent case study
View source on GitHub
The challenge

Broker performance cannot be represented fairly by a single number such as sales value. The system needed to combine lead volume, conversion, sales, response time and activity while keeping the result understandable and adaptable when business priorities change.

The approach

I designed a relational data model around brokers, leads, sales and activities, then separated statistics collection from the ranking engine. Each enabled rule contributes a weighted score and an explicit breakdown, allowing an API consumer to see not only who ranks highest, but why.

What I built

Core implementation

01

Configurable ranking

Weights and enabled rules live in the database, so business priorities can change without rewriting the scoring engine.

02

Defensive API design

DTO validation, domain errors and a global handler keep 400, 404, 409 and unexpected failures consistent across endpoints.

03

Purpose-built data access

Repository queries aggregate only the statistics required for rankings, with indexed relationships and filters for leaderboard periods.

04

Explainable results

Every ranking response contains a per-rule breakdown rather than exposing an unexplained total score.

Engineering judgment

Key decisions

  1. Kept the ranking engine as a pure function so scoring rules can be unit-tested independently of the database.
  2. Used Decimal for monetary values instead of floating-point arithmetic.
  3. Excluded response-time points when there is no meaningful response or sales context, avoiding misleading rewards for incomplete data.
  4. Added time-period filtering and leaderboard limits at the API boundary while keeping aggregation inside the repository.
Next iteration

What I would improve

Interested in how I approach product and engineering problems?

Let’s talk →