[{"data":1,"prerenderedAt":133},["ShallowReactive",2],{"all-blog-posts-for-tags-plugin":3,"blog":65},[4,8,11,16,20,23,28,33,42,50,55],{"tags":5},[6,7],"tip","GitHub",{"tags":9},[10],"git",{"tags":12},[13,14,15],"js","regexp","emoji",{"tags":17},[18,19],"windows","scripting",{"tags":21},[22],"TypeScript",{"tags":24},[22,25,26,27],"Vitest","Testing","Tip",{"tags":29},[30,31,32,27],"Tailwind","CSS","Progressive Enhancement",{"tags":34},[35,36,37,38,39,40,41],"Senior Engineer","Engineering","Career","Management","Leadership","Engineering Best Practices","Soft Skills",{"tags":43},[44,45,46,47,48,49],"open-source","nuxt","Cloudflare Workers","PWA","Privacy","Anarchy",{"tags":51},[52,53,54,22,25,26],"Unicode","Emoji","JavaScript",{"tags":56},[57,58,59,60,61,62,63,64,22],"Algorithm","SVG","Computer Science","Computer Graphics","Procedural Generation","Game Development","Web Development","Mathematics",[66,73,79,85,91,97,103,109,115,121,127],{"path":67,"title":68,"lang":69,"summary":70,"tags":71,"date":72},"\u002Fblog\u002F2026-04-29-what-minecraft-and-a-word-cloud-have-in-common","The Algorithm Behind Procedural Games Like Minecraft — Applied to UI Development","EN","How a grid, a seeded PRNG, and a 50-year-old bin-packing heuristic power both Minecraft's infinite worlds and a simple SVG word cloud — and why that's not a coincidence.",[57,58,59,60,61,62,63,64,22],"2026-04-29",{"path":74,"title":75,"lang":69,"summary":76,"tags":77,"date":78},"\u002Fblog\u002F2026-02-16-why-your-emoji-tests-fail-fe0f","The Tiny Unicode Gotcha Behind Your Emoji Tests Failing: U+FE0F","A tiny Unicode detail can break your tests: `☕` and `☕️` look the same but are different strings because of the Variation Selector-16 (`U+FE0F`). This post explains why it happens and how to avoid flaky assertions.",[52,53,54,22,25,26],"2026-02-16",{"path":80,"title":81,"lang":69,"summary":82,"tags":83,"date":84},"\u002Fblog\u002F2026-02-12-what-is-safe-reader","I created a mini-PWA to read articles without cookie walls","As I was getting annoyed by the \"Accept Cookies or Pay\" walls on many media outlets, I created a small and simple reader app called [SAFE]Reader that allows you to read articles from your favorite sites without having to give away your privacy.",[44,45,46,47,48,49],"2026-02-12",{"path":86,"title":87,"lang":69,"summary":88,"tags":89,"date":90},"\u002Fblog\u002F2026-01-13-what-is-a-senior-engineer","What is a Senior Engineer?","I want to share some thoughts about the essential skills required for senior-level engineering roles, focusing on both technical expertise and soft skills like communication and problem-solving.",[35,36,37,38,39,40,41],"2026-01-13",{"path":92,"title":93,"lang":69,"summary":94,"tags":95,"date":96},"\u002Fblog\u002F2025-06-15-using-container-queries-with-tailwind-safely-in-production","Using Container Queries with Tailwind Safely in Production","Did you know you can already use Container Queries in production today? Little catch — as long as you do it with a \"Progressive Enhancement\" approach! I'm going to share with you a real-world example to allow you to use container queries to build responsive typography, with progressive enhancement in mind.",[30,31,32,27],"2025-06-15",{"path":98,"title":99,"lang":69,"summary":100,"tags":101,"date":102},"\u002Fblog\u002F2025-05-22-mocking-ghost-methods-in-vitest","Mocking Ghost Methods in Vitest","Mocking \"ghost\" methods in Vitest is hack I discovered while mocking with Vitest. It allows you to create virtual methods for testing purposes. This article explores how to implement this concept effectively.",[22,25,26,27],"2025-05-22",{"path":104,"title":105,"lang":69,"summary":106,"tags":107,"date":108},"\u002Fblog\u002F2024-05-07-typescript-immediately-indexed-mapped-types-iimt","Typescript's Immediately Indexed Mapped Type (IIMT)","Let's explore what \"Immediately Indexed Mapped Type (IIMT)\", the concept coined by Matt Pocock, means. To understand IIMT, we need to understand the underlying concepts first.",[22],"2024-05-07",{"path":110,"title":111,"lang":69,"summary":112,"tags":113,"date":114},"\u002Fblog\u002F2019-10-28-how-to-set-aliases-in-powershell","How to Set Aliases in PowerShell","How to set up custom aliases in Windows Powershell using profile.ps1 to run npm (node.js) commands using a shortcut",[18,19],"2022-02-16",{"path":116,"title":117,"lang":69,"summary":118,"tags":119,"date":120},"\u002Fblog\u002F2019-08-29-how-to-search-for-emojis-with-regular-expressions","How to Search for Emojis with Regular Expressions","How to look for emojis in a string using Javascript Regular Expressions with a handy shorthand.",[13,14,15],"2019-08-29",{"path":122,"title":123,"lang":69,"summary":124,"tags":125,"date":126},"\u002Fblog\u002F2019-07-23-how-to-git-stash-one-file-and-add-a-message","How to git stash one file and add a message","Stashing one file only is done with git stash push but what about adding also a message to the stash so you can easily get it afterward?",[10],"2019-07-23",{"path":128,"title":129,"lang":69,"summary":130,"tags":131,"date":132},"\u002Fblog\u002F2019-06-25-how-to-filter-github-issues-other-people-made-in-your-repository","How to filter GitHub issues other people made in your repository","How to filter an author from a pull request or an issue on GitHub using their syntax on the GitHub search.",[6,7],"2019-06-25",1779405271937]