Skip to content
Hello! My name is Azan (a·zaan). I'm a self-taught musician, an enjoyer of the outdoors, and a software engineer. Below is a mix of things I've written myself and things I've read and wanted to share. Posts are mine, reposts link out to whoever wrote the original.

Writing on things I've built, broken, and learned from

  1. Post
    My contributions to the 'chai article'

    How I make nun chai at home

  2. Post
    NixOS and Ente on Hetzner

    My experience installing NixOS on a cheap Hetzner VPS and hosting Ente on it using Docker Compose

  3. Post
    My attempts to use a CMS in 2026

    CMS' are difficult to get right and all my clients want a WYSIWYG

  4. Post
    Authorization is still quite broken

    Modelling permissions in OpenFGA and why check() isn't enough

  5. Post
    Hot takes from IndieWebClub in the absence of Tanvi

    Fifteen contrarian opinions about writing

  6. Post
    Markdown is actually not _that_ extensible

    Where Markdown's HTML/directive hybrids fall apart

  7. Post
    Generating my resume programmatically

    Moving from LaTeX to typst for my resume

  8. Post
    Music at hack4play with strudel.cc

    Workshop notes from Kochi Bienalle's Forplay Society programme

  9. Post
    A weeknote because Tanvi is scary - II

    Workshops, an SMTP client in a Cloudflare Worker, and being tired

  10. Post
    Backing up my Obsidian store and open-sourcing my website

    Restic on local and Cloudflare R2

  11. Post
    A conversation about Chancenkarte

    Notes from a colleague who moved to Germany on a Chancenkarte

  12. Post
    A nice thing a stranger has done for me

    A song lyric that gave me a reason to keep going

  13. Post
    A weeknote because Tanvi is scary

    Finishing a course, switching to swaywm, and losing a friend

  14. Post
    All my download metrics in one place

    Trying to find a single view of package download stats across registries

  15. Post
    PROGA and how to "protect" consumers

    Prohibition over regulation in India's online gaming ban

  16. Post
    A case for regulator-backed open-source tools

    India's DPDPA needs open-source compliance tooling, not just rules

  17. Post
    The trash that is NextJS

    On why the App Router makes Next.js unusable for a real SPA

  18. Post
    Music at IndiaFOSS with strudel.cc

    My notes about an impromptu live coding music performance at IndiaFOSS 2025

  19. Post
    A new set of ambigrams

    I made these for friends and stamps

  20. Post
    Migrating from Notion to Obsidian

    My journey migrating my knowledge base from Notion to Obsidian

  21. Post
    Cubic bezier curves, SVGs, and tone.js

    Sound generation that could very well have been a random number generator

  22. Post
    Notion as a bookmarks app

    Using Notion as a powerful bookmarks manager and CMS

  23. Post
    I got PSM-I Certified

    On getting Scrum certified and what it actually took

  24. Post
    OpenAPI documentation and string templating

    One of the ways not to write a documentation builder

  25. Post
    An ambrigram of my name

    The process of creating a symbol for my name

  26. Post
    Ordering food in flights

    Navigating UX design for an airline meal service

  27. Post
    All the ambigrams in my notebooks

    A collection of hand-drawn ambigrams from personal notebooks

A digital library of media I've consumed and recommend

  1. Repost
    A static site generator for audio producers.faircamp.org
  2. Repost
    MIDI, RTP-MIDI, and OSC Explained for Web Developersasepbagja.substack.com
  3. Repost
    Yuck Leopardwww.fromjason.xyz
  4. Repost
    How Software Bugs led to ‘One of the Greatest Miscarriages of Justice’ in British Historycacm.acm.org
  5. Repost
    hotscriptgithub.com
  6. Repost
    There Are No Instances in atprotooverreacted.io
  7. Repost
    Generative UI - LLMs are Effective UI Generatorsarxiv.org
  8. Repost
    Free Is a Debt, Deferredmasoomiyat.substack.com
  9. Repost
    repowisegithub.com
  10. Repost
    Hyperblamhyperblam.how
  11. Repost
    No Effort is Wastedwww.youtube.com
  12. Repost
    Mitos ASCIImitos.shared.oxide.computer
  13. Repost
    Pacapaca-ai.org
  14. Repost
    Harness engineering for coding agent usersmartinfowler.com
  15. Repost
    cerseigithub.com
  16. Repost
    ikiwikiikiwiki.info
  17. Repost
    How Diamonds are Madediamond.jaydip.me
  18. Repost
    Mechanical Pencilmechanical-pencil.com
  19. Repost
    On Google declaring war on the Webtante.cc
  20. Repost
    Not all TLDs are Created Equalwww.hezmatt.org
  21. Repost
    P4LETTEp4lette.app
  22. Repost
    Project Cambriawww.inkandswitch.com
  23. Repost
    boneyard - skeleton screens for your UIboneyard.vercel.app
  24. Repost
    heerich.jsmeodai.github.io
  25. Repost
    Do I belong in tech anymoreky.fyi
  26. Repost
    CSS or BSwww.keithcirkel.co.uk
  27. Repost
    Making content-aware components using CSS has(), grid, and quantity queriespiccalil.li
  28. Repost
    Graphite.artgraphite.art
  29. Repost
    Morale — LessWrongwww.lesswrong.com
  30. Repost
    openscreengithub.com
  31. Repost
    The Persistence of Decaywww.youtube.com
  32. Repost
    dns - Can top level domains disappear if countries cease to existsuperuser.com
  33. Repost
    What are OKLCH colorsjakub.kr
  34. Repost
    The Startup Graveyardloot-drop.vercel.app
  35. Repost
    Color for the Color-challengedferdychristant.com
  36. Repost
    Dithering - Part 1visualrambling.space
  37. Repost
    SandDancemicrosoft.github.io
  38. Repost
    Homemade bioplastic eggshell bowlwww.youtube.com
  39. Repost
    Tufte CSSedwardtufte.github.io
  40. Repost
    Dark Mode by Local Sunlightwww.ctnicholas.dev
  41. Repost
    Your URL Is Your Statealfy.blog
  42. Repost
    NaN, the not-a-number number that isn’t NaNpiccalil.li
  43. Repost
    Yạḍ Dōdwww.hammockmag.com
  44. Repost
    Visualizing algorithms for rate limitingnews.ycombinator.com
  45. Repost
    Sunk costs business failures from the Titanic to Evergrandewww.economist.com
  46. Repost
    last seen online by qwook, sochinstudioqwook.itch.io
  47. Repost
    No, you don't want to hire the best engineerswww.otherbranch.com
  48. Repost
    Graphvizgraphviz.org
  49. Repost
    Hosting a WebSite on a Disposable Vape BogdanTheGeek's Blogewaste.fka.wtf
  50. Repost
    puckeditorpuck The visual editor for Reactgithub.com
  51. Repost
    kibogithub.com
  52. Repost
    Designing accessible color systemsstripe.com
  53. Repost
    Inside the shop of a flute maker.www.youtube.com
  54. Repost
    Every Mother Visits But Minegreaterkashmir.com
  55. Repost
    2-Way and K-Way Mergingwww.baeldung.com
  56. Repost
    As sweet as razor blade honeysashachapin.substack.com

    There’s an oppositional quality to this relationship with discomfort. You are looking for the appropriate exchange rate, implicitly demanding that every setback or humiliation should teach you enough to be worth it. There can be a feeling of coldly dutiful tourism to this way of approaching discomfort, like you’re taking a stinky tour bus in a humid foreign nation, and hating every moment of it, but telling yourself it’s okay because you will be wiser after taking in the ruin.

  57. Repost
    easingseasings.co
  58. Repost
    Great Animationsemilkowal.ski
  59. Repost
    How to Write Compelling Software Release Announcementsrefactoringenglish.com
  60. Repost
    Sidebar animation performancewww.joshuawootonn.com
  61. Repost
    The short seller who bet on a Minecraft financial crisis – DC Shortyoutube.com
  62. Repost
    Seriously, stop using RSAblog.trailofbits.com
  63. Repost
    Ambient Co-presencemaggieappleton.com
  64. Repost
    What football will look like in the futurewww.sbnation.com
  65. Repost
    Creationwww.byran.ee
  66. Repost
    For Algorithms, a Little Memory Outweighs a Lot of Timewww.quantamagazine.org
  67. Repost
    The EngineerManager Pendulumcharity.wtf
  68. Repost
    Rampen Saumeodai.github.io
  69. Repost
    Scaling One Million Checkboxes to 650,000,000 checkseieio.games
  70. Repost
    4-20 Time Signaturesyoutube.com
  71. Repost
    Deploy code faster- with CI-CD and Kubernetescloud.google.com
  72. Repost
    Forward Mode Automatic Differentiationyoutube.com
  73. Repost
    How to professionally sayhowtoprofessionallysay.akashrajpurohit.com
  74. Repost
    Checkpoint — Áron Filkey & Joss Fongyoutube.com
  75. Repost
    diyr speakerdiyr.dev
  76. Repost
    How To Remember Everything You Codeyoutube.com
  77. Repost
    Attacking UNIX Systems via CUPS, Part Iwww.evilsocket.net
  78. Repost
    Microservices Gone Wrong at DoorDashyoutube.com
  79. Repost
    Building multi-tenant authorization system for B2B SaaS in Go using Permifyone2n.io
  80. Repost
    Small Datayoutube.com
  81. Repost
    The Fundamentals Of Soundyoutube.com
  82. Repost
    Understanding the 6-8 Time Signature with Interactive Examplesmuted.io
  83. Repost
    Tiktok's enshittificationpluralistic.net
  84. Repost
    enterprise-addgithub.com
  85. Repost
    Schedule Sortgithub.com
  86. Repost
    You Must Read At Least One Book To Rideludic.mataroa.blog
  87. Repost
    The Pentium FDIV bug, reverse-engineered Hacker Newsnews.ycombinator.com
  88. Repost
    AI Copyright Claimed My Last Videoyoutube.com
  89. Repost
    Bypassing regulatory locks, Faraday cages and upgrading your hearinglagrangepoint.substack.com
  90. Repost
    I Don't Want to be a Founder and I Don't Think You Do Eitherkipp.ly
  91. Repost
    The Disappearance of an Internet Domainevery.to
  92. Repost
    Hyrum's Law in Golang - Abenezer Belachewabenezer.org
  93. Repost
    Committing War-Crimes with the Spotify APIyoutube.com
  94. Repost
    Creating a type scale in Tailwind CSSwww.subframe.com
  95. Repost
    Meth and Factorioyoutube.com
  96. Repost
    taking my keyboard to workyoutube.com
  97. Repost
    On These Questions, Smarter People Do Worseyoutube.com
  98. Repost
    Linux Removes Russian Maintainersyoutube.com
  99. Repost
    The WordPress ecosystem has lost its mind…youtube.com
  100. Repost
    Google LLC v. Oracle America, Incen.wikipedia.org
  101. Repost
    Then Next Comesyoutube.com
  102. Repost
    Why does man print gimme gimme gimme at 00-30unix.stackexchange.com
  103. Repost
    Zero Credibility Slava Akhmechetweb.archive.org
  104. Repost
    I used to hate QR codes. But they're actually geniusyoutube.com
  105. Repost
    Debunking Davosyoutube.com
  106. Repost
    I spent six months rewriting everything in Rustyoutube.com
  107. Repost
    Hardware- TPM modulepaolozaino.wordpress.com
  108. Repost
    What's inside the QR code menu at this cafe - by peabeeweb.archive.org
  109. Repost
    Exposing The Flaw In Our Phone Systemyoutube.com
  110. Repost
    Why Democracy Is Mathematically Impossibleyoutube.com
  111. Repost
    Infrared Laser Can Spy on Your Laptop’s Keystrokeswww.wired.com
  112. Repost
    The case of the 500-mile emailwww.ibiblio.org
  113. Repost
    Don’t ask to ask, just askdontasktoask.com
  114. Repost
    XY problemxyproblem.info
  115. Repost
    Trust as a bottleneck to growing teams quicklywww.benkuhn.net
  116. Repost
    The Case for Intellectual Lonelinessemilykuret.medium.com
  117. Repost
    Dev Deletes Entire Production Database, Chaos Ensuesyoutube.com
  118. Repost
    How GitHub's Database Self-Destructed in 43 Secondsyoutube.com
  119. Repost
    crowdstrike accidentally destroys 8,000,000 computers (banks, hospitals, airports)youtube.com
  120. Repost
    Bug compatibilityen.wikipedia.org
  121. Repost
    I Will Fucking Piledrive You If You Mention AI Againludic.mataroa.blog
  122. Repost
    The Twelve-Factor App12factor.net
  123. Repost
    A beginner’s guide to Read and Write Skew phenomenavladmihalcea.com
  124. Repost
    Learning OpenTelemetrylearningopentelemetry.com
  125. Repost
    oom_pardon, aka don't kill my xlocklwn.net
  126. Repost
    The problem with lying is keeping track of all the liesnews.ycombinator.com
  127. Repost
    Why, after 6 years, I’m over GraphQLbessey.dev
  128. Repost
    How a single ChatGPT mistake cost us $10,000+web.archive.org
  129. Repost
    The Two of Three Rule - Stonecharioteerstonecharioteer.com
  130. Repost
    React Compiler- In-Depth Beyond React Conf 2024youtube.com
  131. Repost
    Merging Remix and React Routerremix.run
  132. Repost
    Tmux has forever changed the way I write codeyoutube.com
  133. Repost
    The best (and worst) types for storing money in PostgreSQLyoutube.com
  134. Repost
    Difference between Apache parquet and arrowstackoverflow.com
  135. Repost
    Node.js- The Documentaryyoutube.com
  136. Repost
    3 Chars - 20x Perf Improvementyoutube.com
  137. Repost
    How a Leap Day Took Down Microsoftyoutube.com
  138. Repost
    Kind of annoyed at Reactblog.cassidoo.co
  139. Repost
    Migrating from Zod to Valibot- A Comparative Experiencemwskwong.com
  140. Repost
    Improving API error responses with the Result patternraygun.com

    C# can be quite inflexible when trying to reuse code, primarily running into limitations with the type system which, disappointingly, are circumvented by the community using reflection.

  141. Repost
    Why you should stop doing code reviews!vgallet.github.io
  142. Repost
    In Defense of Not-Invented-Here Syndromewww.joelonsoftware.com
  143. Repost
    Readme driven developmenttom.preston-werner.com
  144. Repost
    Everything I know about the XZ backdoorboehs.org
  145. Repost
    Tiny Content Frameworkgist.github.com
  146. Repost
    An Illustrated Proof of the CAP Theoremmwhittaker.github.io
  147. Repost
    Reviewing EVERY Samsung Galaxy S Ever!youtube.com

    This reminded me of the time I wiped the /efs partition on a Galaxy S i9000 while messing around with ClockworkMod.

  148. Repost
    Small Phones are Dead and We Killed Themyoutube.com
  149. Repost
    Reality of Frontend Developersyoutube.com
  150. Repost
    Sentinel valueen.wikipedia.org

    We see these all over the place, I’ve even seen them being implemented incorrectly. Thankfully, knowing more about what these flags are called will help me implement them better in the future.

  151. Repost
    Diffie Hellman - the Mathematics bityoutube.com
  152. Repost
    How to be differentyoutube.com

    deviation from the norm will be punished unless exploitable

  153. Repost
    A Personal Interfaceboz.com
  154. Repost
    Traits I Valueboz.com
  155. Repost
    How to design your company for speednewsletter.posthog.com
  156. Repost
    Everyone has JavaScript, rightwww.kryogenix.org
  157. Repost
    The fastest-growing countries for software development, according to GitHubrestofworld.org

    Is more public developer activity a leading or trailing indicator for other kinds of development?” he said, reframing the question. “It might be leading for some and trailing for others.

  158. Repost
    Give Up Soonerblog.boot.dev
  159. Repost
    The Toxic Business of 2023youtube.com
  160. Repost
    Software Engineering- The Soft Parts – Addy Osmaniaddyosmani.com
  161. Repost
    Dear Functional Brosyoutube.com

    The GATE CSE exam often asks you to select an equivalent recursive function to a procedural one. This video taught me why these conversions are significant.

  162. Repost
    Progress Barsyoutube.com
  163. Repost
    We fired our top talent. Best decision we ever madefreecodecamp.org
  164. Repost
    epoll- The API that powers the modern internetdarkcoding.net
  165. Repost
    Inside .gitjvns.ca
  166. Repost
    The Outsider – Albert Camusen.wikipedia.org

    The foreword.

  167. Repost
    4 billion if statementsandreasjhkarlsson.github.io

    computers are magical so who knows what is going on

  168. Repost
    const fn- Pure Functions in Rustyoutube.com
  169. Repost
    Dear neighbourfiftytwo.in
  170. Repost
    Is Laufey jazzyoutube.com
  171. Repost
    HTML & CSS for a One-Time Password Inputchriscoyier.net

    The one-time password input has always bugged me. I’ve seen too many websites get it wrong due to custom logic they have written around 4 or 6 separate inputs.

  172. Repost
    HTML- The Bad Partswww.htmhell.dev

    If you’ve ever tried to build Web Components or write semantic HTML, you will find something to relate to in this article.

  173. Repost
    Seriously, Don’t Use Icon Fontscloudfour.com

    I really like how the Material Symbols variable fonts work with transitions but the author has a point, icon fonts are just bad.

  174. Repost
    What you can learn from how GitHub and GitLab use feature flagsposthog.com
  175. Repost
    Work is workcodahale.com

    Companies are groups of people being compensated for having to spend some of their finite lifetimes not being with their partners, children, pets, or super weird hobbies. They deserve to be members of organizations which honor that time by ensuring that their work has value and meaning. There is no mathematical model to guide us to that goal.

  176. Repost
    DexIdPdexidp.io
  177. Repost
    Drawing gardendrawing.garden
  178. Repost
    halfmoonwww.gethalfmoon.com
  179. Repost
    visxairbnb.io
  180. Repost
    Refactoring UIwww.refactoringui.com
  181. Repost
    Zero-config type safetysvelte.dev
  182. Repost
    Transport Layer Securityyoutube.com
  183. Repost
    Why I Use Astroflaviocopes.com

    touché

  184. Repost
    How to embrace asynchronous communication for remote workhandbook.gitlab.com

    My team and I have been feeling synchronous communication eating into our time and the GitLab playbook serves as a comprehensive guide on how to do async.

  185. Repost
    The anatomy of shadcn-uimanupa.dev
  186. Repost
    What’s with all of the references to “dude” in the accessibility header filesdevblogs.microsoft.com
  187. Repost
    What’s The Best Way To Heat A Tent With A Laptophackaday.com