Andrew Brockenborough · San Francisco Bay Area

Recent CS grad who builds AI products end to end.

I build AI-native products, LLM-powered web apps, and production sites for real clients. Currently pursuing an M.S. in Artificial Intelligence at San José State.

open to AI / full-stack engineering roles
Ask Andrew AI · trained on my background
Live
$ ask andrew
Hey — I'm Andrew's AI assistant. Ask me anything about his background, projects, skills, or how to reach him.
Try:
$ _
Recent Project

Gloss

A Manifest V3 extension that explains any highlighted text in place. Keep scrolling to walk through how it works.

01 · Select

Highlight anything, anywhere

Selection highlights render as overlay rects from Range.getClientRects() — zero host-DOM mutation, so framework-rendered pages never break.

02 · Stream

Explanation streams in place

SSE deltas flow from service worker to content script over a long-lived port, with disconnect-driven AbortController cancellation. Median 1.7s to full explanation.

03 · Ship

Fully client-side, published

Shadow DOM isolation, session-scoped caching keyed by selection hash, and BYOK auth — no key in the package, no backend required.

0s
median to full explanation (Gloss)
0s
chart screenshot → structured read (QuantAnalyst)
0+
client sites shipped solo, end to end
Selected work

Projects

QuantAnalyst

Live

AI chart-analysis tool: a raw chart screenshot becomes a structured technical read — trend, key levels, and two probability-weighted scenarios — in ~12s. Vision prompts with strict JSON schemas render straight into UI components, plus a retrieval-grounded coach that reasons only over the user's logged trades.

Multimodal promptingStructured JSON RAGReact
View live site →

Portfolio “ask” agent

Live on this page

The terminal above is a real product: a hosted API that answers recruiter questions about my background using an LLM grounded in my resume and project docs. Try it — it's the fastest way to screen me.

PythonLLM + RAG RenderVanilla JS
Ask it something →

Gloss

Extension

The browser extension from the walkthrough above — built, debugged, and published end to end. Streaming SSE architecture, Shadow DOM isolation, and BYOK auth keeping it fully client-side.

JavaScriptMV3 Anthropic APISSE
View GitHub Repository→

Client sites

Freelance

Production sites for small-business clients in the automotive and apparel sectors — 38Carmodz and BM Wrapz — hand-rolled HTML/CSS/JS with no framework overhead, owning scoping, build, and delivery end to end.

HTML/CSS/JSDesign SEO
See live client work →
Toolbox

Skills

AI & LLM

The layer I build products around — every project on this page ships an LLM in production, not a demo.

Anthropic APIPrompt engineering Structured JSON outputsStreaming (SSE) Multimodal / vision promptingContext grounding RAGEmbeddingsEvals

Languages

From product scripting down to assembly — comfortable at every level of abstraction.

PythonJavaScript C++SQLMIPS Assembly

Frontend & Backend

Full-stack delivery: React UIs when the product calls for it, hand-rolled vanilla when it doesn't.

ReactReact Router Tailwind CSSRadix UIRecharts Node.jsExpress.jsREST APIs PostgreSQLMongoDBMySQL

Cloud & Systems

The unusual part of my stack for a web person: real systems coursework — device drivers, file systems, OS internals.

AWS EC2Docker Docker ComposeUbuntu Server Linux/UnixDevice drivers File systemsOS internals Git / GitHub
Experience

Freelance Web Developer

Self-employed

Built and shipped production sites for small-business clients in the automotive and apparel sectors, owning scoping, build, and delivery end to end. Developed an AI-assisted workflow using Cursor and Claude to cut build time, and managed client relationships directly — translating non-technical requirements into scoped deliverables.

2024 — Present
Education

M.S. Artificial Intelligence

San José State University
Expected May 2028

B.S. Computer Science

San Francisco State University
Aug 2021 — Aug 2025
Contact

Let's talk.

I'm looking for AI software engineering roles where I can ship product, not just experiments. Email is fastest — or ask the terminal for anything else.