PageSourceSearch

https://www.mirzemehdi.com/

html mirzemehdi.com collected 2026-10-09 22:08:20 UTC 53,340 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="space_grotesk_9f8773b-module__jR0qOa__variable inter_f5bdfc26-module__0yGzRW__variable jetbrains_mono_8dec50e9-module__V6cRDq__variable h-full antialiased scroll-smooth"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Fimages%2Favatar.png&amp;w=256&amp;q=75 1x, /_next/image?url=%2Fimages%2Favatar.png&amp;w=640&amp;q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/3tdoc5jehc7w5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/3ll07n217cgxf.js"/>
1<script src="/_next/static/chunks/15orcrkp-_9ct.js" async=""></script>
1<script src="/_next/static/chunks/0beuziijxpvy8.js" async=""></script>
1<script src="/_next/static/chunks/29194twgvgfhb.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-3gzz55_2210ab.js" async=""></script>
1<script src="/_next/static/chunks/05-c3ty_6dwfk.js" async=""></script>
1<script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script>
1<script src="/_next/static/chunks/17ntx4fap6cll.js" async=""></script>
1<script src="/_next/static/chunks/1wjuae-isrb6h.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>Mirzamehdi Karimov | Senior Android / Kotlin Multiplatform Engineer</title><meta name="description" content="Senior Android and Kotlin Multiplatform engineer. 8 years of experience, 13 apps shipped solo, author of KMPNotifier and KMPAuth, Kotlin Foundation grant recipient."/><link rel="author" href="https://mirzemehdi.com"/><meta name="author" content="Mirzamehdi Karimov"/><meta name="keywords" content="Kotlin Multiplatform,Compose Multiplatform,Senior Android Developer,KMP developer,Jetpack Compose,Android and iOS app development,KMPNotifier,KMPAuth,Mirzamehdi Karimov"/><meta name="creator" content="Mirzamehdi Karimov"/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://mirzemehdi.com"/><meta property="og:title" content="Mirzamehdi Karimov | Senior Android / KMP Engineer"/><meta property="og:description" content="I build apps with Kotlin that run everywhere. Author of KMPNotifier and KMPAuth, Kotlin Foundation grant recipient."/><meta property="og:url" content="https://mirzemehdi.com"/><meta property="og:site_name" content="Mirzamehdi Karimov"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://mirzemehdi.com/og.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Mirzamehdi Karimov, Senior Android / Kotlin Multiplatform Engineer"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@mirze_mehdi"/><meta name="twitter:creator" content="@mirze_mehdi"/><meta name="twitter:title" content="Mirzamehdi Karimov | Senior Android / KMP Engineer"/><meta name="twitter:description" content="I build apps with Kotlin that run everywhere. Author of KMPNotifier and KMPAuth."/><meta name="twitter:image" content="https://mirzemehdi.com/og.png"/><link rel="icon" href="/favicon.ico?favicon.04f01ptl_xkjn.ico" sizes="48x48" type="image/x-icon"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body class="min-h-full flex flex-col bg-bg text-text"><div hidden=""><!--$--><!--/$--></div>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","name":"Mirzamehdi Karimov","jobTitle":"Senior Android / Kotlin Multiplatform Engineer","url":"https://mirzemehdi.com","email":"mailto:[email protected]","address":{"@type":"PostalAddress","addressLocality":"Budapest","addressCountry":"HU"},"sameAs":["https://github.com/mirzemehdi","https://www.linkedin.com/in/mirzemehdi","https://medium.com/@mirzemehdi","https://x.com/mirze_mehdi"],"knowsAbout":["Kotlin","Kotlin Multiplatform","Compose Multiplatform","Jetpack Compose","Android development","iOS development via KMP"],"award":["Kotlin Foundation grant, KMP Contest Starter Kit 2026","5th place, RevenueCat Shipaton (CLIPUGC)"]}</script>
1<main><header class="fixed top-0 inset-x-0 z-50 backdrop-blur-md bg-bg/70 border-b border-border"><nav class="mx-auto max-w-6xl px-5 h-14 flex items-center justify-between"><a href="#top" class="font-mono text-sm text-text"><span class="text-accent-2">~/</span>mirzemehdi</a><div class="hidden sm:flex items-center gap-6"><a href="#projects" class="text-sm text-muted hover:text-text transition-colors duration-200">Projects</a><a href="#open-source" class="text-sm text-muted hover:text-text transition-colors duration-200">Open source</a><a href="#skills" class="text-sm text-muted hover:text-text transition-colors duration-200">Skills</a><a href="#writing" class="text-sm text-muted hover:text-text transition-colors duration-200">Writing</a><a href="#about" class="text-sm text-muted hover:text-text transition-colors duration-200">About</a><a href="#contact" class="text-sm text-muted hover:text-text transition-colors duration-200">Contact</a><a href="/Mirzamehdi_Karimov_CV.pdf" class="text-sm font-medium px-3 py-1.5 rounded-lg border border-accent text-text hover:bg-accent/15 transition-colors duration-200">Download CV</a></div></nav></header><section id="top" class="relative overflow-hidden pt-32 pb-20 sm:pt-40 sm:pb-28"><div class="glow bg-accent w-[420px] h-[420px] -top-32 -left-24"></div><div class="glow bg-accent-2 w-[360px] h-[360px] top-24 right-0"></div><div class="relative mx-auto max-w-6xl px-5 grid sm:grid-cols-[1fr_auto] gap-10 items-center"><div><p class="font-mono text-sm text-accent-2 mb-4" style="opacity:0">Budapest, Hungary</p><h1 class="text-4xl sm:text-6xl font-bold leading-tight mb-5" style="opacity:0;transform:translateY(24px)">I build apps with Kotlin.<br/><span class="gradient-text">They run everywhere.</span></h1><p class="text-lg text-muted max-w-xl mb-8" style="opacity:0;transform:translateY(24px)">I&#x27;m Mirzamehdi, a senior Android and Kotlin Multiplatform engineer. 8 years in, 13 apps shipped solo through my own studio, and open source libraries other developers build on.</p><div class="flex flex-wrap gap-3" style="opacity:0;transform:translateY(24px)"><a href="#projects" class="px-5 py-2.5 rounded-lg bg-accent text-emerald-950 font-medium hover:opacity-90 transition-opacity duration-200">See my work</a><a href="mailto:[email protected]" class="px-5 py-2.5 rounded-lg border border-border text-text hover:border-accent transition-colors duration-200">Get in touch</a></div></div><div class="hidden sm:block" style="opacity:0;transform:scale(0.9)"><img alt="Portrait of Mirzamehdi Karimov" width="220" height="220" decoding="async" data-nimg="1" class="rounded-2xl border border-border" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Favatar.png&amp;w=256&amp;q=75 1x, /_next/image?url=%2Fimages%2Favatar.png&amp;w=640&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Favatar.png&amp;w=640&amp;q=75"/></div></div></section><section class="border-y border-border bg-surface"><div class="mx-auto max-w-6xl px-5 py-10 grid grid-cols-2 sm:grid-cols-4 gap-8"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-3xl font-bold gradient-text">8</p><p class="text-sm text-muted mt-1">years of experience</p></div><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-3xl font-bold gradient-text">13</p><p class="text-sm text-muted mt-1">apps shipped solo</p></div><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-3xl font-bold gradient-text">1,200+</p><p class="text-sm text-muted mt-1">GitHub stars combined</p></div><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-3xl font-bold gradient-text">100+</p><p class="text-sm text-muted mt-1">devs used KAppMaker</p></div></div></section><section class="mx-auto max-w-6xl px-5 pt-20"><div class="grid sm:grid-cols-3 gap-5"><div style="opacity:0;transform:translateY(24px)"><a href="https://kotlinfoundation.org/news/kmp-contest-starter-kit-2026-grant-recipient/" target="_blank" rel="noopener" class="block h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><p class="font-semibold mb-1.5">Kotlin Foundation grant</p><p class="text-sm text-muted">KMP Contest Starter Kit 2026, awarded for KAppMaker.</p></a></div><div style="opacity:0;transform:translateY(24px)"><a href="https://devpost.com/software/clipugc" target="_blank" rel="noopener" class="block h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><p class="font-semibold mb-1.5">5th place, RevenueCat Shipaton</p><p class="text-sm text-muted">With CLIPUGC, a Compose Multiplatform app.</p></a></div><div style="opacity:0;transform:translateY(24px)"><a href="https://medium.com/@mirzemehdi" target="_blank" rel="noopener" class="block h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><p class="font-semibold mb-1.5">Featured writing</p><p class="text-sm text-muted">Articles picked up by Google Dev Library, JetBrains, Kotlin, DroidCon and AndroidWeekly.</p></a></div></div></section><section id="projects" class="mx-auto max-w-6xl px-5 pt-24 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// projects</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">Things I shipped</h2></div><div class="grid sm:grid-cols-3 gap-5"><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://measify.com" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-6 hover:border-accent hover:-translate-y-1 transition-all duration-200"><div class="flex items-center justify-between mb-3"><h3 class="text-xl font-bold">Measify</h3><span class="text-muted group-hover:text-accent-2 transition-colors duration-200"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></div><p class="font-mono text-xs text-accent-2 mb-3">My app studio, numbers in public</p><p class="text-sm text-muted mb-5 flex-1">The studio I run on my own. 13 apps shipped to the App Store and Play Store, 16K+ downloads, and I publish the real download and revenue figures for every one of them, pulled from the stores and updated daily.</p><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">App studio</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">13 apps shipped</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Public numbers</span></div></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://clipugc.com" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-6 hover:border-accent hover:-translate-y-1 transition-all duration-200"><div class="flex items-center justify-between mb-3"><h3 class="text-xl font-bold">CLIPUGC</h3><span class="text-muted group-hover:text-accent-2 transition-colors duration-200"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></div><p class="font-mono text-xs text-accent-2 mb-3">5th place, RevenueCat Shipaton</p><p class="text-sm text-muted mb-5 flex-1">An app for creating UGC-style short videos. Built solo with Kotlin Multiplatform and Compose Multiplatform, live on the stores.</p><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Compose Multiplatform</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">iOS + Android</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Live</span></div></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://kappmaker.com" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-6 hover:border-accent hover:-translate-y-1 transition-all duration-200"><div class="flex items-center justify-between mb-3"><h3 class="text-xl font-bold">KAppMaker</h3><span class="text-muted group-hover:text-accent-2 transition-colors duration-200"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></div><p class="font-mono text-xs text-accent-2 mb-3">Kotlin Foundation grant winner</p><p class="text-sm text-muted mb-5 flex-1">You sleep, your app gets built. Describe your app over Telegram and a 24/7 AI machine designs it, builds it and prepares it for the app stores. Grew out of a KMP starter kit used by about 100 developers.</p><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">AI</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Telegram</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Mobile apps</span></div></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://github.com/KAppMaker/KAppMaker-CLI" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-6 hover:border-accent hover:-translate-y-1 transition-all duration-200"><div class="flex items-center justify-between mb-3"><h3 class="text-xl font-bold">KAppMaker CLI</h3><span class="text-muted group-hover:text-accent-2 transition-colors duration-200"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></div><p class="font-mono text-xs text-accent-2 mb-3">Open source tooling</p><p class="text-sm text-muted mb-5 flex-1">CLI that automates mobile app setup end to end: Firebase, App Store Connect, Adapty, signing, publishing, and AI-generated logos and screenshots in one workflow.</p><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Open source</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">CLI</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Automation</span></div></a></div></div><div style="opacity:0;transform:translateY(24px)"><p class="text-sm text-muted mt-6">Plus 13 KMP + Compose Multiplatform apps shipped solo, from design to store release. I run them through my own studio,<!-- --> <a href="https://measify.com" target="_blank" rel="noopener" class="underline underline-offset-4 hover:text-fg">Measify</a>, where the real downloads and revenue for every app are public.</p></div></section><section id="open-source" class="mx-auto max-w-6xl px-5 pt-24 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// open source</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">Libraries the community uses</h2></div><div class="grid sm:grid-cols-2 gap-5"><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://github.com/mirzemehdi/KMPNotifier" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-6 hover:border-accent hover:-translate-y-1 transition-all duration-200"><div class="flex items-center justify-between mb-3"><h3 class="text-xl font-bold font-mono">KMPNotifier</h3><span class="flex items-center gap-1.5 text-sm text-accent-2"><svg viewBox="0 0 24 24" fill="currentColor" class="size-4" aria-hidden="true"><path d="M12 2l2.94 6.26L21.5 9.3l-4.75 4.4 1.19 6.8L12 17.25 6.06 20.5l1.19-6.8L2.5 9.3l6.56-1.04L12 2z"></path></svg>650+</span></div><p class="text-sm text-muted mb-5 flex-1">Push notification library for Kotlin Multiplatform. One API for Android, iOS, desktop and web (JS and Wasm).</p><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Kotlin Multiplatform</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Push notifications</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Firebase</span></div></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://github.com/mirzemehdi/KMPAuth" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-6 hover:border-accent hover:-translate-y-1 transition-all duration-200"><div class="flex items-center justify-between mb-3"><h3 class="text-xl font-bold font-mono">KMPAuth</h3><span class="flex items-center gap-1.5 text-sm text-accent-2"><svg viewBox="0 0 24 24" fill="currentColor" class="size-4" aria-hidden="true"><path d="M12 2l2.94 6.26L21.5 9.3l-4.75 4.4 1.19 6.8L12 17.25 6.06 20.5l1.19-6.8L2.5 9.3l6.56-1.04L12 2z"></path></svg>545+</span></div><p class="text-sm text-muted mb-5 flex-1">Authentication library for Kotlin Multiplatform. Google, Apple and Github sign-in across the same four platforms.</p><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Kotlin Multiplatform</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">Authentication</span><span class="text-xs font-mono px-2 py-1 rounded-md bg-surface-2 text-muted">OAuth</span></div></a></div></div></section><section id="skills" class="mx-auto max-w-6xl px-5 pt-24 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// skills</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">What I work with</h2></div><div class="grid sm:grid-cols-3 gap-5"><div class="h-full" style="opacity:0;transform:translateY(24px)"><div class="h-full rounded-xl border border-border bg-surface p-6"><h3 class="font-mono text-sm text-accent-2 mb-4">Core</h3><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Kotlin</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Kotlin Multiplatform</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Compose Multiplatform</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Jetpack Compose</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Android SDK</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">iOS via KMP</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Java</span></div></div></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><div class="h-full rounded-xl border border-border bg-surface p-6"><h3 class="font-mono text-sm text-accent-2 mb-4">Architecture and quality</h3><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">MVVM</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Clean Architecture</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">SOLID</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Modularization</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">TDD</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Unit / UI / screenshot tests</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Performance optimization</span></div></div></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><div class="h-full rounded-xl border border-border bg-surface p-6"><h3 class="font-mono text-sm text-accent-2 mb-4">Tooling and delivery</h3><div class="flex flex-wrap gap-2"><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface
1-2 text-text border border-border">Coroutines / Flow</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">WorkManager</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Gradle</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">CI/CD</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">GitHub Actions</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Firebase</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Maven Central</span><span class="text-xs font-mono px-2.5 py-1.5 rounded-md bg-surface-2 text-text border border-border">Play Store / App Store</span></div></div></div></div></section><section id="writing" class="mx-auto max-w-6xl px-5 pt-24 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// writing</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">I write about what I build</h2></div><div class="grid sm:grid-cols-2 gap-5 mb-6"><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://medium.com/@mirzemehdi/meet-koko-the-kmp-contest-starter-kit-for-your-first-mobile-app-ffc256f5192f" target="_blank" rel="noopener" class="group flex items-start justify-between gap-4 h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div><p class="font-semibold mb-1.5">Meet Koko, the KMP Contest Starter Kit for Your First Mobile App</p><p class="font-mono text-xs text-muted">Medium<!-- --> · <!-- -->2026</p></div><span class="text-muted group-hover:text-accent-2 transition-colors duration-200 shrink-0 mt-1"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://proandroiddev.com/how-to-implement-push-notification-in-kotlin-multiplatform-5006ff20f76c" target="_blank" rel="noopener" class="group flex items-start justify-between gap-4 h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div><p class="font-semibold mb-1.5">How to implement Push Notifications in Kotlin Multiplatform</p><p class="font-mono text-xs text-muted">ProAndroidDev<!-- --> · <!-- -->2023</p></div><span class="text-muted group-hover:text-accent-2 transition-colors duration-200 shrink-0 mt-1"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://proandroiddev.com/integrating-google-sign-in-into-kotlin-multiplatform-8381c189a891" target="_blank" rel="noopener" class="group flex items-start justify-between gap-4 h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div><p class="font-semibold mb-1.5">Integrating Google Sign-In into Kotlin Multiplatform</p><p class="font-mono text-xs text-muted">ProAndroidDev<!-- --> · <!-- -->2023</p></div><span class="text-muted group-hover:text-accent-2 transition-colors duration-200 shrink-0 mt-1"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://proandroiddev.com/how-to-use-swift-packages-in-kotlin-multiplatform-using-koin-c7d24fdbbbd7" target="_blank" rel="noopener" class="group flex items-start justify-between gap-4 h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div><p class="font-semibold mb-1.5">How to Use Swift Packages in Kotlin Multiplatform using Koin</p><p class="font-mono text-xs text-muted">
1ProAndroidDev<!-- --> · <!-- -->2025</p></div><span class="text-muted group-hover:text-accent-2 transition-colors duration-200 shrink-0 mt-1"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://medium.com/@mirzemehdi/how-to-self-host-a-ktor-backend-in-kotlin-using-dokploy-2b2f25048a53" target="_blank" rel="noopener" class="group flex items-start justify-between gap-4 h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div><p class="font-semibold mb-1.5">How to Self-Host a Ktor Backend in Kotlin Using Dokploy</p><p class="font-mono text-xs text-muted">Medium<!-- --> · <!-- -->2025</p></div><span class="text-muted group-hover:text-accent-2 transition-colors duration-200 shrink-0 mt-1"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="size-4" aria-hidden="true"><path d="M7 17 17 7M9 7h8v8"></path></svg></span></a></div></div><div style="opacity:0;transform:translateY(24px)"><div class="sm:flex items-center justify-between gap-8"><p class="text-muted text-sm max-w-2xl">Some of these were featured by Google Dev Library, JetBrains, Kotlin, DroidCon and AndroidWeekly.</p><a href="https://medium.com/@mirzemehdi" target="_blank" rel="noopener" class="inline-flex items-center gap-2 mt-4 sm:mt-0 px-5 py-2.5 rounded-lg border border-accent hover:bg-accent/15 transition-colors duration-200 whitespace-nowrap"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M13.54 12a6.8 6.8 0 0 1-6.77 6.82A6.8 6.8 0 0 1 0 12a6.8 6.8 0 0 1 6.77-6.82A6.8 6.8 0 0 1 13.54 12Zm7.42 0c0 3.54-1.51 6.42-3.38 6.42-1.87 0-3.39-2.88-3.39-6.42s1.52-6.42 3.39-6.42 3.38 2.88 3.38 6.42Zm3.04 0c0 3.17-.53 5.75-1.19 5.75-.66 0-1.19-2.58-1.19-5.75s.53-5.75 1.19-5.75c.66 0 1.19 2.58 1.19 5.75Z"></path></svg>All posts on Medium</a></div></div></section><section id="talks" class="mx-auto max-w-6xl px-5 pt-24 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// live</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">Talks and livestreams</h2></div><div class="grid sm:grid-cols-3 gap-5"><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://www.youtube.com/watch?v=8pJYhkwG-5Y" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div class="flex items-center justify-between mb-3"><span class="font-mono text-xs text-accent-2">Livestream</span><span class="text-muted group-hover:text-accent-2 transition-colors duration-200"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M23.5 6.19a3.02 3.02 0 0 0-2.12-2.14C19.5 3.55 12 3.55 12 3.55s-7.5 0-9.38.5A3.02 3.02 0 0 0 .5 6.19C0 8.07 0 12 0 12s0 3.93.5 5.81a3.02 3.02 0 0 0 2.12 2.14c1.88.5 9.38.5 9.38.5s7.5 0 9.38-.5a3.02 3.02 0 0 0 2.12-2.14C24 15.93 24 12 24 12s0-3.93-.5-5.81ZM9.55 15.57V8.43L15.82 12l-6.27 3.57Z"></path></svg></span></div><p class="font-semibold text-sm flex-1">Building Production Mobile App (Android &amp; iOS) LIVE with KAppMaker + Compose Multiplatform</p><p class="font-mono text-xs text-muted mt-3">Watch on YouTube</p></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://www.youtube.com/watch?v=O-_lR3pDHrM" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div class="flex items-center justify-between mb-3"><span class="font-mono text-xs text-accent-2">Livestream</span><span class="text-muted group-hover:text-accent-2 transition-colors duration-200"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M23.5 6.19a3.02 3.02 0 0 0-2.12-2.14C19.5 3.55 12 3.55 12 3.55s-7.5 0-9.38.5A3.02 3.02 0 0 0 .5 6.19C0 8.07 0 12 0 12s0 3.93.5 5.81a3.02 3.02 0 0 0 2.12 2.14c1.88.5 9.38.5 9.38.5s7.5 0 9.38-.5a3.02 3.02 0 0 0 2.12-2.14C24 15.93 24 12 24 12s0-3.93-.5-5.81ZM9.55 15.57V8.43L15.82 12l-6.27 3.57Z"></path></svg></span></div><p class="font-semibold text-sm flex-1">Building KMP app with Junie and KAppMaker for Shipaton</p><p class="font-mono text-xs text-muted mt-3">Watch on YouTube</p></a></div><div class="h-full" style="opacity:0;transform:translateY(24px)"><a href="https://www.youtube.com/watch?v=CNoIv2qbVeA" target="_blank" rel="noopener" class="group flex flex-col h-full rounded-xl border border-border bg-surface p-5 hover:border-accent transition-colors duration-200"><div class="flex items-center justify-between mb-3"><span class="font-mono text-xs text-accent-2">Roundtable</span><span class="text-muted group-hover:text-accent-2 transition-colors duration-200"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M23.5 6.19a3.02 3.02 0 0 0-2.12-2.14C19.5 3.55 12 3.55 12 3.55s-7.5 0-9.38.5A3.02 3.02 0 0 0 .5 6.19C0 8.07 0 12 0 12s0 3.93.5 5.81a3.02 3.02 0 0 0 2.12 2.14c1.88.5 9.38.5 9.38.5s7.5 0 9.38-.5a3.02 3.02 0 0 0 2.12-2.14C24 15.93 24 12 24 12s0-3.93-.5-5.81ZM9.55 15.57V8.43L15.82 12l-6.27 3.57Z"></path></svg></span></div><p class="font-semibold text-sm flex-1">Kotlin Multiplatform Roundtable 2025, Kotlin x Android Budapest Meetup</p><p class="font-mono text-xs text-muted mt-3">Watch on YouTube</p></a></div></div></section><section id="testimonials" class="mx-auto max-w-6xl px-5 pt-24 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// testimonials</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">What teammates say</h2></div><div class="columns-1 sm:columns-2 lg:columns-3 gap-5 space-y-5"><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->Mirzamehdi is a very talented developer with great technical skills. He is able to take full responsibility on his tasks and deliver high quality products. He is always eager to improve himself and he is always up to date with the latest te
1chnologies.<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Gáspár Erőss</p><p class="font-mono text-xs text-accent-2 mt-0.5">Android Team Lead</p></figcaption></figure></div><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->Mirzamehdi is an outstanding Software Engineer, especially in his understanding of Android. He&#x27;s eager to learn and try new tech, and he took charge of different tasks during our work, showing great leadership and getting things done.<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Niyazi Gasimov</p><p class="font-mono text-xs text-accent-2 mt-0.5">Android Developer</p></figcaption></figure></div><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->We hired Mirza for developing android application for medication delivery service. Mirza is valuable member and good team player. He is always on time with his tasks, highly productive and responsible person.<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Leyla Taghizade</p><p class="font-mono text-xs text-accent-2 mt-0.5">Entrepreneur</p></figcaption></figure></div><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->I was impressed by his remarkable work speed. He worked like a thread, making it appear as the productivity of two individuals was merged into one (Mirza and Mehdi :D). Amazing teamwork!<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Saftar Murtuzov</p><p class="font-mono text-xs text-accent-2 mt-0.5">Backend Developer</p></figcaption></figure></div><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->He is a great team player and is always willing to go above and beyond to deliver high-quality results and ensure the success of the project. Working with him was not only productive, but also enjoyable.<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Talib Ismayilzada</p><p class="font-mono text-xs text-accent-2 mt-0.5">Android Developer</p></figcaption></figure></div><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->I&#x27;ve been working with Mirzamehdi for roughly a year. He is proactive and responsible developer, and always going deep into the tasks.<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Evhen Tekhov</p><p class="font-mono text-xs text-accent-2 mt-0.5">Project Manager</p></figcaption></figure></div><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->I was impressed by his eagerness to learn and use new technologies, tools and best practices to become better at what he does.<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Nurana Akhundzada</p><p class="font-mono text-xs text-accent-2 mt-0.5">QA Engineer</p></figcaption></figure></div><div class="break-inside-avoid" style="opacity:0;transform:translateY(24px)"><figure class="rounded-xl border border-border bg-surface p-5"><blockquote class="text-sm text-muted leading-relaxed">“<!-- -->His positive attitude, professionalism in his work, openness to innovations and selfless dedication are impressive. It was a pleasure to work with him.<!-- -->”</blockquote><figcaption class="mt-4"><p class="font-semibold text-sm">Samid Babayev</p><p class="font-mono text-xs text-accent-2 mt-0.5">Android Developer</p></figcaption></figure></div></div></section><section id="about" class="mx-auto max-w-6xl px-5 pt-24 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// about</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">A bit about me</h2></div><div class="grid sm:grid-cols-[auto_1fr] gap-8 items-start"><div style="opacity:0;transform:translateY(24px)"><img alt="Portrait of Mirzamehdi Karimov" loading="lazy" width="160" height="160" decoding="async" data-nimg="1" class="rounded-2xl border border-border" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Favatar.png&amp;w=256&amp;q=75 1x, /_next/image?url=%2Fimages%2Favatar.png&amp;w=384&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Favatar.png&amp;w=384&amp;q=75"/></div><div style="opacity:0;transform:translateY(24px)"><div class="space-y-4 text-muted max-w-2xl"><p>I have been building mobile apps for 8 years, across fintech, healthcare and logistics. These days I work as a 
1senior Android developer at Route4Me and build Kotlin Multiplatform products through my own company, Measify.</p><p>I like shipping. Design to store release, the whole path. That habit turned into 13 apps, two libraries the community uses, a Kotlin Foundation grant and a RevenueCat Shipaton award. I ship them through my own studio,<!-- --> <a href="https://measify.com" target="_blank" rel="noopener" class="underline underline-offset-4 hover:text-fg">Measify</a>, where you can see every app I have built and its real numbers.</p><p>If you want a mobile app built for both Android and iOS from one Kotlin codebase, I am easy to reach.</p></div><a href="/Mirzamehdi_Karimov_CV.pdf" class="inline-block mt-6 px-5 py-2.5 rounded-lg bg-accent text-emerald-950 font-medium hover:opacity-90 transition-opacity duration-200">Download my CV</a></div></div></section><section id="contact" class="mx-auto max-w-6xl px-5 pt-24 pb-20 scroll-mt-20"><div style="opacity:0;transform:translateY(24px)"><p class="font-mono text-sm text-accent-2 mb-2">// contact</p><h2 class="text-3xl sm:text-4xl font-bold mb-10">Say hi</h2></div><div style="opacity:0;transform:translateY(24px)"><p class="text-muted max-w-2xl mb-8">Want a mobile app built, Android and iOS from one Kotlin codebase? Or need expertise to improve your company&#x27;s existing codebase, performance, builds, architecture, testing? Write me. Also open to Kotlin Multiplatform and senior Android roles, remote EU friendly, contract or full time.</p><div class="flex flex-wrap gap-3"><a href="mailto:[email protected]" class="inline-flex items-center gap-2 px-5 py-2.5 rounded-lg bg-accent text-emerald-950 font-medium hover:opacity-90 transition-opacity duration-200"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="size-5" aria-hidden="true"><rect x="3" y="5" width="18" height="14" rx="2"></rect><path d="m3 7 9 6 9-6"></path></svg>[email protected]</a><a href="https://github.com/mirzemehdi" target="_blank" rel="noopener" aria-label="GitHub profile" class="inline-flex items-center gap-2 px-5 py-2.5 rounded-lg border border-border hover:border-accent transition-colors duration-200"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M12 2C6.48 2 2 6.58 2 12.25c0 4.53 2.87 8.37 6.84 9.73.5.09.68-.22.68-.49 0-.24-.01-.88-.01-1.73-2.78.62-3.37-1.37-3.37-1.37-.45-1.18-1.11-1.5-1.11-1.5-.91-.63.07-.62.07-.62 1 .07 1.53 1.06 1.53 1.06.89 1.57 2.34 1.11 2.91.85.09-.66.35-1.11.63-1.37-2.22-.26-4.56-1.14-4.56-5.07 0-1.12.39-2.03 1.03-2.75-.1-.26-.45-1.3.1-2.7 0 0 .84-.28 2.75 1.05a9.36 9.36 0 0 1 5 0c1.91-1.33 2.75-1.05 2.75-1.05.55 1.4.2 2.44.1 2.7.64.72 1.03 1.63 1.03 2.75 0 3.94-2.34 4.8-4.57 5.06.36.32.68.94.68 1.9 0 1.37-.01 2.47-.01 2.81 0 .27.18.59.69.49A10.02 10.02 0 0 0 22 12.25C22 6.58 17.52 2 12 2Z"></path></svg>GitHub</a><a href="https://www.linkedin.com/in/mirzemehdi" target="_blank" rel="noopener" aria-label="LinkedIn profile" class="inline-flex items-center gap-2 px-5 py-2.5 rounded-lg border border-border hover:border-accent transition-colors duration-200"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45Z"></path></svg>LinkedIn</a><a href="https://x.com/mirze_mehdi" target="_blank" rel="noopener" aria-label="X profile" class="inline-flex items-center gap-2 px-5 py-2.5 rounded-lg border border-border hover:border-accent transition-colors duration-200"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M18.9 1.15h3.68l-8.04 9.19L24 22.85h-7.4l-5.8-7.58-6.63 7.58H.48l8.6-9.83L0 1.15h7.59l5.24 6.93 6.07-6.93Zm-1.29 19.5h2.04L6.49 3.24H4.3l13.31 17.4Z"></path></svg>@mirze_mehdi</a></div></div></section><footer class="border-t border-border py-8"><div class="mx-auto max-w-6xl px-5 flex flex-col sm:flex-row items-center justify-between gap-3 text-sm text-muted"><p>2026<!-- --> · Mirzamehdi Karimov ·<!-- --> <a href="/jobs" class="underline underline-offset-4 hover:text-text transition-colors duration-200">#applyinpublic</a></p><p class="font-mono text-xs">fun main() = shipIt()</p></div></footer></main><!--$--><!--/$-->
1<script src="/_next/static/chunks/3ll07n217cgxf.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n4:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Nav\"]\n5:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Hero\"]\n6:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Proof\"]\n7:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Highlights\"]\n8:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Projects\"]\n9:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"OpenSource\"]\na:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Skills\"]\nb:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Writing\"]\nc:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Talks\"]\nd:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Testimonials\"]\ne:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"About\"]\nf:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Contact\"]\n10:I[1955,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/17ntx4fap6cll.js\",\"/_next/static/chunks/1wjuae-isrb6h.js\"],\"Footer\"]\n11:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n12:\"$Sreact.suspense\"\n14:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\n16:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\n18:I[68027,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3tdoc5jehc7w5.css\",\"style\"]\n:HL[\"/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3tdoc5jehc7w5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"space_grotesk_9f8773b-module__jR0qOa__variable inter_f5bdfc26-module__0yGzRW__variable jetbrains_mono_8dec50e9-module__V6cRDq__variable h-full antialiased scroll-smooth\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-bg text-text\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mirzamehdi Karimov\\\",\\\"jobTitle\\\":\\\"Senior Android / Kotlin Multiplatform Engineer\\\",\\\"url\\\":\\\"https://mirzemehdi.com\\\",\\\"email\\\":\\\"mailto:[email protected]\\\",\\\"address\\\":{\\\"@type\\\":\\\"PostalAddress\\\",\\\"addressLocality\\\":\\\"Budapest\\\",\\\"addressCountry\\\":\\\"HU\\\"},\\\"sameAs\\\":[\\\"https://github.com/mirzemehdi\\\",\\\"https://www.linkedin.com/in/mirzemehdi\\\",\\\"https://medium.com/@mirzemehdi\\\",\\\"https://x.com/mirze_mehdi\\\"],\\\"knowsAbout\\\":[\\\"Kotlin\\\",\\\"Kotlin Multiplatform\\\",\\\"Compose Multiplatform\\\",\\\"Jetpack Compose\\\",\\\"Android development\\\",\\\"iOS development via KMP\\\"],\\\"award\\\":[\\\"Kotlin Foundation grant, KMP Contest Starter Kit 2026\\\",\\\"5th place, RevenueCat Shipaton (CLIPUGC)\\\"]}\"}}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{}],[\"$\",\"$L7\",null,{}],[\"$\",\"$L8\",null,{}],[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{}],[\"$\",\"$Lb\",null,{}],[\"$\",\"$Lc\",null,{}],[\"$\",\"$Ld\",null,{}],[\"$\",\"$Le\",null,{}],[\"$\",\"$Lf\",null,{}],[\"$\",\"$L10\",null,{}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17ntx4fap6cll.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/1wjuae-isrb6h.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@13\"}]}]]}],{}
1,null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L16\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L17\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$18\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3tdoc5jehc7w5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"j84RmYtjQrEiv_6LAeRGp\"}\n"])</script>
1<script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"19:I[27201,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"IconMark\"]\n13:null\n"])</script>
1<script>self.__next_f.push([1,"17:[[\"$\",\"title\",\"0\",{\"children\":\"Mirzamehdi Karimov | Senior Android / Kotlin Multiplatform Engineer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Senior Android and Kotlin Multiplatform engineer. 8 years of experience, 13 apps shipped solo, author of KMPNotifier and KMPAuth, Kotlin Foundation grant recipient.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"author\",\"href\":\"https://mirzemehdi.com\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"Mirzamehdi Karimov\"}],[\"$\",\"meta\",\"4\",{\"name\":\"keywords\",\"content\":\"Kotlin Multiplatform,Compose Multiplatform,Senior Android Developer,KMP developer,Jetpack Compose,Android and iOS app development,KMPNotifier,KMPAuth,Mirzamehdi Karimov\"}],[\"$\",\"meta\",\"5\",{\"name\":\"creator\",\"content\":\"Mirzamehdi Karimov\"}],[\"$\",\"meta\",\"6\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://mirzemehdi.com\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Mirzamehdi Karimov | Senior Android / KMP Engineer\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"I build apps with Kotlin that run everywhere. Author of KMPNotifier and KMPAuth, Kotlin Foundation grant recipient.\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://mirzemehdi.com\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"Mirzamehdi Karimov\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://mirzemehdi.com/og.png\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:alt\",\"content\":\"Mirzamehdi Karimov, Senior Android / Kotlin Multiplatform Engineer\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:site\",\"content\":\"@mirze_mehdi\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:creator\",\"content\":\"@mirze_mehdi\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:title\",\"content\":\"Mirzamehdi Karimov | Senior Android / KMP Engineer\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:description\",\"content\":\"I build apps with Kotlin that run everywhere. Author of KMPNotifier and KMPAuth.\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image\",\"content\":\"https://mirzemehdi.com/og.png\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.04f01ptl_xkjn.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"$L19\",\"25\",{}]]\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.