<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Janaka Premathilaka</title>
  <subtitle>Clear, hands-on articles on Java, Kafka, RAG, agents and evals, plus academy modules and lab notes.</subtitle>
  <link rel="alternate" type="text/html" href="https://janaka.me/"/>
  <link rel="self" type="application/atom+xml" href="https://janaka.me/feed.xml"/>
  <id>https://janaka.me/</id>
  <updated>2026-10-02T00:00:00Z</updated>
  <author><name>Janaka Premathilaka</name><uri>https://janaka.me/</uri></author>
  <generator>scripts/gen-feed.py</generator>
  <entry>
    <title>BlitzMath: A Live Classroom Maths Game with One Durable Object per Room</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/blog/posts/blitzmath-realtime-classroom-game.html"/>
    <id>https://janaka.me/blog/posts/blitzmath-realtime-classroom-game.html</id>
    <published>2026-10-02T00:00:00Z</published>
    <updated>2026-10-02T00:00:00Z</updated>
    <category term="blog" label="Blog"/>
    <summary>How BlitzMath runs live maths games for a whole class on Cloudflare Workers: one Durable Object per room as referee, alarms as the clock, no database or accounts.</summary>
  </entry>
  <entry>
    <title>AssetCare case study: Java 25, Spring Boot, Angular and Kubernetes in production</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/lab/assetcare/"/>
    <id>https://janaka.me/lab/assetcare/</id>
    <published>2026-09-23T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <category term="lab" label="Lab"/>
    <summary>AssetCare is a production-deployed Java 25, Spring Boot, Angular and Kubernetes application demonstrating modern full-stack, cloud-native and AI-assisted software engineering. Architecture…</summary>
  </entry>
  <entry>
    <title>From Idea to Production: Building AssetCare with Java 25, Spring Boot, Angular, Kubernetes and AI</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/blog/posts/assetcare-idea-to-production.html"/>
    <id>https://janaka.me/blog/posts/assetcare-idea-to-production.html</id>
    <published>2026-09-23T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <category term="blog" label="Blog"/>
    <summary>How a Java 25, Spring Boot 4.1 and Angular 22 application went from a prototype to a live Kubernetes deployment on Hetzner with Helm, Keycloak, PostgreSQL and Let's Encrypt, what broke on the way…</summary>
  </entry>
  <entry>
    <title>From code to production: building AssetCare — a learning series</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/assetcare/"/>
    <id>https://janaka.me/academy/assetcare/</id>
    <published>2026-09-23T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>A fourteen-module learning series on the AssetCare reference application: architecture, Spring Boot, Angular, PostgreSQL and Liquibase, Keycloak, Docker, Kubernetes, Helm, Terraform, HTTPS, CI/CD…</summary>
  </entry>
  <entry>
    <title>Claude Code configuration, top down: CLAUDE.md, settings, hooks, skills, subagents, plugins and context</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/claude-code-configuration.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/claude-code-configuration.html</id>
    <published>2026-09-21T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>One diagram of how Claude Code is configured, then twelve levels that zoom into it: the two layers, where every file lives and who wins, what loads into context and when, the agent loop and its 33…</summary>
  </entry>
  <entry>
    <title>MCP primitives lab: one server, one client, every feature, both handshakes</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/mcp-primitives-lab.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/mcp-primitives-lab.html</id>
    <published>2026-09-17T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Learn the Model Context Protocol by watching it run: a verified Python server and client that exercise tools, resources, prompts, sampling, roots, elicitation and progress over stdio and Streamable…</summary>
  </entry>
  <entry>
    <title>From CRUD to production: Angular + Spring Boot, served as a seven-course meal</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/production-ready-spring-angular/"/>
    <id>https://janaka.me/academy/production-ready-spring-angular/</id>
    <published>2026-09-16T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>AssetCare, a complete Angular 22 + Spring Boot 4.1 reference application: architecture, PostgreSQL migrations, a production API, the SPA, tests and scans, observability, Helm, K3s on one small…</summary>
  </entry>
  <entry>
    <title>The Spring ecosystem, and what Spring AI can do now</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/spring-ecosystem-and-spring-ai.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/spring-ecosystem-and-spring-ai.html</id>
    <published>2026-09-16T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Spring Boot from 1.0 to 4.x in working examples, then a hands-on tour of Spring AI 2.0: ChatClient, structured output, tools, memory, RAG, MCP, evaluation and agent patterns.</summary>
  </entry>
  <entry>
    <title>MCP end to end: protocol, Java and Python servers, and the agent that uses them</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/mcp-end-to-end.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/mcp-end-to-end.html</id>
    <published>2026-09-16T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>The Model Context Protocol from first principles to production: the wire format, tools, resources, prompts, elicitation, transports, the 2026 stateless revision, security, and a verified Java…</summary>
  </entry>
  <entry>
    <title>Java, release by release: 8 to 27</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/java-evolution-8-to-27.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/java-evolution-8-to-27.html</id>
    <published>2026-09-16T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Every Java release from 8 (2014) to 27 (September 2026): the features that mattered, why they mattered, and a working example for each, from lambdas to post-quantum TLS.</summary>
  </entry>
  <entry>
    <title>Dead-letter topics in Spring Kafka: retries and replay</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/blog/posts/spring-kafka-deadletter.html"/>
    <id>https://janaka.me/blog/posts/spring-kafka-deadletter.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="blog" label="Blog"/>
    <summary>How to handle poison pills in Spring Kafka with DefaultErrorHandler, @RetryableTopic, DeadLetterPublishingRecoverer and a governed replay path.</summary>
  </entry>
  <entry>
    <title>RAG with FAISS: Chunking, MMR and Re-Ranking</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/blog/posts/rag-faiss-patterns.html"/>
    <id>https://janaka.me/blog/posts/rag-faiss-patterns.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="blog" label="Blog"/>
    <summary>Why naive top-k retrieval fails, how to chunk and index with FAISS, and how MMR and cross-encoder re-ranking fix it for a regulated bank.</summary>
  </entry>
  <entry>
    <title>Templates</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/templates.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/templates.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Templates — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Strategies</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/strategies.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/strategies.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Strategies — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>References and Source Notes</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/references.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/references.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>References and Source Notes — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>RAG Prompting</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/rag.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/rag.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>RAG Prompting — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>GPT-5.4 Prompting Guide</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/gpt54.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/gpt54.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>GPT-5.4 Prompting Guide — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Glossary in Easy English</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/glossary.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/glossary.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Glossary in Easy English — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Latest Gemini Prompting Guide</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/gemini.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/gemini.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Latest Gemini Prompting Guide — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Foundations</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/foundations.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/foundations.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Foundations — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Developer Prompts</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/developer.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/developer.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Developer Prompts — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Most Useful Developer Task Prompts</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/developer-tasks.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/developer-tasks.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Most Useful Developer Task Prompts — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Debugging Playbook</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/debugging.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/debugging.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Debugging Playbook — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>GPT-5.4 vs Gemini: Practical Prompting Differences</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/comparison.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/comparison.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>GPT-5.4 vs Gemini: Practical Prompting Differences — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Cheat Sheet</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/cheatsheet.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/cheatsheet.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Cheat Sheet — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Agent Prompting</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/promting/agents.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/promting/agents.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Agent Prompting — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Quantum Use Cases</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/entanglement/use-cases.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/entanglement/use-cases.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Quantum Use Cases — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>References</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/entanglement/references.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/entanglement/references.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>References — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Quantum Computing Explained</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/entanglement/quantum-computing.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/entanglement/quantum-computing.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Quantum Computing Explained — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
  <entry>
    <title>Entanglement Explained</title>
    <link rel="alternate" type="text/html" href="https://janaka.me/academy/modules/2026/FSE/entanglement/entanglement.html"/>
    <id>https://janaka.me/academy/modules/2026/FSE/entanglement/entanglement.html</id>
    <published>2026-09-15T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <category term="academy" label="Academy"/>
    <summary>Entanglement Explained — a Janaka Academy module from the Elite Full-Stack Engineering 2026 curriculum by Janaka Premathilaka.</summary>
  </entry>
</feed>
