Skip to content
Portrait of Lucian Andrei Negoita Lucian
ES
Things I made
In progress

Mortgages ranked by what they cost in euros

Mortgage comparison for the Spanish market that ranks offers by total cost in euros, under Euribor scenarios, including the cost of linked products and each region's purchase tax.

How it works

ports and adapters, checked on every build
  1. Banco de España Euribor ingestion with rate limiting, raw copies and quarantine for implausible values.
  2. Pure domain Framework-free Java engine: French amortisation, IRR-based APR, bonifications and taxes.
  3. PostgreSQL Offers versioned with SCD2 and schema in Liquibase. Every old quote stays reproducible.
  4. Angular Shows the ranking and flags which figures are estimates. It computes nothing.

Why I built it

APR is misleading for variable and mixed mortgages: the regulation computes it with Euribor frozen. A bonified APR can also cost more in euros when the insurance the bank requires costs more than the interest it saves. I wanted a tool that answers the real question: how much will I pay.

What it taught me

  • Architecture rules only count when they break the build. ArchUnit forbids double for money and Spring imports in the domain.
  • Testcontainers caught a bug no review would have seen: a Hibernate timezone property shifted the end-of-validity sentinel by one hour.
  • Every figure that comes from a statute carries its legal reference in the database, validated at startup.

Built with

  • Java 17
  • Spring Boot 3
  • Hexagonal architecture
  • ArchUnit
  • PostgreSQL
  • Liquibase
  • Testcontainers
  • Angular
Documented in 12 ADRs
Project view: Mortgage Analyst
Next project LucyERP Custom ERP

Curious about the code?