// about

Reporting was the day job. Automation was the real work.

I'm Alvin, based in the Philippines. I've spent more than 20 years helping reporting teams replace repetitive manual work with reliable systems.

// background

A career built around making work easier.

n8n and Python are just the current tools. It's the same job I've had this whole time. I'm just doing it independently now, for whoever needs it.

2004 – 2012

Reporting across IBM, Maersk, Convergys, and TeleTech

I led reporting teams at IBM, Maersk, Convergys, and TeleTech, introducing macros and process automations that replaced manual spreadsheet work.

2012 – 2018

BI, data science, and risk management at Manulife

I moved through reporting supervisor, risk analytics lead, data scientist, and BI lead roles, then managed the technology risk management team, delivering QlikView dashboards and automating the Global Information Risk Dashboard.

2018 – 2023

Dashboards and backend engineering at Global Process Manager and UBX

I built enterprise Qlik Sense dashboards for GN Audio, then moved to UBX as a backend software engineer using Python and PostgreSQL, and later as a data visualization analyst building Tableau and Looker Studio dashboards.

2023 – Present

Reporting automation and support at Proactis

I started out automating QlikView and NPrinting refreshes, and now I lead reporting and analytics for the customer support team.

// selected results

Actual work. Real impact.

10+ hrs/mo

Automating client customizations our tool couldn't handle

Some client requests needed changes our reporting tool just couldn't do out of the box. I built post-processing scripts to handle those customizations automatically instead of doing them by hand each time, saving at least 10 hours a month.

80% faster

Cutting report execution time by 80 percent

Some of our reports were running on long, unoptimized queries. I identified the worst offenders and worked with the backend team to replace them, cutting execution time by at least 80 percent.

75% fewer

Reducing server issues by 75 percent with a nightly refresh

Our reporting server kept running into issues during the day. I implemented a nightly service refresh that heads off most of those problems before anyone's even logged in, cutting server-related issues by 75 percent.

~15x faster

Automating QlikView license renewals across three engines

QlikView Desktop licenses need re-leasing every 30 days, and NPrinting can't generate client reports without one, but leases sometimes expired early, unpredictably. I automated the renewal to run weekly across all three engines. What used to take about 5 minutes per engine, 15 minutes total, now finishes in under a minute, running concurrently.

1 source of truth

One semantic model instead of several disagreeing reports

Different reports were calculating the same numbers differently, so nobody could agree on which dashboard was right. I built a centralized Power BI semantic model that every report and dashboard now pulls from, so there's exactly one source of truth instead of several.

Powers this site

The lead-generation workflow behind this site

I run a self-hosted n8n instance that checks the n8n community forum for people looking for paid help. It's the same instance behind the live demos on this site's homepage. The plan started with Reddit, then Google, but both locked down the API access it would need, so the workflow moved to the community forum instead.

Grounded answers

A retrieval-augmented chat assistant for this site

The chat widget on this site answers questions about how I work using a curated knowledge base rather than the model's own memory, and it admits when the knowledge base doesn't cover something. The brain behind it is a self-hosted n8n AI Agent workflow, so it's both a working feature and a piece of automation I can screenshot and walk someone through. The metered LLM API behind it costs well under a dollar a month, with a hard spend cap on top.

1 post/day

A daily news card posted to Facebook behind an approval gate

Once a day this workflow picks one Baguio City news story, classifies it with an LLM against a strict output shape, renders it as a branded card with generated artwork, and posts it to a local Facebook Page with the source link as the first comment. Nothing goes out automatically: every post waits on a one-tap approval in Slack, and "nothing worth posting today" is a valid result. It tracks what it has already posted so no story runs twice.

Reads + checks

An invoice reader that catches its own math errors

A demo on this site takes a sample invoice or receipt, sends the image to a vision model behind a strict output schema, and returns the vendor, dates, and every line item as structured data. It then re-adds the line items in plain code and flags any total that does not reconcile, so a transposed digit shows up instead of sliding through. The workflow is a thin n8n gateway over a Python service; each sample's result is cached, so the live model is called at most a handful of times.

// beyond the highlights

Also worth a mention.

I'm also exploring Power BI's MCP integration with Claude, to see how much of the report-building itself can move even faster.

  • A config toggle that replaced an hours-long manual script edit for switching between full and incremental QlikView loads, saving about 12 man-hours a month.
  • A Power Automate flow that checks the NPrinting API for failed report tasks and re-runs them automatically, capped at what the server can actually handle.
  • A faster deploy process that cut releases down to 10 to 15 minutes instead of waiting on nightly batch jobs.
  • Power BI connected directly to the 8x8 Analytics API, replacing a manual export-and-rebuild process for call center reporting.
  • A Power Automate flow that pings my boss on Teams the moment an incident is logged, instead of it getting buried in a busy channel.
  • A scheduled Power BI report that generates and emails itself on a set cadence.
  • An office-TV dashboard built in PowerPoint with a Power BI plug-in, refreshing every 30 minutes at no extra licensing cost.
  • A Microsoft Copilot 365 agent (still in testing) that drafts customer email responses against our support guidebook.
  • A from-scratch redesign of a generic Zendesk Help Center to match our brand and actually help people self-serve.

What keeps repeating?

If a process at your business is still held together by spreadsheets, copy-paste, and one person's memory, I'd like to hear about it.

Discuss your workflow