Work behind the offer
Connections I have actually built
From booking to the right calendar event
For GuerrillaZen Fitness, I built a GoHighLevel-to-website appointment bridge. When new records appeared late through the API, I changed the flow to wait for the fresh appointment and keep the confirmation and calendar links tied to the same event.
Read the integration story →
Payments connected to a working product
As the founder and developer of Find My Triggers, I built the SvelteKit product around logging, reports, account access and payments through Dodo Payments or Gumroad. It is product ownership as well as integration work.
Read the product build story →
I also built GuerrillaZen’s site-owned conversion dashboard: a scheduled API collector joins application and booking records in memory, stores aggregate counts and keeps the last good snapshot if a refresh fails. See the reporting approach →
Beyond the happy path
The connection has to survive real use
Duplicate events, delayed records and failed requests can turn a simple automation into repeated emails, the wrong confirmation or missing access. I check the event, the destination and the visible result, not just whether an API returned a success code.
Depending on the workflow, the scope can include webhook signature checks, duplicate protection, bounded retries, useful failure logs and a manual recovery path. I agree these requirements before building so the integration is understandable and supportable.
How the work runs
One workflow, a clear handover
Map the handoff
Identify what starts the workflow, which records matter and what should happen in the destination. Check the API documentation, permissions and service limits first.
Choose the smallest solution
Use an existing integration where it fits, or a small custom endpoint, Cloudflare Worker or server-side script where it does not. No new platform just for the sake of it.
Test the complete path
Check representative inputs, repeat events and failure states using safe test data. Confirm the customer-facing result as well as the backend response.
Leave it in your control
Hand over the code or configuration, setup notes, verification results and recovery steps. Identify ownership, hosting and any ongoing service costs before release.
A sensible starting scope
A new connection or a specific broken handoff
Send one workflow to build or repair, even if you do not know which layer is failing. I will inspect what the systems allow and define the next step. Large CRM rebuilds, broad data migrations and ongoing operations need separate scoping; they are not silently bundled into a small integration.