Professional Profile
The working history behind the projects
Experience, skills, and selected work give hiring teams a direct route through the career behind the code.
See this surface →A personal site I began after a layoff so my work would have more room than a résumé or interview, now built as a static-first portfolio and publishing platform.

I started albertoduran.com after I was laid off. A résumé can list experience, but it cannot show much of how I think or build, and a short interview rarely leaves enough time to walk through the work properly.
What began as a personal introduction grew into a portfolio, a set of project case studies, and a place for all kinds of writing. Astro resolves the content, routes, diagrams, charts, and responsive images before deployment, so the site itself can demonstrate the engineering choices I want readers and hiring teams to inspect.
Visitors arrive with different amounts of time and curiosity. They can scan the profile, open a project overview, read one focused article, or follow a complete architecture vault without moving to a separate product.
Professional Profile
Experience, skills, and selected work give hiring teams a direct route through the career behind the code.
See this surface →Project showcases
Each landing page explains the problem and the result, then links to the technical record for readers who want the implementation.
See this surface →The Journal
Standalone articles and structured vaults document architecture, debugging work, tradeoffs, and contributor boundaries.
See this surface →Technical media
Mermaid and ECharts produce static SVG during the build, so technical visuals remain part of the article when JavaScript is off.
See this surface →Source files move through named ownership boundaries. Collections and manifests decide what publishes, integrations handle visual rendering, Astro emits the complete file graph, and Workers Static Assets serves it. The browser starts with a useful document.
The separation gives each failure a smaller search area. A broken runtime control can be debugged without treating the content manifest or generated page as the same problem.
Both examples below are SVG produced during the build. The Mermaid fence travels through the diagram integration, while the ECharts option uses the server renderer. Neither visual waits for client-side JavaScript to become readable.
This flow is stored as readable Mermaid text in the repository. The build converts it into themed SVG and places the result in the page.
This chart uses an illustrative dataset and the same EChart component available to journal authors. No hydration mode is set, so the output stays a static SVG by design.
Collections validate MDX, the manifest applies publication rules, and Astro generates every known article route before deployment.
Read the implementation detail →Mermaid diagrams and ECharts figures render during the build. The browser receives useful SVG before any optional interaction starts.
Read the implementation detail →Theme persistence, overlays, and article navigation improve complete HTML instead of becoming prerequisites for reading it.
Read the implementation detail →Workers Static Assets serves the generated file graph. It does not need to understand MDX, vault rules, or page assembly.
Read the implementation detail →An article enters the site as MDX, then the publication manifest gives it a route, navigation context, breadcrumbs, and a place in the reading sequence. Authors work with content while the build applies those rules.
Schemas and manifest tests catch malformed metadata, draft leaks, missing images, and broken vault structure before routing begins.
Follow the publishing detail →Folders become ordered reading paths with nested sections, breadcrumbs, responsive navigation, and previous or next links from one model.
Follow the publishing detail →Articles can use editorial components, diagrams, charts, code, and tables while keeping typography and static output consistent.
Follow the publishing detail →The browser receives a complete document first. It then handles facts the build cannot know, including the reader's theme preference, viewport, focus position, scroll state, and local timezone.
Astro diagnostics protect source and content shapes. Vitest covers manifest rules, SVG transforms, charts, loaders, and minification. A deterministic production build replaces unstable outside inputs, and Playwright checks selected reader behavior in Chromium.
Production receives complete routes, metadata, fonts, images, themed diagrams, chart SVG, CSS, and runtime modules. Workers Static Assets serves that file graph without assembling journal pages per request.
The outcome
Follow the project beyond the landing page. Each publication focuses on one architectural boundary, implementation decision, or operational lesson.
A short guide to the repository shape, local development environment, and Cloudflare deployment target behind albertoduran.com.
One publication change crosses content, manifest, route, layout, runtime, and style boundaries that keep the repository understandable.
The devcontainer standardizes Node 22 and editor tooling while leaving dependency replay, network access, and production checks explicit.
The deployment artifact is a file graph served by Cloudflare Workers Static Assets, with explicit 404 and generated asset behavior.
The publication system behaves like a compiler whose policy stages turn MDX candidates into routes, navigation, and complete article pages.
The active Zod schema accepts less metadata than the MDX files carry, exposing fields that are unsupported, unused, or only partly wired.
A typed manifest turns a fixture tree into publication policy for vault ownership, ordering, read time, inherited images, and pagination.
One published entry travels through static path generation and a thin catch-all route into a complete desktop and mobile article shell.
Plain MDX syntax and explicit component imports follow different paths into the article's headings, tables, code, diagrams, and charts.
A fenced sample becomes dual-theme Shiki HTML, a line-numbered component, and markup protected from the production minifier.
Why Mermaid diagrams render at build time through a custom Astro integration, external browser service, and static SVG assets.
Publishable Markdown files prepare diagrams with one build-scoped coordinator that handles cache lookup, batch rendering, and asset emission.
The repository defines a batch renderer contract but cannot verify the external Worker's source, deployment, fonts, or production telemetry.
Provider selection contains build failures across an external batch Worker, a public mermaid.ink fallback, and deterministic fixtures.
An SVG compiler pass removes scripts, cleans selected styles, rewrites IDs, scopes CSS, and merges light and dark renderer output.
Serializable Mermaid variables carry the site's semantic palettes across a renderer boundary without claiming unmeasured contrast.
One diagram produces themed SVG files and runtime metadata tied to a renderer version.
Why the journal has a static-first ECharts path for data visuals, how it differs from Mermaid, and how the section is organized.
One option object becomes an accessible static SVG, an optional file asset, or a chart that hydrates only when the article requests it.
A published ECharts example page showing common, dense, hierarchical, flow, distribution, and finance chart options in MDX.
The site moves work into the build, but its current evidence covers artifacts and behavior rather than Web Vitals or navigation timing.
Static links gain prefetching, document swaps, and theme lifecycle hooks, though the repository has no navigation timing baseline yet.
A deterministic build shows what each optimizer changes and exposes the JavaScript chunk warning that still needs a measured budget.
Images and fonts receive different loading treatment according to their role, with explicit priorities and an honest measurement gap.
Browser modules own preference, viewport, focus, scroll, and local time while the static build remains responsible for readable content.
Theme correctness has three deadlines around first paint, user choice, and Astro route swaps, each owned by a different layer.
A heading list becomes reliable scroll navigation only after accounting for sticky offsets, page edges, clicks, and route cleanup.
A checkbox-based overlay provides the static baseline, then browser code adds focus control, Escape handling, and scroll containment.
An already-rendered diagram gains theme-aware asset links and disposable popover expansion without shipping Mermaid to the browser.
An unstable ESPN page feeds build-time Atlas data, deterministic fixtures protect tests, and the browser localizes the rendered match time.
A map of the site's visual system across Tailwind tokens, DaisyUI themes, CSS partials, SVG icons, parallax, and UI rules.
One ordered CSS manifest makes the cascade inspectable across Tailwind, DaisyUI, project tokens, shared components, and page rules.
A semantic color token travels from DaisyUI's OKLCH themes through Tailwind utilities, component surfaces, and Mermaid palettes.
Three SVG paths cover typed controls, file-loaded skill marks, and generated ribbons, each with a different trust boundary.
The Atlas hero keeps its content in Astro markup while CSS owns depth, narrow viewport cropping, and reduced motion behavior.
A concise contributor guide for building UI with semantic tokens, consistent spacing, responsive rules, and accessible overlays.
The quality system matches evidence to risk while naming its missing lint, coverage threshold, cross-browser, and accessibility gates.
Diagnostics, unit tests, a deterministic build, and Chromium preview checks each cover a different failure class in the CI sequence.
Focused regression stories show how unit tests catch draft leaks, SVG ID collisions, unsafe chart options, and damaged generated markup.
Chromium tests verify selected reader behaviors while leaving Axe rules, screen readers, reduced motion, Firefox, and WebKit uncovered.