Johnson
Bolhayon
Data automation engineer / full-stack web developer
I turn repetitive, high-volume data work into systems teams rely on.
- 9+ yrs
- data automation
- 140+
- franchises served
- In production
- on Google Cloud
PWX Tool Trackers
01 / FlagshipA support team managing product, inventory and cost operations across 140+ franchises in three countries was running on spreadsheets, manual POS exports and one-off scripts. Every monthly report meant dozens of downloads per store, and nothing recorded who changed what.
Designed, built and operate an internal web platform end-to-end as the sole developer, AI-assisted with Claude Code. Next.js 14 App Router, TypeScript, Tailwind and Supabase (PostgreSQL), shipped as a Docker container on Google Cloud Run behind a custom HTTPS domain with Cloud Build deploys, Secret Manager and Cloud Scheduler jobs. Every export engine is verified cell-for-cell against the manual report it replaces before it ships.
In daily production use since July 2026: a suite of Lightspeed POS tools, a no-code tracker builder, Jira / Freshdesk / Confluence in one dashboard, Gemini-powered ticket summaries, and a platform-wide audit log with one-click undo.
franchises
AU, NZ and US
API routes
lines of TypeScript
tools
store tokens secured
support tickets mirrored
of exports in minutes
diffs vs the legacy reports
Inside the platform
Four screens, recreated in the product's own dark chrome and running on synthetic data - the real tool never leaves the corporate network.
How it is wired
The browser never touches the database. Every read and write is a Zod-validated server route; secrets stay on the server.
Integrations
Seven external systems, each behind the server routes.
- read + write
Lightspeed X-Series
Products, inventory, sales history, suppliers, price books. Parallel version-cursor walks for big histories.
- writes
Google Drive and Sheets
Formatted stock-take sheets, month-by-month export trees, tracker archives - all via a service account.
- writes
Google Apps Script webhooks
Two separate web apps: sheet actions and assignment emails. The origin story, still in production.
- reads
Jira and Confluence
Each user's open issues and the team knowledge base, read with one scoped service token.
- reads
Freshdesk
Live ticket queues per agent and a whole-account mirror behind the Team Analytics dashboard.
- reads
Google Gemini
Structured-output ticket summaries, knowledge-base suggestions and product categorisation, quota-guarded with a model fallback chain.
- writes
Xero
Per-year COGS journals generated from POS sales, validated to zero diffs against a real export.
Security posture
Default-deny, audited, and dry-run by default.
Domain-restricted Google OAuth
NextAuth v5 with the corporate domain as the gate, plus a per-user approval list and an admin role. Sessions expire daily and approval is re-checked every 15 minutes.
Default-deny row-level security
Every table has RLS on with no anonymous policies. The browser never talks to the database; every read and write flows through a server-side API route validated with Zod.
Secrets never leave the server
About 150 per-store POS tokens and every service key live in GCP Secret Manager. They are read server-side, cached briefly, and never logged or shipped to the client.
Everything is auditable
Every write across the platform is logged with before/after JSON snapshots, powering a filterable audit-log viewer with one-click undo and restore.
Write tools earn the right to write
Long scans stream progress as NDJSON, a 30-minute HMAC-signed receipt proves the review happened, pushes are dry-run by default, and the operator re-types the target store code before anything is written.
The toolkit
Twelve operational tools plus the tracker builder, each replacing a manual job and each carrying its own safety rail.
Store setup
Supplier Update
Replaces name-only supplier records left behind by a store migration.
Price Book Migration
Replaces rebuilding custom price books by hand on a new account.
Import Products
Replaces the CSV export/import that drops multi-SKU codes, suppliers and composites.
Create Product Category
Replaces hand-building the standard three-level category tree in every new store.
Maintenance
Sales Export
Replaces dozens of manual monthly POS downloads per store.
Product Avg Cost Export
Replaces the manual product export feeding the average-cost workbook.
Delete Products
Replaces a purge of dormant products nobody dared do by hand.
Category Fix
Replaces products invisible to the data warehouse because of empty or off-scope categories.
Composite Units Check
Replaces silent margin corruption from wrong parent-to-composite unit breakdowns.
Bulk Price Update
Replaces updating one product's price store by store across the network.
Inventory
Stock Take Export
Replaces the manual inventory report download before every stocktake.
Reporting
Freshdesk Team Analytics
Replaces a monthly PDF ticket-volume report.
No-code builder
Adhoc Tracker Builder
Replaces yet another shared spreadsheet for every new team process.
Nine years, one direction
02 / ExperienceEvery role automated the repetitive work of the last one. Spreadsheets taught the discipline, scripts scaled it, and the platform is where it all runs now.
Jun 2025 - Present
Full-stackData and Inventory Transformation Specialist
Poolwerx Corporation Pty Ltd - Australia (Remote)
Sole developer of PWX Tool Trackers, an internal franchise-operations platform used daily by the support team across 140+ franchises. Also support the Lightspeed-Xero-Vital trading-terms integration, automate catalogue management via the Lightspeed API, and write ad hoc Snowflake SQL.
Read the flagship case studyMay 2024 - Jun 2025
Apps ScriptData Migration Executive
Poolwerx Corporation Pty Ltd - Australia (Remote)
End-to-end data processing for migrations across tech stacks for 140+ franchise partners: VBA macro tools for ETL and reconciliation, Apps Script tools for multi-sheet processing and API integration, and migration monitoring dashboards.
Nov 2022 - Jun 2025
Apps ScriptData Analyst / Data Migration Specialist
Kreloses PLT (SaaS platform) - Malaysia (Remote)
Restructured raw data from free-form Excel, POS exports and SQL dumps into import-ready formats. Built C# (LINQ) transformation tools, wrote MySQL / SQL Server / Firebird queries, and ran post-migration QA directly with clients. Full-time to May 2024, part-time after.
Feb 2018 - Apr 2022
Excel VBAData Analyst / Spreadsheet Specialist
IQVIA - Philippines (Hybrid)
Point of contact for the Product Reference Management team (Middle East and Africa). Self-taught Excel VBA and built the team's QC, data-input and product-processing automation. IQVIA Impact Program Award for innovations in data efficiency and quality control.
Aug 2017 - Jan 2018
Excel VBAPharmacy Benefits Analyst
Optum - Philippines (Onsite)
Reviewed pharmacy benefit requests for US healthcare clients in a high-volume, deadline-driven environment. Where the habit of getting data exactly right began.
Selected work
03 / ProjectsThe systems behind the platform, and the years of scripting and data work that led to it. Open any card for the detail.
Full-stackPoolwerx / 2025 - 2026Evo Platform Toolkit
The support team needed to pull customer, product, sales and inventory exports from Lightspeed and other platforms for many stores, each with its own credentials, without anyone ever handling a raw API token.
Evo Platform Toolkit
The support team needed to pull customer, product, sales and inventory exports from Lightspeed and other platforms for many stores, each with its own credentials, without anyone ever handling a raw API token.
Approach
A stateless web toolkit: FastAPI backend and a React 18 / TypeScript / Vite frontend. Per-store credentials are pulled at runtime from AWS Parameter Store under a least-privilege IAM group, exports stream straight to the browser as CSV, and every run is audit-logged. Dev, staging and production environments run from Docker Compose behind nginx with Google SSO, plus a credential-free mock mode for local work.
Outcome
Versioned releases across three environments with real deploy discipline; the tool the later Next.js platform grew out of, and whose exports became the cell-for-cell reference for the automated replacements.
Employer project - described here, not linked or screenshotted.
Full-stackPoolwerx / 2026Evo Tooling Standards
Internal tools were being built by one person with AI assistance at a pace the rest of the team could not follow or reproduce. Without a shared way of working, every new tool would be a snowflake.
Evo Tooling Standards
Internal tools were being built by one person with AI assistance at a pace the rest of the team could not follow or reproduce. Without a shared way of working, every new tool would be a snowflake.
Approach
Wrote the team's single home for how internal tooling is built: an onboarding walkthrough, engineering conventions, a WSL2 / Windows dev setup, AI-agent (Claude Code) workflow rules, infrastructure patterns for Docker Compose, Cloud Run and secrets, copy-to-start project templates, and a read-only machine 'doctor' script that checks a workstation against the standard.
Outcome
A documented, repeatable path from a fresh laptop to a deployable tool - the engineering standards a solo builder leaves behind so the work outlives them.
Employer project - described here, not linked or screenshotted.
Apps ScriptPoolwerx / 2025COGS automation in Google Apps Script
Monthly cost-of-goods-sold posting for franchise stores was a hand-run sequence: import the product list, process SKU sales, map registers to outlets, freeze the month and produce a journal for Xero.
COGS automation in Google Apps Script
Monthly cost-of-goods-sold posting for franchise stores was a hand-run sequence: import the product list, process SKU sales, map registers to outlets, freeze the month and produce a journal for Xero.
Approach
Built the whole workflow in Google Apps Script on top of Sheets: product-list imports, SKU sales processing, a monthly posting workflow with data freezing so closed months cannot drift, register-to-outlet mapping, and journal exports ready for Xero.
Outcome
A month-end that runs as a sequence of clicks instead of a day of spreadsheet surgery - and the direct ancestor of the API-driven Sales Export and Xero COGS engines in the later platform.
Employer project - described here, not linked or screenshotted.
Apps ScriptPoolwerx / May 2024 - Jun 2025Franchise migration tooling and dashboards
140+ franchise partners were migrating across tech stacks. Each migration meant cleaning, validating, transforming and extracting data, reconciling records, deduplicating, and reporting status to stakeholders - repeatedly.
Franchise migration tooling and dashboards
140+ franchise partners were migrating across tech stacks. Each migration meant cleaning, validating, transforming and extracting data, reconciling records, deduplicating, and reporting status to stakeholders - repeatedly.
Approach
Custom VBA macro tools automated the repetitive ETL steps, consolidated stakeholder reports, reconciled records and flagged errors from logic rules. Google Apps Script tools handled multi-sheet processing, pulled and pushed data through APIs, sent automated status emails and managed Drive files dynamically. Migration monitoring dashboards tracked readiness and progress per franchise.
Outcome
Rule-based validation and QA testing kept data accuracy and referential integrity across every migration, with progress visible to the business at a glance.
Employer project - described here, not linked or screenshotted.
Apps ScriptKreloses PLT / Nov 2022 - Jun 2025SaaS onboarding data migration
Every new client arrived with data in a different shape - free-form Excel, POS exports, SQL dumps - and all of it had to match the platform's import schema before go-live.
SaaS onboarding data migration
Every new client arrived with data in a different shape - free-form Excel, POS exports, SQL dumps - and all of it had to match the platform's import schema before go-live.
Approach
Built C# (LINQ) tools to automate complex transformations and standardise records from large datasets; wrote SQL against MySQL, SQL Server and Firebird to filter, clean and export exactly what the import needed; ran post-migration QA on record counts and format compliance, and worked directly with clients to define goals and manage the transition from legacy systems.
Outcome
Import-ready data on a repeatable pipeline instead of a per-client scramble, with QA evidence clients could sign off on.
Employer project - described here, not linked or screenshotted.
Excel VBAIQVIA / Feb 2018 - Apr 2022Where it started: Excel VBA at IQVIA
The Product Reference Management team for the Middle East and Africa processed pharmaceutical product data by hand: QC checks, data input, product classification and migrations into internal databases, all under weekly and monthly production deadlines.
Where it started: Excel VBA at IQVIA
The Product Reference Management team for the Middle East and Africa processed pharmaceutical product data by hand: QC checks, data input, product classification and migrations into internal databases, all under weekly and monthly production deadlines.
Approach
Taught myself Excel VBA and built the team's automation: an automated QC tool with role-based templates, a consumer-health product tracker that removed manual duplication, and a patent-intelligence tool that consolidated 60+ global pharmaceutical datasets. Led the weekly and monthly production meetings and coordinated with global teams.
Outcome
Product migrations and imports preserved structure and classification integrity, and the tooling earned the IQVIA Impact Program Award for innovations improving data efficiency and quality control.
Employer project - described here, not linked or screenshotted.
What I bring
04 / SkillsDepth in spreadsheets and data pipelines, extended in the last two years into full-stack web, cloud and API integration.
Spreadsheets
- Microsoft Excel (advanced formulas, pivots, Power Query, dashboards)
- Excel VBA
- Google Sheets
Data and analytics
- Data migration, cleansing and validation
- Deduplication and reconciliation
- QA testing against reference outputs
- Power BI and dashboards
Automation and scripting
- Google Apps Script
- C# (LINQ)
- ETL pipelines and bulk imports
SQL and databases
- PostgreSQL (RLS, migration-managed schemas)
- Supabase
- MySQL, SQL Server, Firebird
- Snowflake
APIs and integrations
- REST integration, OAuth and scoped tokens, HMAC signing, rate-limit handling
- Lightspeed X-Series API
- Google Sheets and Drive APIs (service accounts)
- Atlassian (Jira, Confluence), Freshdesk, Xero APIs
- Google Gemini API (structured output)
Web development
- Next.js 14 (App Router), React, TypeScript
- Tailwind CSS
- NextAuth (Auth.js), Google OAuth, RBAC
- Node.js, Git
Cloud and DevOps
- Google Cloud: Cloud Run, Cloud Build, Artifact Registry, Secret Manager, Cloud Scheduler
- Docker, WSL2
- AWS Parameter Store and IAM
AI-assisted development
- Claude Code: spec-driven, verification-first delivery
- Shipping AI product features (Gemini summaries, KB suggestions, categorisation) with quota guards
How I work
Verification first
An automated report is not done until it matches the manual one cell for cell. Export engines ship with a diff against the real thing, and a zero is the only acceptable number.
Probe before you write
Every write shape against an external API is proven on a live test account before it reaches a real store. Dry run is the default; the push is the exception you earn.
Spec-driven, AI-assisted
I use Claude Code to deliver production software solo at team pace. The AI does not lower the bar: every change is specified, reviewed and verified like any other engineering work.
A live tool never breaks for a neighbour
Shared code between tools is copied with a note, not cross-imported. Deliberately anti-DRY where the alternative is a validated tool breaking because a different one needed something similar.
Leave a trail
Every write logs who, what and the before/after. Undo is a feature, not a database restore.
If your team has repetitive data work, I would like to make it disappear.
Open to remote roles and contracts in data automation, internal tooling and full-stack web.
- Emailjohnsondbolhayon@gmail.com
- LinkedInin/johnson-bolhayon
- GitHubgithub.com/Unpred-Ton
- Based inPhilippines (Remote)