My work combines product ownership with enough technical depth to trace a requirement into the system that has to deliver it. At Marsh, that means Passport’s roadmap and vendor relationship. At Protégitas and LegalBrave, it meant Salesforce ownership and payment integrations. My independent products give me a place to build and inspect the technical decisions directly.
Agree on value before sequencing delivery
Global stakeholder management and conflict resolution are part of my daily work on Passport: I negotiate competing priorities, agree which commitments shift and define scope and delivery phases by business value; coordinate business, technology and vendor teams; and keep stakeholders informed of the agreements and their implications.
This is a recurring part of my role: making trade-offs explicit and coordinating people who do not report to me. The Passport case describes that responsibility alongside the country expansion.
Trace what the system actually does
Documentation must describe the system teams are integrating with. In Passport, I used AI to map accumulated customizations, re-documented the API against the implemented system, and generated Postman collections with AI for the IAM team’s user-provisioning use cases. I also write SQL behind Cognos reports, which lets me work directly with reporting requirements.
In payments, I treat a webhook as evidence of an event that still has to reach the operational system. The billing case explains how I paired webhook handling with periodic processor-to-CRM reconciliation to catch missed or out-of-order events.
Choose a delivery path that can evolve
At LegalBrave and Protégitas, I released integrations with Zapier and Pipedream before rebuilding them as production services on AWS. I also brought Salesforce ownership in house, while continuing to oversee delivery from the separate web development consultancy.
These decisions connect delivery speed to operational ownership. I can work on the implementation, define requirements and manage the vendor relationship as the situation calls for it.
Give AI a bounded job
My independent payment orchestrator keeps routing deterministic and uses a language model for decline normalization at the edges. Its replay uses synthetic data; the result is a technical demonstration rather than a measured merchant outcome.
In nutri., I design, build and operate a personal production PWA. The AI features include structured nutrition extraction and retrieval with citation grounding. Model changes are evaluated against a golden set, with schema constraints and safe fallbacks around the outputs that can be wrong.
These products make my approach inspectable through public code and demos. They are separate from my enterprise employment experience.
Verify the outcome and retain its limits
I use adversarial review to look for claims the evidence cannot support, and automated checks for the behavior the code must preserve. The routing case includes an explicit distinction between a directional replay and an A/B result. The offline-first case connects a user-facing delay to duplicate data and explains how the queue and identifier design address it.
Verification informs the product decision: whether a change is ready, what it actually improves and what remains unknown. That is the connection between my work on global platforms and the software I build independently.