Selected work

2025–26AdobeBaptist Health · Logitech · Delaware North · Fanatics

Shipping AI inside four enterprise stacks

At Adobe I embed with a customer's engineering and creative teams and integrate generative models into the systems they already run, then carry what we learn back into Adobe’s own products and tools. Most of the work is integration engineering: identity, asynchronous APIs, metadata contracts and the permissions real organizations have.

Outcome
Firefly panels in Illustrator and Photoshop in production with a health system’s designers, released as Adobe first-party plugins and part of a wider content supply chain; reference implementations customers’ IT teams build on; and field feedback that reaches Adobe’s product teams
Role
Forward-deployed engineer, from discovery calls and demos to the code that ships and the feedback that changes the product
Stack
Firefly Services · Adobe UXP · Adobe CEP · App Builder · AEM Assets · GenStudio · Substance 3D API · Frame.io V4 · InDesign API · IMS OAuth · MCP
enterprise customers
4
enterprise customers
Creative Cloud plugins: Illustrator, Photoshop, Premiere Pro in pilot
3
Creative Cloud plugins: Illustrator, Photoshop, Premiere Pro in pilot
rescope found at Baptist Health, 25 items to about 250
10×
rescope found at Baptist Health, 25 items to about 250

The problem

Enterprise creative teams already have a stack: Photoshop and Illustrator on every designer’s machine, AEM as the system of record, a project tool like Asana or Workfront, and legal and brand reviews that cannot be skipped. Firefly is useful to them only if it shows up inside that stack, carries the right metadata and respects the approvals. A demo in a browser tab does not get adopted.

What I built

Four engagements, one pattern: start at the point where people already work, keep credentials on a server, and make every generated asset land in the system of record with its metadata attached.

Photoshop panelUXP pluginWorkfrontcampaign + SKUAsanatask webhooksAdobe IMSOAuthOrchestratorApp Builder / FastAPIFirefly Servicesimage + custom modelsSubstance 3D APIrender digital twinInDesign APIcustom script jobsFrame.io V4review + custom actionsBlob stagingpresigned URLsAEM AssetsDAM + Content HubGenStudioperformance marketingSFTP + SharePointprint / digital
Field names follow the integration specs; values are illustrative. Credentials never leave the server side.

The same pattern, run end to end. Pick a brief and watch it move from intake through generation, brand and legal checks, and the fan-out into market and format variants. The run is a sample built from these pipelines; the copy and counts are illustrative.

Content supply chain

A sample run modeled on pipelines I built and designed

Intake

Asana task moved to In Production

brief: Fall menu launch
client: Delaware North
venue: stadium concessions
trigger: asana.in_production
review: frame.io v4

Master asset

InDesign API + Firefly Services

Checks

Rules from the brand book and legal

  • BrandType, color and logo lockup
  • LegalAllergen line added
  • Localees-US copy reviewed

Variants

Delivery

  • SFTP · print
  • SharePoint · digital
  • Asana · status

Ready

Baptist Health. Firefly panels inside Illustrator (CEP) and Photoshop (UXP). Designers generate with Firefly Image 3, 4 and 5 or the health system’s own custom models, and results land in AEM DAM with their generation metadata; in Illustrator they are vectorized with Image Trace and saved as JPG and SVG pairs. The panels are thin clients: an App Builder backend holds the service credentials and IMS OAuth handles sign-in, so the customer’s IT team never has to package or maintain anything. Both were released through the Creative Cloud marketplace as Adobe first-party plugins, which meant working through Adobe’s security review. Three to four designers adopted the Illustrator panel first, their feedback made the case for the Photoshop version, and both are now in production. An agentic Premiere Pro panel for video, where the editor can talk to a model that calls Firefly Services through MCP tools, is in pilot. Aligning all of it to the health system’s clinical service lines also showed that a conversion scoped at about 25 items was closer to 250 repeatable deliverables, which turned a plugin into a case for automation.

The panels are now one piece of a larger content supply chain I am helping Baptist Health build on the Adobe stack, with several projects and pipelines attached. Every campaign follows one flow: intake and a standard service-line taxonomy in Workfront, a single project that holds the brief, tasks and working files, the extensions saving straight into that project instead of to desktop drafts, proofing against the live file, and approved finals landing in AEM with the metadata that later AI page building depends on. The handoffs between those steps are being automated, so nobody re-keys a brief or hand-carries a ZIP.

Delaware North Marketing. I turned a complex automation requirement into a build-ready design for Delaware North’s IT team, and built a working reference implementation on App Builder for them to test against. A Frame.io custom action drives the InDesign API. A two-step asynchronous pattern answers Frame.io’s 5-second webhook limit, interaction IDs make retries idempotent, and server-to-server IMS auth with cached tokens is shared across both APIs. The pipeline walks the folder tree, submits InDesign jobs, polls them with bounded timeouts and writes timestamped outputs back to Frame.io in PDF, JPEG, PNG or INDD. Approved files route to print over SFTP or to SharePoint, with status written back to Asana. Their developers built their MuleSoft pipeline against it.

Logitech. An assets-at-scale design for a team with no in-house developers, in two paths: a no-code workflow they can own, and an API pipeline as a fallback. Digital twins render through the Substance 3D API, Firefly custom models build the scene, and every asset lands in AEM Content Hub with a shared contract: SKU, product family, market, language, channel, format and approval status, so GenStudio can find an approved French 1200×628 asset for one SKU in seconds. Along the way I found that the Substance 3D compositing API could not take pre-generated Firefly backgrounds, and proposed a supported workaround that keeps the brand palette, lighting and composition.

Fanatics Card Collectibles (Topps). A current engagement: automating trading card production and design ideation at massive scale with the Photoshop API and Firefly Creative Production workflows.

Inside Adobe

Forward-deployed work runs in two directions. The customer gets a working system; Adobe gets an honest report of what it took.

Field to product. I take what customers run into back to Adobe’s product and engineering teams as documented issues and proposals: API gaps like the Substance 3D compositing limit, AEM permission and provisioning blockers, and what the marketplace review needs from a partner before a plugin can ship.

Internal tools and enablement. I build internal tools for the forward-deployed team and write the guides that let the next engineer move faster, such as how to provision an LLM endpoint safely for a prototype. Each plugin became the starting point for the next: Illustrator, then Photoshop, then Premiere Pro.

Demos and workshops. I lead customer demos, discovery workshops and hands-on prompt training for design teams.

Constraints

Real customers mean real limits. AEM permission models that block write access until the right group exists. Service credentials that may never reach a desktop. Asynchronous APIs that need polling and retries. Security reviews before anything ships. Brand and legal review that has to stay human. Each design starts from those limits rather than working around them later.

My role

I run the discovery sessions and demos, write the integration specs and API contracts, build the working code, hand it over with documentation, and carry the findings back to Adobe’s product teams.

esc

↑↓ to move ↵ to open tab to ask the model

Specimen

No. 250,001

Planted
Season
Seed
Branches

I have planted more than 250,000 trees, most of them by hand on restoration crews. This one is yours.

STL, 70 mm tall on a 32 mm base. Every branch is at least 1.6 mm thick and within 45° of vertical, so it is designed to print upright without supports.