2023 · Flutter Developer

Farmacias Especializadas

Online pharmacy app (Fesa) I was brought into as a specialist: the team was stuck on a map bug where coordinates sometimes resolved to inconsistent addresses. I debugged it, refactored the app's fragmented map implementations into one reliable path, and handled role-based views for doctors and regular buyers.

Flutter Google Maps Geolocation Refactoring Debugging Role-based UI
Farmacias Especializadas (Fesa)

Overview

Farmacias Especializadas (Fesa) is an online pharmacy app — customers buy medicines, get home delivery, find medication, and use a loyalty program. I didn’t build the app from scratch: the team was already shipping it and hit a map bug they couldn’t crack, so they brought me in and integrated me into the project to fix it. My work centered on the app’s maps and geolocation, plus the role-based experience for different kinds of users.

The problem

The map was producing inconsistent data: the same coordinates would sometimes resolve to different addresses, so users couldn’t trust what the app showed them. Under the hood, the root cause was that the map had been implemented several different ways across the codebase — no single source of truth — which made the behavior unpredictable and the bug hard to pin down.

What I did

  • Fixed the coordinate/address bug — traced why the same coordinates resolved to different addresses and corrected the map logic so locations resolved consistently.
  • Refactored the map into one implementation — the app had multiple, divergent map implementations; I consolidated them into a single, consistent approach that was easier to reason about and maintain.
  • Role-based views — handled the different experiences per user type (e.g. doctors vs. regular buyers), so each role saw the views relevant to them.

Impact

The map went from untrustworthy to reliable: coordinates resolved to consistent addresses, removing the confusing, inconsistent data users had been seeing. Collapsing several map implementations into one also left the team with a cleaner, more maintainable codebase to keep building on.

Language · Idioma

English Español