# Pierre Roy (Ayfri) > Pierre Roy (Ayfri) is a French full-stack and AI developer and open-source creator. This site is his portfolio and a technical blog on Kotlin, Kore (Minecraft datapacks) and web development. Pierre is based in France and holds a Data Scientist Master's degree from Ynov Aix (2026). He builds web products with Kotlin, Svelte and TypeScript, ships AI features in Python, and maintains Kore, the Kotlin library used to generate Minecraft datapacks. He worked as a full-stack developer at Eliophot (2023 to 2025) and as lead full-stack and AI developer at Link2Brain (2025 to 2026). His side projects include PokéCards-Collector, Atom Clicker and GPT Images. Every HTML page on ayfri.com also returns Markdown when requested with an `Accept: text/markdown` header. Every article is also available as Markdown at `/articles//index.md`. ## Articles - [4k-minecraft: A Deflate Stream Without 10 Bytes](https://ayfri.com/articles/minecraft-in-four-kilobytes/index.md): How 4k-minecraft, a WebGPU Minecraft in one HTML file of 4096 bytes, carries its own code, and why it only fits thanks to a deflate encoder that never writes the 10 bytes the HTML parser would break. - [How I Built This Portfolio in Kotlin with Kobweb](https://ayfri.com/articles/building-this-portfolio/index.md): The story and the tech behind ayfri.com, a portfolio written entirely in Kotlin with Kobweb and Compose for Web. - [Build a Boss Fight Datapack with Kore](https://ayfri.com/articles/kore-boss-fight/index.md): Build a complete Minecraft boss fight in Kotlin with Kore - a legendary weapon with item components, a custom boss, an OOP boss bar, particle VFX, and a state machine driving the whole fight. - [Building GPT Images (gpt-images.ayfri.com)](https://ayfri.com/articles/gpt-images-website/index.md): How and why I built a SvelteKit client for OpenAI image and video generation, how storage and pricing evolved, and what the project taught me. - [Svelte 5 State in Classes Simplifies My Code](https://ayfri.com/articles/svelte5-state-in-classes/index.md): How Svelte 5 `$state` in class fields made Atom Clicker managers smaller and more maintainable. - [Datapack Generators](https://ayfri.com/articles/datapack-generators/index.md): A modern overview of datapack generators and why Kore stands out for ambitious projects. - [Mastering kotlinx.serialization: Advanced Techniques, Custom Serializers and Performance](https://ayfri.com/articles/kotlin-advanced-serialization/index.md): Advanced kotlinx.serialization techniques from a real Kotlin Multiplatform library, custom KSerializer, enum strategies, @KeepGeneratedSerializer, reflection-free polymorphic serialization with KSP, JSON and NBT, and measured performance optimizations. - [Creating an Hello World Datapack with Kore](https://ayfri.com/articles/kore-hello-world/index.md): Learn how to create a simple Minecraft datapack that displays a "Hello World" message using the Kore library. - [Detect an entity in a zone with Kore](https://ayfri.com/articles/kore-zone-detection/index.md): Detect when a player enters a specific area in Minecraft using a Kore Kotlin library. Learn how to create a datapack that triggers an event when a player enters a defined zone. - [Simple Timer Datapack with Kore](https://ayfri.com/articles/kore-timer/index.md): Create a timer datapack that displays a message every 20 seconds using the Kore library for Minecraft. - [Introduction to Datapack Creation with Kore in Kotlin](https://ayfri.com/articles/kore-introduction/index.md): Learn how to create Minecraft datapacks using Kore in Kotlin. ## Pages - [Home](https://ayfri.com/): hero, featured projects and a short timeline - [About me](https://ayfri.com/about-me/): his story, from first programs in 2014 to Kotlin, Minecraft modding, AI and web projects - [Experiences](https://ayfri.com/experiences/): work and internships at Link2Brain, Eliophot, Ynov and BlueFrog - [Skills](https://ayfri.com/skills/): languages, frameworks and tools, each backed by real projects - [Portfolio](https://ayfri.com/portfolio/): how this Kotlin and Compose for Web portfolio was designed and built - [Projects](https://ayfri.com/projects/): open-source projects on GitHub, searchable by language and tag - [Blog](https://ayfri.com/articles/): all articles, searchable and filterable by tag - [CV in English (PDF)](https://ayfri.com/cv-en.pdf): the resume in English - [CV in French (PDF)](https://ayfri.com/cv.pdf): the resume in French ## Optional - [All articles in one file](https://ayfri.com/llms-full.txt): every article above as a single Markdown document - [RSS feed](https://ayfri.com/feed.xml): every article, newest first - [GitHub](https://github.com/Ayfri): open-source projects and contributions - [LinkedIn](https://www.linkedin.com/in/pierre-roy-ayfri/): professional profile - [Portfolio source code](https://github.com/Ayfri/Portfolio): the source of this site - [X](https://x.com/ayfri_): updates and announcements - [Twitch](https://www.twitch.tv/ayfri_): live streams - [Discord](https://discord.gg/invite/BySjRNQ9Je): community server - [Kore documentation for LLMs](https://kore.ayfri.com/llms.txt): llms.txt of the Kore datapack library docs