{
 "schema": "aiblocks-page/1",
 "id": "agency-engineering-webassembly-engineer",
 "type": "agent",
 "name": "WebAssembly engineer agent",
 "summary": "Find out if WebAssembly will speed up your web app or plugin system, then plan the port, the file size and the safe limits.",
 "headline": "WebAssembly engineer agent",
 "subhead": "Give it the slow code, the language it is in and where it runs. It checks if WebAssembly is a good fit before you port anything, then plans the benchmark, the boundary with JavaScript, the file size and the sandbox. You get a go or no-go call and a plan.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "codebase",
   "required": false,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  }
 ],
 "you_give": [
  "The task or code you want to speed up or isolate, in plain words",
  "The language it is written in, such as Rust, C++ or Go",
  "Where it will run, such as the browser, a server or the edge",
  "Your current speed on real data, such as 40 milliseconds per image (optional)",
  "Browsers or runtimes you must support, and your file size limit (optional)",
  "The code itself, if you can share it (optional)"
 ],
 "you_get": [
  "A fit verdict on whether Wasm helps, with the reason",
  "A benchmark plan to measure the current version first",
  "A boundary design that lists what crosses to Wasm, in what batches, and who owns the memory",
  "A toolchain choice by language, with the size and start-up cost",
  "A plan to shrink and stream the file",
  "A sandbox and fallback plan, plus the open questions"
 ],
 "use_when": [
  "A browser feature, such as image work, a parser or a codec, is too slow in JavaScript.",
  "You want to run other people's plugins on your server without giving them your files or network.",
  "Someone says \"let's rewrite it in Rust and compile it to Wasm\" and you want proof first.",
  "Your Wasm file is several megabytes and slows the first page load."
 ],
 "skip_when": [
  "Your slow part is page layout, DOM work or network calls. Use the Frontend developer.",
  "You want to clean up Rust code, not compile it to Wasm. Use the Rust refactoring planner.",
  "You need to measure the speed of a whole site or API. Use the Performance benchmark planner.",
  "You need a security review of your sandbox setup. Use the Security Architect agent."
 ],
 "output_sample": {
  "input": [
   "The task or code you want to speed up or isolate",
   "The language and where it runs",
   "Your current timing on real data (optional)",
   "The browsers or runtimes you must support (optional)"
  ],
  "prerequisites": [
   "A way to time your current code, so you can paste real numbers back"
  ],
  "output": [
   {
    "name": "Fit verdict",
    "contains": "Go, no-go or maybe for Wasm, with the reasons and what would change the answer."
   },
   {
    "name": "Baseline to measure",
    "contains": "What to time, on what data, and the current value or NOT MEASURED."
   },
   {
    "name": "Boundary design",
    "contains": "What crosses between JavaScript and Wasm, in what batches, and who owns the memory."
   },
   {
    "name": "Toolchain",
    "contains": "The language and tool choice, with its file size and start-up cost."
   },
   {
    "name": "Size and loading",
    "contains": "The steps to shrink the file and load it while it downloads."
   },
   {
    "name": "Sandbox and fallback",
    "contains": "The least access a server module needs, and fallbacks for missing browser features."
   },
   {
    "name": "Assumptions and open questions",
    "contains": "What the agent had to guess and what you still need to confirm."
   }
  ]
 },
 "output_shape": "WEBASSEMBLY PLAN: <project or task name>\n\nFIT VERDICT\n  <go, no-go or maybe> | <reasons> | <what would change the answer>\n\nBASELINE TO MEASURE\n  <what to time> | <on what data> | <current value or NOT MEASURED>\n\nBOUNDARY DESIGN\n  <what crosses> | <batch shape> | <who owns the memory> | <cost note>\n\nTOOLCHAIN\n  <language and target> | <tool> | <size and start-up cost>\n\nSIZE AND LOADING\n  <step> | <expected effect> | <how to check>\n\nSANDBOX AND FALLBACK\n  <access given or feature checked> | <fallback or limit>\n\nASSUMPTIONS AND OPEN QUESTIONS\n  <item> | <how to settle it>",
 "how_to_use": [
  "Download the pack from this page and add it to your AI as a skill. If you cannot, paste SKILL.md into a new chat, then references/source-agent.md.",
  "Describe the task, the language, where it runs and any timing you have. Paste the code if you can.",
  "Say \"Write the WebAssembly plan. Tell me first if Wasm is the wrong choice. Ask me once if anything is missing.\"",
  "Read the fit verdict first. If it says no, stop there and fix the real bottleneck.",
  "Run the benchmark it plans on your own data and paste the numbers back. Until you do, speed claims stay marked as not measured.",
  "Port the smallest hot loop first, and compare against the baseline before you port more."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "Developer tools engineer",
   "url": "https://useaiblocks.com/skills/agency-engineering-developer-tooling-engineer",
   "why": "Build it"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-webassembly-engineer.md",
  "licence": "MIT",
  "original_name": "WebAssembly Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "WebAssembly Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/engineering/engineering-webassembly-engineer.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-engineering-webassembly-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-engineering-webassembly-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-engineering-webassembly-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-engineering-webassembly-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-engineering-webassembly-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-engineering-webassembly-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-engineering-webassembly-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
