Páginas Amarillas — Shipping a Local Directory on Two Platforms

Role: Senior Software Developer, later team lead — Caribe Media Group (formerly Páginas Amarillas Dominicana)

Timeline: Apr 2012 – Oct 2015 

Markets: Dominican Republic and Puerto Rico 

Stack: Java, Eclipse/ADT, Objective-C, .NET


Context

Páginas Amarillas put the phone book on the phone: search businesses by name or category, see hours, location, website and number, find them on an interactive map, and rate and review them. On the other side it was an advertising platform, giving businesses push notifications and basic offers to reach users directly. In the early 2010s, before Google had saturated local business search in this market, that was genuinely the fastest way to find an open pharmacy.

I joined to build and maintain the company’s website, which was the core business. I left three years later having shipped their mobile portfolio on both platforms and led the team that maintained it.


Problem 1: Android before the tooling existed

Android mattered more than iOS in the Dominican market, it was simply what most people carried, so the company made it the priority and I became their first Android engineer.

The platform was harder to work with then than it is now. Android Studio didn’t exist yet; development meant Eclipse with the ADT plugin, which was slow and unreliable enough that some bugs took several deployment cycles to pin down. The XML layout system was cumbersome for the denser screens this app needed, so for some views I built the layouts in vanilla Java rather than fight the declarative system.

Working with the backend and design teams, I shipped it in seven months. It reached tens of thousands of downloads and held a 4.3-star rating.


Problem 2: Objective-C with no garbage collector

Once Android was stable I moved to build the iOS version — new to the Mac, and coming from Java to a language that shared almost nothing with it.

The real difficulty wasn’t syntax, it was ownership. Java had handled memory for me. Objective-C did not: pointers, reference counting, retain cycles in blocks, and the discipline of knowing exactly which object owned which. Chasing those bugs forced me to learn how the runtime actually worked rather than treating it as an abstraction — which turned out to be the single most useful thing I learned in this job, and the foundation for every iOS role I’ve held since.

The iOS app reached the App Store in four months and consistently ranked at the top of its category in both the Dominican Republic and Puerto Rico.


Problem 3: One engineer, four products

The portfolio outgrew a single developer. Alongside Páginas Amarillas we ran three more app families, each on both platforms: Places to Go (location-first discovery and location-based offers), Guía de la Salud (hospitals, clinics and pharmacies), and Urbe (real estate listings).

I moved into a team lead role, hired and mentored a second Android engineer, and brought him up to the point where he could own the Android codebase outright — which is what freed me to build the iOS side at all. My team eventually grew to 4 great developers and we built all four product lines.

That work earned me Employee of the Year in 2014.


Outcomes

Two native apps built from zero on two platforms I hadn’t shipped before, seven and four months respectively. Tens of thousands of downloads, 4.3 stars on Android, top-of-category on iOS across two countries. Four product lines maintained by a team I built and led. Employee of the Year, 2014.

All of these apps have since been delisted; only the company’s web properties remain. You can find them at https://paginasamarillas.com.do/es/home.