
Recovered an inherited project and shipped to a high-volume customer base
A regional supermarket chain in Venezuela had an e-commerce initiative in flight when I joined: there was a Node.js backend, an Angular frontend, and a customer base waiting for it. What was missing was the path from "code in a repo" to "an app customers actually use."
The shape of the work is one any engineer who has joined a pre-launch greenfield will recognise:
The brief was simple in one sentence and hard in practice: finish it and ship it.
| Constraint | Reality |
|---|---|
| Team size | 2 engineers total, including me, embedded with the business |
| Calendar | Months, not quarters — the chain had already waited too long |
| Stack inherited | Node.js backend, Angular frontend, no deploy story |
| Customer surface | Needed to reach customers on phones, fast, without an app-store gauntlet |
| Adjacent work | Customer segmentation and exchange-rate ingestion were also on the table |
The non-negotiable: ship something customers could use, then build the platform underneath that made the next thing easy.
The fastest path to a phone screen wasn't an iOS/Android binary — it was a Progressive Web App that customers could install from a link.
| Option | Trade-off | Chose |
|---|---|---|
| Build native iOS + Android apps from day one | Months of platform-specific work; app-store review on every change | |
| Ship a PWA from the existing Angular code, wrap as mobile apps later | Web-first surface available in days, not months; one codebase to maintain |
The mobile apps came after, on the foundation the PWA had already proven.
Tempting as it was to chase the feature backlog, the bottleneck wasn't features — it was that nothing could be deployed reliably.
| Option | Trade-off | Chose |
|---|---|---|
| Hand-deploy until launch, automate later | Faster on day one; every deploy after that costs the same hour | |
| Stand up a private Docker registry + a thin CI/CD pipeline first | Two weeks of platform work before any new feature shipped; every deploy after that was free |
Same principle as similar rescue work: stabilize the runtime before chasing the roadmap. The pipeline outlived the project — the team after me kept using it for the Node.js and Angular services that came next.
Marketing wanted to know which customers to talk to and when. I ran an RFM analysis (Recency, Frequency, Monetary) on the order data the new platform was already collecting.
| Option | Trade-off | Chose |
|---|---|---|
| Wait until a dedicated data team exists | Months of waiting on insight the business needed now | |
| Run RFM on the existing data, hand the segments to marketing | Lightweight, immediately useful, and proved the new platform's data was worth something |
It wasn't a "data platform." It was a one-engineer analysis that paid for itself the first week marketing used it.
Pricing in Venezuela depends on the official exchange rate, which someone on the team was copy-pasting daily. Manual rate entry was both error-prone and beneath the pay grade of every person doing it.
| Option | Trade-off | Chose |
|---|---|---|
| Keep doing it manually | Free until it isn't — a single typo moves prices on a whole catalog | |
| Scrape the official rate on a schedule and push it into the platform | A small ingestion job; removes a daily chore and a class of pricing bugs |
This is the seed of the BCV-scraper work I later wrote about publicly. Small automations like this one tend to pay back quickly, mostly because they remove a recurring human failure mode rather than because they save time directly.
By the end of the engagement:
In hindsight, the sequencing mattered more than the headcount: getting the deploy path in place before chasing the feature backlog is what made the rest of it shippable by a small team.
Same brief today, same team size, same constraints. The instincts wouldn't change; the targets would.
The shape of the work stays the same — deploy path first, customer surface next, the smaller automations after that. GCP just removes a lot of the platform plumbing that used to be the job.
If you're working through something similar and want a second pair of eyes, I'm happy to talk it through — reach out here.
A nationwide mobile sales-quotation app, integrated with SAP
Architecting and shipping a mobile-first sales-quotation application on Laravel + Filament, integrated with SAP as the source of truth for catalog and pricing, and rolled out to sales teams across the country.
From Nuxt to Hugo and Back Again
Why I migrated this site from Nuxt 2 to Hugo and later returned to Nuxt—what changed, what stayed, and the decisions that kept the rebuild manageable.