EXP-002 · BUILDING
anthaguz.dev
This site. A bilingual portfolio with a lab theme, a career trace and a console you can drive by typing.
How this was built: designed and directed by me, built with AI assistance (Claude Code). I decided what to build and how; I used AI to research the pros and cons of technologies I didn’t know, so I could make those decisions myself.
The problem
My best work so far lives inside an employer: internal tools, private repositories, training nobody outside can see. I needed one public place that shows how I think and what I build — and that works as a presentation card for recruiters, engineers and clients.
I didn’t want a template. I wanted something that feels like the work I actually do: troubleshooting with evidence, in a terminal, with traces.
What I built
- A console as a second way to drive the site. Commands move the page instead of repeating it:
cd experimentsscrolls there,trace citrixopens that part of my career,help traceexplains a command. It has Tab completion, history, “did you mean…?” for typos, and colored output. - A career trace drawn like a performance trace: bars positioned by real dates, on separate tracks for work, study and building.
- Short and Full versions of the same page — a CV-style summary, and the full story with context.
- English and Spanish, light and dark, keyboard-friendly and responsive down to phones.
Decisions & trade-offs
- Spec first. Before writing code I wrote a spec of every behavior, an architecture document and short decision records. When behavior changes, the spec changes in the same commit.
- Astro with React only where it’s interactive. Most of the page is plain HTML; only the console and the trace load JavaScript. Tools sized to the problem.
- All text lives in data files, derived from a verified profile of my career. The layout never contains career claims, so content changes never touch code.
- The console logic is pure. It takes a command and returns a list of effects (print, scroll, select); a separate layer applies them to the page. That made it easy to unit-test.
- Typing anywhere goes to the console — but only when nothing else has focus, so buttons and keyboard navigation keep working. The first version captured everything; an independent review caught that Space no longer pressed buttons.
What I learned
- Mockups before code saved weeks. Four quick rounds on a throwaway HTML mockup settled the layout, colors and the console before any real code existed.
- Independent reviews find what you can’t see. Two separate reviews — code and design — found real bugs I’d introduced: a CSS class-name clash, sideways scrolling on phones, a keyboard trap, and contrast problems in the light theme.
- “Verified” content takes real work. Writing about my own career meant going through every claim with its conditions — and removing the ones I couldn’t back up.