About

I am a cross-functional business operator specializing in Thailand market entry, B2B business development, commercial systems, and operational structuring. My background spans asset management, industrial B2B, SaaS/platforms, real estate, advertising/events, agriculture, and F&B operations. Across these fields, my consistent pattern has been entering unfamiliar or under-structured business environments, understanding the operating logic quickly, and building the commercial, operational, and governance structures required for execution.

Badges

Tastemaker
Tastemaker
Gone streaking
Gone streaking
Gone streaking 5
Gone streaking 5

Forums

Can a product be technically ready but not ready for customers?

I've spent a lot of time thinking about the difference between testing a product and validating it.

When you're building software, there are so many things you can measure. Does the functionality work? Are the calculations correct? Can users complete the workflow? Are the security controls working as intended?

Those are important questions, and you can spend months getting them right.

But there's another question that technical testing can't fully answer:

•

2d ago

Pressing Back on my result page dropped users into onboarding. How do you handle history in wizards?

I have a multi-step onboarding wizard in Next.js that ends on a generated result page. All my checks passed. Then I finished the flow by hand, pressed the browser Back button on the result page, and landed in onboarding again, not on the main screen a finished user should return to.

The cause was one word. Each navigation in the wizard used router.push, which adds a new entry to the browser s history. So the whole wizard stayed in the history stack, and Back walked straight into it. It happened in three places in one component.

The fix: router. replace instead of router.push at those three places. replace overwrites the current history entry instead of adding one, so finished steps don t pile up behind the result page. I kept router.refresh() so the server data still reloads. I merged it and confirmed it by pressing Back on a real finished flow.

Why I missed it: unit tests check what a screen renders and what a function returns. History is browser state, and no test of mine pressed Back. I found it by hand.

Palomino updates - October 2026

Hey Product Hunt!

I've been shipping updates to Palomino, our Rust-built workspace for running agents in parallel. Here's what's new:

  • Search across your entire workspace.

  • Pop chats and terminals out into their own windows.

  • Keep track of agents, commands and goals in the new activity panel.

  • Faster diffs, redesigned tool calls and a refreshed approvals UI.

  • Mark up and draw on images directly in Palomino.

  • Vercel's FX harness, plus a new theme and syntax highlighting.

Try it at https://trypalomino.com

View more