1
Media Buying
Your ads, placed where your customers actually look. I manage campaigns across Google, Meta, and display networks — turning ad spend into measurable revenue, not just impressions.
I turn data into decisions and campaigns into revenue. With 22 years in digital marketing — from managing MYR 150K+ monthly ad budgets for insurance giants to raising MYR 7 million for social causes — I've learned that great marketing lives at the intersection of analytical rigor and creative instinct. I build strategies grounded in real numbers, not hunches.
Years of experience
Your ads, placed where your customers actually look. I manage campaigns across Google, Meta, and display networks — turning ad spend into measurable revenue, not just impressions.
More conversions from the traffic you already have. I analyze your funnel, test what works, and fix what doesn't — because driving traffic to a leaky bucket is just expensive water play.
Qualified leads that actually pick up the phone. Using AI-powered targeting and proven nurture sequences, I build pipelines that fill your CRM with prospects ready to buy — not just browse.
New markets, strategic partnerships, and revenue channels you haven't tapped yet. I help you identify growth opportunities and build the relationships that turn them into real business.
Dashboards that tell you what to do, not just what happened. I turn your raw data into clear, actionable insights — so every marketing decision is backed by evidence, not guesswork.
Custom tools that save hours, not create headaches. From marketing automation scripts to full web applications, I build solutions that make your processes faster and your team more productive.

When I started building the Webfluentia dashboard, my first instinct was to handle data isolation in application code. Check the user's role, filter queries by client ID, add middleware to every API route. It worked, but it was fragile — one missing filter and a client could see another client's data. Then I discovered Supabase Row Level Security (RLS), and it changed how I think about multi-tenant data isolation entirely. Instead of trusting application code to filter data correctly, the database itself enforces who can see what. Even if my code has a bug, the wrong data never leaves PostgreSQL. Here's how I implemented it and what I learned.

When you're managing a single website, project structure doesn't matter much. Throw everything in one folder, deploy it, move on. But when you're running five websites, a dashboard, a documentation site, shared UI components, and deployment scripts — all for the same agency — things get messy fast. I run two Turborepo monorepos: one for Webfluentia (the agency's own sites and tools) and one for a client group. Between them, that's 10+ apps sharing code, configs, and deployment pipelines. Here's why Turborepo works for this setup, what problems it actually solves, and where it falls short.