Website feedback — rya-sge.github.io
Website feedback — rya-sge.github.io
Review of the site content and configuration as of 2026-09-29, based on the repository sources (the site was not built locally). Items are ordered by priority within each section and identified by section number and letter (e.g. 1.a).
Status legend: ✅ Done · 🟡 Partially done · ⬜ Open
Progress: 34 done, 3 partially done, 13 open.
1. High priority — visible on every page
- 1.a ✅ Site title is still the template placeholder.
_config.yml:12hadtitle: "Your Name / Site Title", shown in the header on every page and in every browser tab / search result.- Done: set to
"Ryan S.".
- Done: set to
- 1.b ✅ Site name and description are placeholders.
_config.yml:14-15hadname: "Your Name"anddescription: "Your Name's academic portfolio", used in the footer, the meta description and social previews.- Done:
name: "Ryan S.";description: "Security engineer and blockchain developer: CMTAT, tokenization, cross-chain and smart contract security"(also reused asog_description).
- Done:
- 1.c ✅ Repository URL is wrong.
_config.yml:19washttps://github.com/rya-sge.github.io, which is not a valid repo.- Done: set to
rya-sge/rya-sge.github.io(theowner/nameform expected by the GitHub Pages metadata plugin, matching the git remote).
- Done: set to
- 1.d ✅ No social preview image.
og_imageandteaserwere empty, so links shared on LinkedIn/X had no picture.- Done:
og_image: "favicon.jpg"(same picture asprofile.png, which is actually a JPEG with a.pngextension),twitter.username: "ADCDIII"(required for X card tags), and_includes/seo.htmlnow emits anog:imagetag and absolute image URLs. - Still open: the image is a 400×400 square, so previews show a small thumbnail; a 1200×630 banner would give the large preview.
- Done:
- 1.e ✅ Web manifest still names the template icon.
images/manifest.jsonhad"name": "OOjs UI icon academic-progressive", and_includes/head/custom.htmlhad a stale comment about the template favicon source.- Done: manifest
nameandshort_nameset to"Ryan S."; stale comment removed.
- Done: manifest
2. CV page (_pages/cv.md)
- 2.a ✅ Leftover template text: “Service and leadership — Currently signed in to 43 different slack teams” (
cv.md:99-101). Remove the section or replace it (e.g. Y-CTF co-founder, conference talks).- Done: “Service and leadership” section removed (Y-CTF is already listed under Education).
- 2.b ✅ Empty “Publications” section. It loops over
site.publications, but_publicationsis not declared as a collection in_config.yml, and the files in it are template placeholders (“Paper Title Number 1…”). The heading therefore renders with nothing under it. Either list the Taurus articles directly (as inpublications.md) or remove the section.- Done: the
site.publicationsloop replaced by a link to/publications/.
- Done: the
- 2.c ✅ Empty “Teaching” section.
site.teachingdoes not exist; remove the section.- Done: section removed.
- 2.d 🟡 Skills section is thin and oddly structured: “Solana” sits outside “Smart contract development”, and there is nothing on security (audits, pentest, cryptography), tooling (Foundry, Hardhat, Slither, Aderyn) or other chains you present in talks (Tezos, Aztec, Zama FHE, Stellar/Soroban…). This is the section recruiters scan first.
- Done: skills regrouped into smart contract development (Solidity with Foundry/Hardhat/Truffle, SmartPy, Move, Solana), tokenization and standards, cross-chain and integrations, privacy (Zama FHEVM, Self zero-knowledge identity), security (analysis, pentest, cryptography, Y-CTF) and other languages.
- Still open: Slither, Aderyn, Aztec and Stellar/Soroban were not added as skills, because nothing in the repository shows hands-on work with them; add them if they apply.
- 2.e ✅ Work experience summary is outdated relative to your talks. The Taurus entry does not mention privacy work (CMTAT-Confidential with FHE, Aztec), the CMTAT audit process, or conference speaking (EthCC, BSA EPFL, Black Alps, CMTA x OpenZeppelin).
- Done: the Taurus summary now covers the CMTAT security process (audits, static analysis, AI audit tools), partner integrations (Chainlink ACE and CCIP, LayerZero, FIX with Nethermind), privacy (CMTAT-Confidential with Zama FHE, the Aztec version) and conference speaking with a link to
/talks/; CMTAT-Confidential, CMTAT-ACE, CMTAT-FIX, CMTAT-LayerZero and Smart Wallet 7702 were added to the public projects.
- Done: the Taurus summary now covers the CMTAT security process (audits, static analysis, AI audit tools), partner integrations (Chainlink ACE and CCIP, LayerZero, FIX with Nethermind), privacy (CMTAT-Confidential with Zama FHE, the Aztec version) and conference speaking with a link to
- 2.f ✅ Typos / consistency: “Analyze of smart contracts”, lowercase “position:” / “company:”, “Duration:” lines duplicating the dates in the headings, “A rust-based application to store password securely”.
- Done: “Analysis of smart contracts”, “SmartPy (Tezos)”, “Company:” / “Position:” capitalised, duplicate “Duration:” lines removed (Taurus heading now reads “12/2022 - present”), “Rust-based application to store passwords securely”.
- 2.g ⬜ Consider a downloadable PDF CV in
files/linked at the top of the page.
3. Home page (_pages/about.md)
- 3.a ✅ “Main article” section had an orphan sentence: “Here my main articles on Blockchain:” was followed by nothing.
- Done: sentence and extra blank lines removed; heading renamed “Main articles”.
- 3.b ✅ Duplicated content: the article lists are copied from
publications.mdbut are already out of date (the 2025 Taurus articles on conditional transfers and ERC-1400 are missing). Keep one source of truth: a short “highlights” list on the home page and link to/publications/.- Done: the copied lists replaced by a short “Selected articles” list (the two 2025 Taurus articles, the CCIP/USDC article and MetaMask Secrets) with a link to
/publications/, which stays the single full list.
- Done: the copied lists replaced by a short “Selected articles” list (the two 2025 Taurus articles, the CCIP/USDC article and MetaMask Secrets) with a link to
- 3.c ✅ No mention of talks.
- Done: new “Talks” section with EthCC 2026 and Black Alps 2024 (talk page, video and slides links) and a link to
/talks/.
- Done: new “Talks” section with EthCC 2026 and Black Alps 2024 (talk page, video and slides links) and a link to
- 3.d ✅ Inconsistent LinkedIn handle:
about.mdlinked to/in/ryan-sauge, while the sidebar usedryan-sge.- Done: both now use
ryan-sge(https://www.linkedin.com/in/ryan-sge); an earlier fix had wrongly switched them torya-sge, which is not a LinkedIn profile.
- Done: both now use
- 3.e ✅ Tone: “I hope you can find your happiness among this content” reads oddly; something like “Feel free to reach out on LinkedIn or X” is enough. The first line has a leading space (“ Hi there 👋”).
- Done: contact sentence now reads “Feel free to reach out on LinkedIn or X.”; leading space removed.
- 3.f ✅ Twitter/X naming: the page said “twitter account” and mixed
twitter.comandx.comlinks.- Done: home page says “an X account” and links to
x.com/ADCDIII; the sidebar link in_includes/author-profile.htmlnow points tox.com.
- Done: home page says “an X account” and links to
- 3.g ✅ Tab title showed “Blockchain - Smart Contract - Security - Your Name / Site Title”.
- Done: resolved by 1.a; now “Blockchain - Smart Contract - Security - Ryan S.”.
4. Publications page (_pages/publications.md)
- 4.a ✅ “Token Transfer Management … ERC-1404” has
(ERC-1404)where the year should be (publications.md:23).- Done: year set to 2024.
- 4.b ⬜ Talks and slide decks are publications too; add a short “Talks” section linking to
/talks/or list the four decks. - 4.c ⬜ The personal blog section only lists five articles; if some newer ones (e.g. the Bitcoin keys, MPC and Winternitz OTS posts linked from the Black Alps talk page) matter, add them.
- 4.d ✅ The page title “Publications” with a section “My main personal articles” — consider renaming the nav item to “Articles” since there are no academic papers.
- Decided: the name “Publications” is kept, because “Articles” next to the “Blog Posts” menu item (which links to Access Denied) read as two names for the same thing. The page stays at
/publications/;/articles/redirects there in case that address was shared.
- Decided: the name “Publications” is kept, because “Articles” next to the “Blog Posts” menu item (which links to Access Denied) read as two names for the same thing. The page stays at
5. Portfolio page (_pages/portfolio.md)
- 5.a ✅ Heading levels are inconsistent: “Smart contract” uses a level-1
======heading with####projects, while “Rust” uses##with###projects.- Done: the page now uses
##for the five sections (CMTA, Taurus, Hackathons, HEIG-VD, Personal) and###for every project.
- Done: the page now uses
- 5.b ✅ CCIP Sender and IncomeVault have identical durations (12/2023 — 05/2024); check that this is right.
- Done: confirmed, both run from 12/2023 to 05/2024 (IncomeVault had been changed to 08/2024 from LinkedIn and is set back to 05/2024).
- 5.c ⬜ IncomeVault skills list “Stablecoin” although it is about dividends/coupons; “Tokenization · Corporate actions” would fit better. “build with CMTAT” → “built with CMTAT”; “Publish a blog post” → “Published a blog post”.
- 5.d 🟡 Missing recent projects you present in talks: CMTAT-Confidential (FHE / ERC-7984), CMTAT cross-chain, Aztec version, and the TERC-20 / TERC-721 / TERC-1155A repos listed in the CV.
- Done: CMTAT Confidential, CMTAT LayerZero, TERC-20 and TERC-721 were added earlier; CMTAT CCIP (CMTAT bridged with Chainlink CCIP,
rya-sge/CMTAT-CCIP) and TERC-1155A added now. - Still open: the Aztec version of CMTAT is not listed, because nothing in the repository shows what role you had in it.
- Done: CMTAT Confidential, CMTAT LayerZero, TERC-20 and TERC-721 were added earlier; CMTAT CCIP (CMTAT bridged with Chainlink CCIP,
- 5.e ✅ “Skills: cryptography security” → “Rust · Cryptography · Security”.
- Done: both Rust projects (Password manager, 2FA with YubiKey) now use “Rust · Cryptography · Security”.
6. Talks
- 6.a ⬜ Talk pages do not show venue and location.
_layouts/talk.html:38only prints the “Talk at venue, location” line whenpage.talk_typeis set, but all talk files usetype. Either addtalk_type: "Talk"to each file or change the layout to testpage.type. - 6.b ⬜
_config.ymlhastalkmap_link: falseand the talkmap notebook is absent, but.github/workflows/scrape_talks.ymlstill runs on every change to_talks/and will fail (it executestalkmap.ipynb). Delete the workflow or add the notebook. - 6.c ✅ The Black Alps talk page uses
\-escaped dashes and twolnkd.inshort links; replace these with normal bullet lists and the full blog URLs (short links hide the destination and can expire). A stray line break splits the Trezor URL (_talks/2024-11-07-crypto-wallet.md).- Done: related posts rewritten as bullet lists with the post titles as links; the two
lnkd.inlinks replaced by the full blog URLs (Winternitz OTS, EIP-6780), both checked to load; the split Trezor URL fixed.
- Done: related posts rewritten as bullet lists with the post titles as links; the two
- 6.d ⬜ Consider adding a thumbnail (
header.teaser) per talk for a nicer Talks page. - 6.e ⬜ The EthCC 2026 location (“Cannes, France”) was not taken from a source in the repo; confirm it.
7. Template leftovers still published
- 7.a ✅
_pages/markdown.md→/markdown/(template’s Markdown guide). - 7.b ✅
_pages/archive-layout-with-content.md→/archive-layout-with-content/(theme demo). - 7.c ✅
_pages/non-menu-page.md→/non-menu-page/(“This is a page not in the menu”).- Done for 7.a–7.c and the post in 7.d:
sitemap: falsein front matter, so they are excluded fromsitemap.xmland from the HTML/sitemap/page, and_includes/seo.htmladds<meta name="robots" content="noindex">for such pages. - Done: all three pages deleted.
- Done for 7.a–7.c and the post in 7.d:
- 7.d ✅
_posts/2025-11-12-blog-post-1.md→ “Blog Post number 1” tagged “cool posts” (now hidden from sitemaps, see above). The “Blog Posts” nav item still leads to a year archive containing only this post. Replace the nav item with a direct link tohttps://rya-sge.github.io/access-denied/, and delete the post.- Done: post deleted; “Blog Posts” in the header now links to
https://rya-sge.github.io/access-denied/.
- Done: post deleted; “Blog Posts” in the header now links to
- 7.e ✅
_publications/— five placeholder papers (“Paper Title Number 1…”).- Done: folder deleted.
- 7.f ✅
_data/authors.yml— “Name Name” / “Name2 Name2” placeholders.- Done: file deleted (the includes that read it already handle its absence).
- 7.g ✅
markdown_generator/— template scripts with placeholder TSVs; not needed if you write talks by hand.- Done: folder deleted.
- 7.h ✅
files/paper1.pdf,files/slides1.pdf,files/bibtex1.bib— template sample files, publicly downloadable. The two PDFs are now excluded fromsitemap.xmlvia_config.ymldefaults, but still published; delete them.- Done: the three files deleted, and their
sitemap: falsedefaults removed from_config.yml.
- Done: the three files deleted, and their
- 7.i ⬜
images/500x300.png,bio-photo.jpg,bio-photo-2.jpg,editing-talk.png— template images. - 7.j ⬜
README.md— still the Academic Pages template README; a short personal README would help visitors of the GitHub repo.
8. Privacy / terms page (_pages/terms.md)
- 8.a ✅ It claims the site uses Disqus comments, Google Analytics and third-party advertisers, none of which are configured. The page is dated 2016. Either rewrite it to reflect reality (GitHub Pages hosting; GitHub logs IPs; no cookies or analytics) or remove it.
- Done: rewritten — Disqus, Google Analytics and third-party advertisers removed; the page now describes GitHub Pages hosting, the scripts loaded from cdnjs and jsDelivr, and the theme choice kept in local storage (no cookies).
- 8.b ✅ Related:
_config.ymldefaults setcomments: truefor posts with no comment provider configured — harmless, but can be set tofalse.- Done: set to
false.
- Done: set to
9. Technical / SEO
- 9.a 🟡
_includes/footer/custom.htmlloads MathJax, Plotly (several MB) and Mermaid on every page, although no page uses them. Removing them speeds up every page load, and removes thepolyfillscript, which is unnecessary for modern browsers (fewer third-party scripts is also a better look on a security engineer’s site).- Done: the polyfill script (
cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js) removed; MathJax 3 does not need it. This is Cloudflare’s mirror, not the compromisedpolyfill.iodomain, so visitors were not exposed. - Still open: MathJax, Plotly and Mermaid are still loaded on every page.
- Done: the polyfill script (
- 9.b ⬜
publication_categoryin_config.yml(Books / Journal Articles / Conference Papers) is unused. - 9.c ✅ The large academic-profile block in
_config.yml(arxiv, pubmed, scopus…) is empty and can be trimmed for readability.- Done: all empty fields removed from the
authorblock (academic, repository and social profiles); the comment above it points to_includes/author-profile.htmlfor the full list of supported fields.
- Done: all empty fields removed from the
- 9.d ⬜ Check that
bluesky: "ad403"is the right handle (other handles areAccessDenied404/ADCDIII). - 9.e ⬜ Slide PDFs:
2024-blackalps-crypto-wallet.pdfis 6.6 MB; compressing it would make it faster to open on mobile.
10. Suggested next quick wins
- ✅ Remove “43 slack teams” and the empty Teaching and Publications sections from the CV (2.a–2.c).
- Add
talk_typeto talks or fix the layout so venue/location appear (6.a). - ✅ Delete the template pages, placeholder post,
_publications/and sample files; point “Blog Posts” to Access Denied (7.a–7.h). - Rewrite or remove the Terms page; drop unused MathJax/Plotly/Mermaid scripts (8.a, 9.a).
