← All speakers

Bio, Work & Ideas

Paul Asjes

Conference affiliation: ElevenLabs · 2025

On this page

Paul Asjes is a Developer Experience Engineer at ElevenLabs, building developer tools and writing about the web. His career spans product engineering, developer relations at Stripe, and developer-experience work at WorkOS. Across that work, he examines how APIs can help their users understand what to do next—a question that now includes the coding agents integrating those APIs.

From product engineering to developer relations

Asjes began as a Flash developer, then worked in frontend and full-stack engineering at Tumblr and startups before moving into developer advocacy. His professional background connects his developer-experience work to more than a decade of building products.

By 2021, he was a developer advocate at Stripe, where he later ran developer relations. In his account of the transition, he describes listening to developers as practical engineering work: frustrations need to become actionable changes for product teams. Helping someone get unstuck also reveals what the product needs to do better.

At Stripe, Asjes developed a sustained argument for human-centered API design. An API is part of the product; a confusing interface can prevent developers from discovering the underlying service’s value. His writing on API design patterns examines the tradeoff between a simple, opinionated integration path and the flexibility more demanding applications require. The design depends on the audience and which decisions developers should have to make themselves.

His work on error messages makes that argument concrete. A useful error identifies the failed input, explains the likely cause, and suggests a remedy. When a customer lookup uses test credentials against a live-mode object, naming the mismatch saves the developer from guessing. He also sets limits on disclosure: helpful errors should not expose sensitive internals or reveal whether an authentication identity exists.

Making application infrastructure easier to use

At WorkOS, Asjes brought these concerns into authentication and enterprise application development. His 2024 writing explained several complementary parts of that infrastructure:

  • Session management: His explanation of sessions connects simple integration with server-side revocation and graceful handling of expiring sessions—behavior developers need to get right even when authentication is not their product’s main purpose.
  • Roles and permissions: His introduction to roles explains permission-based access levels, helping developers distinguish what a signed-in user is allowed to do.
  • Runtime support and application foundations: He explained WorkOS Node SDK support for Cloudflare Workers, Deno, and Bun, then authored the November 2024 announcement of the Next.js B2B Starter Kit. These efforts help developers integrate infrastructure into the environments and applications they already use.

Designing for coding agents and their users

At ElevenLabs, Asjes’s work extends API usability to coding agents whose knowledge may lag behind a changing product. His proposals and projects address different parts of that problem:

  • Self-healing API integrations: In 2025, Asjes proposed a natural-language integration layer that could consult an OpenAPI specification, cache successful request patterns, and regenerate them when a schema changes. He treats this as an exploratory design: repairing a schema mismatch cannot necessarily resolve a change in meaning, and automatic retries can mistake bad input for an API change. His preferred direction uses predefined MCP tools to constrain the operations a model can perform.
  • Agent education and usable output: Asjes distinguishes skills from MCP tools: skills teach an agent how to approach a task, supplying current product knowledge and explicit warnings; tools execute defined actions. He also built the ElevenLabs MCP Player, which gives generated audio a playable interface instead of leaving the user with a file path. This work addresses both the agent performing the integration and the person receiving its results.
  • Agents-as-code: Asjes co-authored the August 2026 introduction of ElevenLabs CLI v1 with Min Kim and Tadas Petra. The workflow brings voice-agent configurations into local files so teams can edit them, review differences, and preview changes before applying them. Machine-readable command schemas and structured errors help coding agents construct requests without guessing. It carries his earlier API-design concerns into a workflow where developers and software agents both need clear guidance.

Read the topics behind these talks

1 conference talk

Key ideas

Scroll to read ↓

Follow a voice agent from speech recognition to language switching, tool calls and spoken replies, then examine what breaks with slow systems, mixed languages and domain vocabulary.

  • Which languages—and which accents—should the agent speak?
    0:22 ↗
  • Text to Bark: generated sound is not translation
    5:08 ↗
  • Speech, text, intelligence, speech
    8:26 ↗
  • A transcript can carry timing, speakers and events
    10:51 ↗
  • Forward a voice message, get readable text
    12:39 ↗
  • Choose the intelligence layer and the speaking voice
    17:05 ↗
  • Configure a conference agent
    20:31 ↗
  • Switch languages without restarting the conversation
    23:38 ↗
  • Language recognition selects a configured voice
    28:49 ↗
  • Give the agent appointment-setting tools
    30:58 ↗
  • Balance response time, session cost and task complexity
    33:01 ↗
  • Keep the caller informed while tools run
    39:06 ↗
  • A mixed-language question exposes a recognition boundary
    43:56 ↗
  • Voice generation needs misuse controls
    49:00 ↗
  • Test the languages people actually mix
    52:00 ↗
  • Generated voice is only one part of an avatar
    55:06 ↗
  • Pronouncing SAP and recognizing Joule are different problems
    57:49 ↗

References