The brief, and the line it crosses
"AI experience" is on every posting and defined on none, which is precisely the opening. The brief is the one a real team writes once the enthusiasm meets the security review: "Stand up an internal assistant on our own Azure OpenAI — private, so no model endpoint sits on the public internet; metered, so we know which team is spending what; and shipped like everything else, so it is not a snowflake somebody built by hand." Most candidates who claim AI experience can screen-share a chat window. This Plate lets you screen-share the infrastructure under it — which is the half the job is actually about.
Microsoft maintains a baseline reference architecture for exactly this: a network-secured, zone-redundant enterprise chat application on Foundry and Azure OpenAI. This Plate is a scoped version — the model resource, the private path, the gateway that meters it, and the pipeline that deploys it — sitting on the web-application pattern you already proved in Plate I.1
Microsoft Azure Architecture Center — Baseline Microsoft Foundry (OpenAI end-to-end) chat reference architecture. It builds directly on the baseline App Service web app, adds the private AI path, and is the production shape of what you are building. Naming it, and its App Service baseline underneath, shows an interviewer you see the whole stack.
learn.microsoft.com/azure/architecture/ai-ml/architecture/baseline-microsoft-foundry-chat
- Deliverable
- One public GitHub repository: the Azure OpenAI resource and deployment, its private endpoint, the API Management gateway that meters and rate-limits it, a token-spend dashboard, and the pipeline that ships all of it — plus a README that draws the request path and names the reference architecture it scopes from.
Requirements — the ledger you build against
Each row is a component of the private AI path, the classes and Plates that taught it, and the evidence a reviewer will demand. The model resource goes in first; the gateway and the dashboard make it safe to share.
| # | Requirement | Taught in | Evidence |
|---|---|---|---|
| R1 | An Azure OpenAI resource with a named model deployment pinned to a version, TPM quota assigned deliberately, deployed as code | Class 34 | The deployment in Bicep; the TPM figure defended by arithmetic in the README |
| R2 | Private endpoint on the resource with a privatelink.openai.azure.com zone linked, and public network access disabled; local auth (keys) turned off | Classes 14, 35 | A call succeeding from inside the network and refused from outside; the keys shown inert |
| R3 | The app authenticates to the model with its managed identity and the Cognitive Services OpenAI User role — no API key anywhere | Classes 9, 34 | The role assignment; a keyless call in the logs carrying an Entra token |
| R4 | API Management as the AI gateway: every caller holds its own subscription key, with a token-limit policy per key and token counts emitted to telemetry2 | Class 35 · Class 39 | One caller throttled at its ceiling while another sails through; per-key token counts in the logs |
| R5 | A token-spend dashboard: a workbook charting tokens by caller and cost by day from the gateway and resource diagnostics | Classes 29–30, 35 · Build IV | The workbook; the KQL behind at least one tile, grouping tokens by consumer |
| R6 | A content-filter posture stated and, if tuned, defended — the default is on; any change is documented with a reason | Class 35 | The filter configuration; a README note on the posture and any category tuned |
| R7 | The whole thing shipped by the pipeline that ships everything else — plan on pull request, gated production, OIDC with no stored secret | Classes 22–24 · Build III | A run deploying the AI infrastructure keylessly; gh secret list empty |
| R8 | The README: the request path drawn, the north-star link, the token arithmetic shown, and the scope honestly against the enterprise baseline | Classes 35, 37 | The repository — the artifact that ends the "do you actually do AI?" question |
Screen-share the infrastructure, not the chat window.
Two boundaries. Scope down and say so: the enterprise baseline adds Foundry Agent Service with its own isolated state stores, AI Search for grounding, Cosmos DB for conversation history, an Application Gateway and WAF for the UI, and Azure Firewall governing all egress — each a README paragraph under "what production adds." A retrieval layer (AI Search grounding your own documents) is the highest-value optional extension if you have time. But keep the load-bearing walls: the private endpoint, the keyless identity, the metering gateway, and the pipeline are the architecture. Drop them and you have a chatbot demo, which the market already has too many of.
The rubric — graded on the five pillars
Marked against the Well-Architected Framework's five pillars, plus the temperament AI work specifically rewards: cost discipline and security carry extra weight, because a leaked model key spends real money and a public endpoint is a standing invitation.
- SecurityWAF pillar · weighted
- No public model endpoint, no stored key, a gateway every caller must pass, and a content filter you can account for. A full leak of the repository hands an attacker nothing they can run your model with.
- Cost optimisationWAF pillar · weighted
- You can name what a conversation costs and why — output priced above input, history compounding, the model choice as a multiplier — and the dashboard makes spend visible by caller before finance asks. AI's bill is the one nobody budgets; you budgeted it.
- Operational excellenceWAF pillar
- The AI infrastructure is code, shipped by the same gated pipeline as everything else — no snowflake, no hand-built resource, reproducible from the repository.
- ReliabilityWAF pillar
- The gateway handles throttling gracefully, the app retries transient faults, and the deployment can be repointed to a new model version without touching the application — the indirection from Class Thirty-Four, earning its keep.
- Performance efficiencyWAF pillar
- TPM is sized to real demand, not fear; the gateway can cache repeated answers; and the token budget is spent where it buys quality, not burned on history nobody needed. Right-sized, not over-provisioned.
The capping deduction is this Plate's non-negotiable: a public model endpoint, or an API key stored anywhere, fails the Security pillar outright — and an AI capstone that fails security is the one an interviewer remembers for the wrong reason. The entire point of the Plate is that you deploy AI the way a company that will be audited deploys it.
What an interviewer will ask
This Plate is the one that separates "I've used ChatGPT's API" from "I can run AI in production." The questions probe exactly that gap.
- "How does a caller reach the model, and how do you know what it spent?"
- Through the API Management gateway on its own key, which meters tokens per caller and enforces a per-key limit; the counts flow to a workbook that charts spend by consumer. Metering at the gateway is the answer that says you have run this at more than one caller.
- "Is the model endpoint on the internet?"
- No — public network access disabled, reachable only through a private endpoint resolved by a privatelink zone, with local key auth turned off entirely. The app authenticates by managed identity. This is the Class Fourteen pattern, applied to the model.
- "What does a conversation cost, and what drives it?"
- The token economics from Class Thirty-Five: output priced several times above input, history compounding roughly with the square of the conversation's length, and the model itself an order-of-magnitude multiplier. If you can price a twenty-turn session on a whiteboard, you have already won the question.
- "A team's usage spikes ten times overnight. What happens?"
- Their key throttles at its own limit without touching production, the dashboard names them before anyone else notices, and an alert fires because a ten-times spike is either a launch or a leak. The blast radius is one caller, by design.
- "What did you scope out, and what would production add?"
- Your honest note: Foundry Agent Service with isolated state, AI Search grounding, Cosmos DB history, a WAF on the UI, Azure Firewall on egress. Drawing the line to the enterprise baseline, unprompted, is what turns "I built a chatbot" into "I understand the production architecture."
The product-question bot, done the way a company keeps
Campux's chatbot began as a leadership sentence in Class Thirty-Four and grew a private path, a gateway, and a token dashboard across Class Thirty-Five. This Plate is a graduate building that same assistant as their own repository — private endpoint, metering gateway, keyless identity, shipped by the pipeline, spend on a dashboard — and being able to walk every layer of it. It is the third and sharpest résumé line because it answers the vaguest, most-asked, least-understood requirement on the market — "AI a plus" — with a repository instead of a claim. Two servers in a closet in Class One; a governed, observed, AI-serving platform by Plate III. That is not a course you finished. It is a portfolio you can defend — and the whole point, from the first free class, was that you would have something to put on the table when the interview reaches the sentence that used to end it.
- The reference architecture, its components, and its private-network flows are from Microsoft's Azure Architecture Center, "Baseline Microsoft Foundry chat reference architecture," which builds explicitly on the baseline App Service web application of Plate I and ships a reference implementation on GitHub (Azure-Samples/microsoft-foundry-baseline). The AI platform is renaming quickly — "Azure OpenAI" now sits under the "Microsoft Foundry" banner — so verify the current resource and portal names as you build; the architecture is stable even as the labels move. ↩
- The gateway metering pattern — API Management in front of the model with token-limit and emit-token-metric policies — is Microsoft's "GenAI gateway" capability, taught in Class Thirty-Five and Class Thirty-Nine. It is the piece that turns "we deployed a model" into "we run a model for several teams and know what each one costs," which is the sentence that gets an AI-infrastructure candidate hired. ↩