Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/memory/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Maintained alongside the [architecture guide](../../wiki/architecture.md) and [d

`src/lib/metro.ts` layers the map on top: `LINES` 1–8 (1 Career, 2 .NET, 3 Azure, 4 Architecture, 5 Side Projects; 6 Languages, 7 Data, 8 Frontend in the Line Guide only), `MAP_LINES`, `GUIDE_LINES`, and `STATIONS` with hand-placed coordinates. `role(company, periodStart)` looks roles up in `EXPERIENCES` and throws at build time when one is missing; the two 2018–2021 T-Systems roles share a station. `src/lib/metro-geometry.ts` holds the build-time path math.

The same data feeds the homepage sections, resume route, terminal command table, metadata descriptions, and `JsonLd.astro` (employer from `CURRENT_ROLE`, address from `PROFILE.address`). The SiteSign subtitle, map lede, station captions, advisory lines, Customer Information copy, and some terminal strings are presentation literals and need review when facts change. The independent public CV PDF has unresolved career differences; the owner deferred reconciliation.
The same data feeds the homepage sections, resume route, terminal command table, metadata descriptions, and `JsonLd.astro` (employer from `CURRENT_ROLE`, address from `PROFILE.address`). The SiteSign subtitle, map lede, station captions, advisory lines, Customer Information copy, and some terminal strings are presentation literals and need review when facts change. The public CV PDF is a checked-in print of `/resume/`; regenerate it when resume data or layout changes.

## UI Features

Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Data layer
- **Pinned + ledger model** — `src/lib/github.ts` takes the pinned repos (Connections departures board and the map's Side Projects line) directly from the profile `pinnedItems` (pin order, owned non-forks, metadata repos excluded) and builds the "Later departures" ledger from the first 100 recently updated public non-fork repos minus pins; there is no pagination. Requests time out after 10 s and Pages lookups run six at a time.
- **Pages URL enrichment** — REST `GET /repos/jonathanperis/{repo}/pages` provides `pagesUrl`; standard `https://jonathanperis.github.io/<repo>/` homepage URLs are fallback Pages links.
- **Fallback data** — `FALLBACK` covers absent tokens and failed/unusable GraphQL fetches. Individual Pages lookup failures preserve fetched repo data and standard Pages homepage fallbacks.
- **Shared profile data** — `src/lib/data.ts` powers the portfolio, resume, terminal command table, and JSON-LD (`YEARS_OF_EXPERIENCE`, `PROFILE.address`, and `CURRENT_ROLE` are single sources). Check remaining presentation copy in `src/components/` (sign, status strip, sections) and the station captions in `src/lib/metro.ts` when updating profile facts. The separate public PDF has unresolved differences; career reconciliation is deferred by the owner.
- **Shared profile data** — `src/lib/data.ts` powers the portfolio, resume, terminal command table, and JSON-LD (`YEARS_OF_EXPERIENCE`, `PROFILE.address`, and `CURRENT_ROLE` are single sources). Check remaining presentation copy in `src/components/` (sign, status strip, sections) and the station captions in `src/lib/metro.ts` when updating profile facts. `public/cv_jonathan_peris.pdf` is a checked-in print of `/resume/` (headless Chrome, A4); regenerate it after resume or `data.ts` changes (see [Resume Page](wiki/resume_page.md#downloadable-pdf)).
- **Terminal easter egg** — Konami code opens a native `<dialog>` terminal. Static output is built at build time by `buildCommandTable()` (`terminal-commands.ts`); `runCommand()` (`terminal.ts`) resolves own-key commands only and handles `help`, `about`, `stack`, `contact`, `neofetch`, `git log`, `ls`, `cat availability.txt`, `whoami`, `pwd`, `date`, `sudo hire me`, `echo`, `clear`, `exit`, and `quit`.
- **SEO** — `RootLayout.astro` derives canonical, Open Graph URL, and English alternate URL from the page canonical path and configured site. Astro generates `sitemap-index.xml` and `sitemap-0.xml`; robots advertises the generated index. `public/sitemap.xml` preserves the old entry point as a compatibility index, without handwritten route entries or timestamps.
- **Documentation status** — `wiki/` is repository Markdown, not a deployed documentation route; GitHub Wiki is disabled. PRODUCT/DESIGN distinguish implemented UI from proposals. Update related docs using the maintenance map above.
Expand Down Expand Up @@ -125,7 +125,7 @@ jonathanperis.github.io/
│ └── styles/
│ └── globals.css
├── public/
│ ├── cv_jonathan_peris.pdf
│ ├── cv_jonathan_peris.pdf # Checked-in print of /resume/
│ ├── manifest.json
│ ├── robots.txt / sitemap.xml
│ └── favicon.svg / apple-touch-icon.png / icon-192.png / icon-512.png
Expand Down
2 changes: 1 addition & 1 deletion DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Light line colors (4, 6, 7, 8) carry ink numerals for contrast. Line definitions
| `CustomerInfo` | Bordered two-pane block: "Now boarding" availability board with Based / Works / Timetable (Resume · PDF), and contact rows (label, mono handle, arrow) that invert to black on hover/focus |
| `SiteFooter` | Mono row: diagram note, "Hidden service" Konami hint, copyright |
| `Terminal` | "Control room · jonathan.sh" dialog: sign background, ink border, red offset shadow, yellow prompt |
| `/resume/` | Same tokens on paper: black print bar, red section headings and print button, hairline tags; print rules switch to plain black on white |
| `/resume/` | White A4 sheet on paper under a black toolbar; red title line, accent bar, small red caps section heads with hairline rules, skills label/value table, "Title · Company" entries with red company, mono dates/locations, red-dot bullets, and mono "Stack:" lines; prints in color on A4 |

## Interaction rules

Expand Down
2 changes: 1 addition & 1 deletion PRODUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This document combines the current product baseline with the proposals that stil
|---|---|---|
| Header and status | Station-sign header (name, title, subtitle, line roundels 1–5 that act as map-filter labels, nav: Stations, Connections, Lines, Information, Resume); "Good service" status strip with availability, location, and live Itanhaém clock | Contact entry in the header nav (Information is reachable; no direct contact CTA) |
| Career map | Build-time SVG map: Career line through nine stations (ten roles), .NET, Azure, and Architecture lines, Side Projects line of pinned repos; CSS-only line filter; "You are here" terminus | Browser validation of legibility and hit targets at small widths |
| Experience | Station Index: roles newest first with periods, locations, descriptions, served lines, and tags; education as "Depot" | Owner-approved impact statements; PDF reconciliation is deferred |
| Experience | Station Index: roles newest first with periods, locations, descriptions, served lines, and tags; education as "Depot" | Owner-approved impact statements |
| Projects | Connections departures board of GitHub profile pins (up to six, pin order) with Source/Live site/Homepage links and stars; "Later departures" `<details>` ledger | Authored proof per project (`signal`/`proof`); contextual accessible names for repeated links |
| Skills | Line Guide: six skill lines with computed interchanges | Problem-oriented capability framing |
| Principles | Service Notes: three engineering principles as advisories | Outcome-specific proof |
Expand Down
Binary file modified public/cv_jonathan_peris.pdf
Binary file not shown.
5 changes: 3 additions & 2 deletions src/lib/github.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ const PAGES_LOOKUP_CONCURRENCY = 6;
const FALLBACK: GitHubRepo[] = [
{ title: "cpnucleo", description: "Hands-on .NET 10 project-management learning lab: compare REST/gRPC and EF Core/Dapper with Astro, PostgreSQL, OpenTelemetry, and executable contract tests.", url: "https://github.com/jonathanperis/cpnucleo", lang: "C#", langColor: "#7355dd", stars: 9, homepageUrl: "https://jonathanperis.github.io/cpnucleo/", pagesUrl: "https://jonathanperis.github.io/cpnucleo/", pinned: true },
{ title: "super-mango-editor", description: "C11/raylib platformer and visual level editor. Play in the browser via WebAssembly, build TOML worlds, and learn game development with Sandbox School.", url: "https://github.com/jonathanperis/super-mango-editor", lang: "C", langColor: "#555555", stars: 1, homepageUrl: "https://jonathanperis.github.io/super-mango-editor/", pagesUrl: "https://jonathanperis.github.io/super-mango-editor/", pinned: true },
{ title: "rinha2-back-end-dotnet", description: "High-performance backend for the Rinha de Backend challenge — built with ASP.NET 9, PostgreSQL, Nginx, Native AOT, and Docker", url: "https://github.com/jonathanperis/rinha2-back-end-dotnet", lang: "HTML", langColor: "#e34c26", stars: 3, homepageUrl: "https://jonathanperis.github.io/rinha2-back-end-dotnet/", pagesUrl: "https://jonathanperis.github.io/rinha2-back-end-dotnet/", pinned: true },
{ title: "solar-system-simulator", description: "Physics-first orbital mechanics lab in C11 and raylib: native and WebAssembly simulations, reproducible A/B experiments, and a source-backed small-body atlas.", url: "https://github.com/jonathanperis/solar-system-simulator", lang: "C", langColor: "#555555", stars: 0, homepageUrl: "https://jonathanperis.github.io/solar-system-simulator/", pagesUrl: "https://jonathanperis.github.io/solar-system-simulator/", pinned: true },
{ title: "jonlib", description: "Jonlib: graphics and math libraries written in Bend 2, targeting raylib 6.0 parity.", url: "https://github.com/jonathanperis/jonlib", lang: "Python", langColor: "#3572A5", stars: 0, pinned: true },
{ title: "blazor-mudblazor-starter", description: "Local-first .NET 10 learning sandbox for Blazor Server and MudBlazor, with hands-on labs for state, forms, APIs, SQLite, authentication, localization, CSV, and Docker.", url: "https://github.com/jonathanperis/blazor-mudblazor-starter", lang: "C#", langColor: "#7355dd", stars: 2, homepageUrl: "https://jonathanperis.github.io/blazor-mudblazor-starter/docs/", pagesUrl: "https://jonathanperis.github.io/blazor-mudblazor-starter/", pinned: true },
{ title: "speedy-bird-lynx", description: "Flappy Bird-inspired arcade game built with ReactLynx and TypeScript. Android host, Lynx web preview, playable Canvas demo, and Astro docs; iOS source scaffold included. Every pipe makes it faster.", url: "https://github.com/jonathanperis/speedy-bird-lynx", lang: "TypeScript", langColor: "#3178c6", stars: 1, homepageUrl: "https://jonathanperis.github.io/speedy-bird-lynx/", pagesUrl: "https://jonathanperis.github.io/speedy-bird-lynx/", pinned: true },
{ title: "solar-system-simulator", description: "Physics-first orbital mechanics lab in C11 and raylib: native and WebAssembly simulations, reproducible A/B experiments, and a source-backed small-body atlas.", url: "https://github.com/jonathanperis/solar-system-simulator", lang: "C", langColor: "#555555", stars: 0, homepageUrl: "https://jonathanperis.github.io/solar-system-simulator/", pagesUrl: "https://jonathanperis.github.io/solar-system-simulator/", pinned: true },
{ title: "rinha2-back-end-dotnet", description: "High-performance backend for the Rinha de Backend challenge — built with ASP.NET 9, PostgreSQL, Nginx, Native AOT, and Docker", url: "https://github.com/jonathanperis/rinha2-back-end-dotnet", lang: "HTML", langColor: "#e34c26", stars: 3, homepageUrl: "https://jonathanperis.github.io/rinha2-back-end-dotnet/", pagesUrl: "https://jonathanperis.github.io/rinha2-back-end-dotnet/" },
{ title: "rinha4-back-end-c", description: "Rinha de Backend 2026 C implementation with raw HTTP/1, Unix sockets, SCM_RIGHTS load balancing, and exact IVF fraud scoring", url: "https://github.com/jonathanperis/rinha4-back-end-c", lang: "C", langColor: "#555555", stars: 0, homepageUrl: "https://jonathanperis.github.io/rinha4-back-end-c/", pagesUrl: "https://jonathanperis.github.io/rinha4-back-end-c/" },
{ title: "rinha2-back-end-k6", description: "Grafana k6 stress tests for the Rinha de Backend challenge — Dockerized with InfluxDB metrics export", url: "https://github.com/jonathanperis/rinha2-back-end-k6", lang: "JavaScript", langColor: "#f1e05a", stars: 0, homepageUrl: "https://jonathanperis.github.io/rinha2-back-end-k6/", pagesUrl: "https://jonathanperis.github.io/rinha2-back-end-k6/" },
];
Expand Down
Loading
Loading