<!DOCTYPE html><html domain=karanjanthe,me lang=en><meta charset=utf-8><meta content="width=device-width,initial-scale=1" name=viewport><link href="/img/favicon/favicon-192x192.png?hash=2089033c93" rel=icon type=image/png><meta content=#f9c412 name=theme-color><meta content="max-snippet:-1, max-image-preview: large, max-video-preview: -1" name=robots><title>Karan's Blog</title><meta content="Karan's Blog" property=og:title><meta content="Notes on random rabbit holes I explore." name=description><meta content="Notes on random rabbit holes I explore." property=og:description><meta content=summary_large_image name=twitter:card><meta content=@karanjanthe name=twitter:site><meta content=@karanjanthe name=twitter:creator><meta content=https://blog.karanjanthe.me/img/remote/Z1zSEvE.jpg property=og:image><link href=https://blog.karanjanthe.me/ rel=canonical><meta content=no-referrer-when-downgrade name=referrer><link href=/feed/feed.xml rel=alternate type=application/atom+xml title="Karan Janthe"><link href=/ rel=preconnect crossorigin=""><link href=/fonts/Inter-3.19.var.woff2 rel=preload type=font/woff2 as=font crossorigin=""><script src="/js/min.js?hash=8db32dcb3a" async defer></script><script src=/js/generative-bg.js></script><script csp-hash="">if (/Mac OS X/.test(navigator.userAgent))document.documentElement.classList.add('apple')</script><style>@keyframes subtleShift{0%,50%,to{background:0 0}}@keyframes floatDots{0%,25%,50%,75%,to{transform:translate(0,0) rotate(0deg);opacity:0}}:root{--primary:#60a5fa;--primary-dark:#3b82f6;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--bg-primary:#000002;--bg-secondary:#030521;--border-color:#0a0b2e;--max-content-width:50rem;--content-padding:2rem;--reading-width:65ch;--line-height-body:1.6;--line-height-heading:1.2;--font-size-base:1.125rem;--spacing-xs:0.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-2xl:4rem;--main-width:calc(100vw - 3em)}main img{content-visibility:auto}article *{scroll-margin-top:50px}@media (min-width:37.5em){:root{--main-width:calc(37.5em - 3em)}}dialog{background-color:#8dff80;position:fixed;opacity:.9;z-index:1000}#posts{margin-top:2rem}#posts h2{margin-bottom:2rem;font-weight:300;color:var(--text-primary)}#posts ul{list-style:none;padding:0;margin:0}#posts li{margin-bottom:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--border-color);display:grid;grid-template-columns:1fr auto;gap:var(--spacing-md);align-items:start}#posts li:last-child{border-bottom:none}#posts a{font-weight:500;text-decoration:none;color:var(--text-primary);transition:color .2s ease;font-size:1.125rem;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;text-wrap:balance;min-width:0}#posts a:hover,a{color:var(--primary)}#posts time{color:var(--text-secondary);font-size:.875rem;font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:.25rem}@media (max-width:48rem){#posts li{grid-template-columns:1fr;gap:var(--spacing-xs);padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md)}#posts a{font-size:1rem;line-height:1.4}#posts time{font-size:.8rem;margin-top:0}}html{line-height:1.15;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;--font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;scroll-behavior:smooth}body{margin:0}h1{font-size:3em;line-height:1.25;margin:.67em 0 .5em;font-size:2.074rem}a{background-color:transparent;color:#f9c412;text-decoration:none;transition:color .2s ease}img{border-style:none;max-width:100%}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h2{font-size:2.5em;line-height:1.2;margin-bottom:.6em}body,p,ul{font-size:1em}p,ul{margin-bottom:1.5em}h1,h2{line-height:2.4rem;margin-bottom:1.36rem}h2{font-size:1.728rem}body,p,ul{font-size:1rem;line-height:1.6}p,ul{margin-bottom:1.36rem}@media (min-width:600px){h1{font-size:4.3978rem;line-height:4.4rem}h2{font-size:3.1097rem;line-height:3.52rem}body,p,ul{font-size:1.1rem;line-height:1.6}h1,h2,p,ul{margin-bottom:1.496rem}}@media (min-width:1200px){h1{font-size:6.0756rem;line-height:6.72rem}h2{font-size:4.05rem;line-height:4.8rem}body,p,ul{font-size:1.2rem;line-height:1.6}h1,h2,p,ul{margin-bottom:1.632rem}}h1,h2{font-family:var(--font-family)}h2{font-style:normal}a:hover{text-decoration:underline}*{border:0;box-sizing:border-box}article img{border-radius:.75rem;box-shadow:0 8px 24px rgba(0,0,0,.2);margin:var(--spacing-2xl) 0;display:block;max-width:100%;width:100%;height:auto}@media (min-width:768px){article img{max-width:calc(var(--reading-width) + 8rem);width:auto}}article img:not([align]){margin-left:auto;margin-right:auto}article,body{line-height:var(--line-height-body)}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width:48rem){body{font-size:1.0625rem}}body::before{content:'';position:fixed;top:0;left:0;width:100%;height:100%;background:0 0;pointer-events:none;z-index:-1}.footer-content,main{max-width:var(--max-content-width);margin:0 auto}main{margin-top:2rem;border-top:1px solid var(--border-color);position:relative}footer{background:0 0;border:0;margin-top:var(--spacing-2xl);padding:var(--spacing-lg) 0}.footer-content{padding:0 var(--content-padding);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.social-links,.social-links a{display:flex;align-items:center;justify-content:center}.social-links{gap:var(--spacing-lg)}.social-links a{color:var(--text-secondary);transition:all .2s ease;padding:var(--spacing-sm);border-radius:.5rem}.social-links a:hover{color:var(--primary);background:var(--bg-secondary);transform:translateY(-2px)}.social-links svg{width:24px;height:24px}@media (max-width:48rem){.social-links{gap:var(--spacing-md)}.social-links svg{width:20px;height:20px}}footer>*{margin:1.5em}footer p{font-size:90%}article{max-width:100%;padding:var(--content-padding);margin:0 auto}article>*,li,p{max-width:var(--reading-width)}article h1,article h2{line-height:var(--line-height-heading);max-width:100%}article h1{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;margin:0;color:var(--text-primary)}article h2{font-size:clamp(1.75rem,3.5vw,2rem);font-weight:600;margin:var(--spacing-2xl) 0 var(--spacing-md) 0;position:relative}article h2::after{content:'';position:absolute;bottom:-.5rem;left:0;width:3rem;height:2px;background:var(--primary);border-radius:1px}article h1:first-child,article h2:first-child{margin-top:0}article p{margin-bottom:var(--spacing-md);font-size:inherit;line-height:var(--line-height-body)}article>h1:first-of-type{word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;text-wrap:balance}article ul{margin-bottom:var(--spacing-md);padding-left:var(--spacing-lg)}article li,article li ul{margin-bottom:var(--spacing-xs)}article li{line-height:var(--line-height-body)}article li p{margin-bottom:var(--spacing-sm)}article li ul{margin-top:var(--spacing-xs)}article a:focus{outline:2px solid var(--primary);outline-offset:2px;border-radius:.25rem}::selection{background:var(--primary);color:var(--bg-primary)}::-moz-selection{background:var(--primary);color:var(--bg-primary)}@media print{body{background:#fff;color:#000;font-size:12pt;line-height:1.5}article a{text-decoration:underline;color:#000}h1,h2{page-break-after:avoid;color:#000}img{max-width:100%;page-break-inside:avoid}}body.homepage h1{text-align:center;margin:var(--spacing-2xl) 0;font-size:3rem;font-weight:700;color:var(--text-primary)}body.homepage{position:relative;overflow-x:hidden}body.homepage footer{background:#000002}ul{margin-top:0}li ul{margin-bottom:0}img{height:auto;margin:0 auto}a:hover,article a:hover{color:var(--primary-dark)}article a{color:var(--primary);text-decoration:underline;text-decoration-color:rgba(96,165,250,.5);text-decoration-thickness:1px;text-underline-offset:2px;transition:all .2s ease}article a:hover{text-decoration-color:var(--primary-dark);text-decoration-thickness:2px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.footer-opportunities{text-align:center;font-size:.9rem;color:var(--text-secondary);margin:0}.footer-opportunities a{color:var(--primary);text-decoration:none}.footer-opportunities a:hover{text-decoration:underline}</style><body class=homepage><h1>Karan's Blog</h1><dialog id=message></dialog><main><article><p>Notes on random rabbit holes I explore.<div id=posts><h2>Posts</h2><ul><li><a href=/posts/zig-beat/ >My Experience of building bytebeat player in Zig</a> <time datetime=2025-11-01>01 Nov 2025</time><li><a href=/posts/Boolean-satisfiability-problem/ >SAT problems are kind of cool!</a> <time datetime=2025-10-08>08 Oct 2025</time><li><a href=/posts/enzyme-autodiff-rust-gsoc/ >Making Enzyme AutoDiff Toolchain Stable on Rust (GSoC 2025)</a> <time datetime=2025-09-05>05 Sep 2025</time><li><a href=/posts/risc-v-emulator-optimization/ >Optimizing a RISC-V Emulator</a> <time datetime=2025-01-15>15 Jan 2025</time></ul></div></article></main><footer><div class=footer-content><p class=footer-opportunities>Open to opportunities. If you are working on some interesting/hard engineering problems, <a href=https://cal.com/karan-mj/15min rel=noopener target=_blank>Would love to hear</a>!<div class=social-links><a href=https://github.com/KMJ-007 rel=noopener target=_blank aria-label=GitHub><svg fill=currentColor height=20 viewBox="0 0 24 24" width=20><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg> </a><a href=https://bsky.app/profile/kmj007.bsky.social rel=noopener target=_blank aria-label=Bluesky><svg fill=currentColor height=20 viewBox="0 0 600 530" width=20><path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z"></path></svg> </a><a href=https://twitter.com/karanjanthe rel=noopener target=_blank aria-label=Twitter><svg fill=currentColor height=20 viewBox="0 0 24 24" width=20><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg> </a><a href=/feed/feed.xml rel=noopener target=_blank aria-label="RSS Feed"><svg fill=currentColor height=20 viewBox="0 0 16 16" width=20><path d="M5.5 12a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0m-3-8.5a1 1 0 0 1 1-1c5.523 0 10 4.477 10 10a1 1 0 1 1-2 0 8 8 0 0 0-8-8 1 1 0 0 1-1-1m0 4a1 1 0 0 1 1-1 6 6 0 0 1 6 6 1 1 0 1 1-2 0 4 4 0 0 0-4-4 1 1 0 0 1-1-1"></path></svg></a></div></div></footer>