Portfolio

Freelance Project

PBG: Real Estate Management Platform

Modernization and maintenance of a real estate platform with a public website, admin panel and API. 50% performance improvement and infrastructure management on Digital Ocean.

2023 Client project
ReactPHPDockerDigital OceanPerformance

Tech stack

The technologies used and why.

Frontend React
API PHP Lumen
Infra Docker
Infra Digital Ocean
Base de datos MariaDB
UI Ant Design
Migración (próxima) Node.js

The project

PBG is a real estate platform that includes a public website, an internal admin panel and a REST API connecting both. The project arrived with several years of development behind it: working code but with accumulated technical debt, degraded performance and an infrastructure that needed attention.

What I did

Maintenance and new features

I took over the project and owned the full cycle: requirements analysis, development, testing and deploy. Both the admin panel (React + Ant Design) and the public website (React) received functionality improvements and fixes for critical bugs that were live in production.

Performance optimization

The platform had visible loading problems. After a bottleneck analysis, I applied optimizations on the frontend (bundle size, lazy loading, unnecessary queries) and on the API (N+1 queries, caching). The result was a 50% improvement in load times. With the planned migration, the numbers will improve significantly more.

Infrastructure management

The platform runs on Digital Ocean. I handled server management, environment configuration, deploys and maintenance windows. I coordinated with the team to guarantee availability at the critical moments.

Resolving a critical data loss in production

This is the most important problem I solved on the project. The MariaDB database ran inside a Docker container with no persistence or backup of any kind. Every time the container crashed or restarted, the system came back up from an old dump: everything loaded, modified or published since that date was wiped. Without anyone knowing until the damage was already done.

Two serious problems in one: no real persistence and no backups whatsoever.

The fix came in two steps. First, I moved MariaDB out of the container and installed it directly on the host, decoupling the database lifecycle from the container lifecycle. Second, I set up a cron job that runs every day at 3am, generates a database dump and stores it on the server. The job keeps the last 7 days of backups and removes the older ones automatically.

Today the platform has real persistence and a rotating backup history. Any incident can be resolved by restoring from the previous day’s backup.

Next steps

The current stack (legacy React + PHP Lumen) is planned to migrate to a more modern architecture: a Node.js API, a frontend updated to current versions of React and Next.js. The cleanup and documentation work done so far makes that transition easier.