Context
The website needs to work at two reading speeds: a quick introduction for someone hiring, and a closer look for an engineer who wants to discuss decisions. It also needs space for future experiments without making the introduction harder to use.
Constraints
- Content must stay readable without interactive features.
- Adding a project should not require rebuilding the page layout.
- External repositories must stay optional: a project should make sense on its own.
- Personal facts and outcomes need evidence; unfinished content must stay explicit.
Decisions
Keep content separate from presentation
A typed module holds the profile. Individual Markdown files hold projects and stories, and a shared route renders published entries.
Tradeoff: Publishing a content change requires a build. That is acceptable for a single-author portfolio; a CMS can be added when editing frequency justifies it.
Use interaction only where it helps explain
Most content is server-rendered. Small client components handle the system diagram, the lab experiment, and optional demo embeds.
Tradeoff: The interactive examples depend on JavaScript. Their introduction and limitations remain readable without it.
Treat source links as evidence
Markdown links can point to a full Git commit and a line range. Code blocks stay readable even if a repository is unavailable.
Tradeoff: Excerpts are maintained manually. A repository change does not silently change the explanation; updating the reference is an editorial decision.
Let future services evolve independently
The portfolio has no database or account system. Bots and background jobs can run as separate services, linked from this site when useful.
Tradeoff: A future service will need its own deployment and security boundaries. There is intentionally no speculative shared backend yet.
Publishing a story
Writing lives in individual Markdown files. Each file defines its title, format, summary, publication state, and optional demo or repository. A build step validates metadata, renders Markdown, and excludes drafts before generating public content.
Current scope
The site contains authored engineering notes and a sequential retry experiment. Career case studies and résumé content are separate editorial work. Demo embeds are optional and only load when requested.