Skip to content
Janaka2Public

About

resume

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

visitors

janaka.me — personal site of Janaka Premathilaka

Senior Java Engineer & Solution Architect, Zug 🇨🇭. Banking-grade Java engineering, now bringing practical AI into regulated systems. Hub for the blog, lab, AI notes, CV, Janaka Academy and five products: nüchtern, Daily Momentum, Loop, BabyLoop and LeftHere, plus AssetCare, a live Java 25 + Spring Boot + Angular + Kubernetes reference application (assetcare.janaka.me, case study at /lab/assetcare/).

Plain HTML/CSS/JavaScript. No frameworks and no runtime dependencies — host it anywhere (GitHub Pages works as-is). Derived files (sitemap, feed, JSON-LD, llms.txt, /api/public/v1/) are generated by python3 scripts/build.py and committed.

Structure

Path Purpose
index.html Main landing page. Assembles the sections below via data-include partials.
partials/*.html Page sections (hero, experience, certifications, education, life journey, metrics, AI-assistant CTA, chat popup, contact/footer).
resume/index.html (/resume/) Standalone one-page visual CV — the design source of truth. Self-contained, zero dependencies.
assets/css/theme.css Shared design system (CSS custom properties, light/dark themes) extracted from the visual CV.
assets/js/includes.js Tiny partial loader (fetch → fires partials:loaded).
assets/js/i18n.js EN/DE translations (data-i18n keys; English is captured from the markup, German lives in the dictionary).
assets/js/main.js Theme switch, language switch, tabs, collapsible work history, chat popup.
partials/*.pdf Downloadable CV (EN) and Lebenslauf (DE).
cv/print/index.html A4 print source for the CV PDF (scripts/export-cv-pdf.py); noindex, unlinked, intentionally print-styled.
lab/assetcare/, academy/assetcare/, blog/posts/assetcare-idea-to-production.html, partials/featured-build.html AssetCare, the live Java 25 + Spring Boot + Angular + Kubernetes reference application (assetcare.janaka.me): case study, learning series, engineering article and the hub section.
chatbot/ Python backend powering the AI assistant (deployed separately; the chat modal embeds the Hugging Face Space janaka2-claritybot.hf.space).

Conventions

  • Theme: stored in localStorage under jp-theme (light/dark), defaults to the OS preference. Shared between the main page and the visual CV.
  • Language: stored under jp-lang (en/de), defaults to the browser language (English otherwise). Shared between pages too.
  • Design tokens live at the top of assets/css/theme.css (--bg, --bg2, --tx, --tx2, --ln, --ac, --ok, --chip, --shadow, --r). Use them instead of hard-coded colors.

Local preview

The partials are loaded with fetch(), so open the site through a local server, not file://:

python3 -m http.server 8000
# then open http://localhost:8000/

Discovery, agents and maintenance

What Where
Engineering contract for people and coding agents AGENTS.md (Claude Code: CLAUDE.md, .claude/)
Canonical facts (pages, profile, projects) content/site.json, content/profile.json, content/projects.json
Regenerate everything python3 scripts/build.py
Check everything (as CI does) npm run check (validator + Node and Python tests; no dependencies)
Machine-readable views /sitemap.xml, /feed.xml, /llms.txt, /api/public/v1/index.json
In-browser agent tools (WebMCP, progressive enhancement) assets/js/agent/, docs/ai/webmcp.md
How it fits together docs/architecture/site.md, docs/ai/discovery.md, docs/maintenance/claude-code.md

About

resume

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages