# DarshanPandya > Darshan Pandya (@itznotabug) - Product Engineer. MBA. Self-taught developer working across mobile, frontend, backend, and developer tools. This site features technical articles, security research, open-source projects, and professional work history. Last Updated: 2026-07-29 ## Pages - [About](https://itznotabug.dev/about): Background, journey, and perspective - [Blog](https://itznotabug.dev/blog): Technical articles and development insights - [Contact](https://itznotabug.dev/contact): Ways to connect and collaborate - [Projects](https://itznotabug.dev/projects): Open-source libraries, tools, and experiments - [Work](https://itznotabug.dev/work): Professional experience, consulting, and product roles ## Blog - [Coroutines, Reflection & R8](https://itznotabug.dev/blog/coroutines-reflection-r8): R8 now compiles away the reflection tax hiding inside every coroutine launch. - [Less Env, More Config](https://itznotabug.dev/blog/less-env-more-config): Env vars are easy - which is exactly how every product knob quietly becomes one. - [Introducing - Lede](https://itznotabug.dev/blog/lede): An in-browser studio for blog covers, featured images, and OG cards. - [FontsPack: 4.2MB → 749KB](https://itznotabug.dev/blog/fontspack): Months of font compression experiments and the wall my greed ran into. - [Appwrite: Rust runtime](https://itznotabug.dev/blog/appwrite-rust-runtime): Functions now supports Rust as a first-class runtime. - [VitePot: Honeypot for Vite](https://itznotabug.dev/blog/vitepot): Static-first Vite and VitePress honeypot plugin for fake sensitive files. - [Appwrite: Rust SDK](https://itznotabug.dev/blog/appwrite-rust-sdk): Official Rust SDK. Fully type-safe and an async-first integration. - [ARM vs AMD Screenshots](https://itznotabug.dev/blog/arm-amd-screenshots): Screenshot tests passed locally but failed on CI - and it's not what you think! - [Appwrite: AI Suggestions](https://itznotabug.dev/blog/database-ai-suggestions): Introducing AI in Appwrite Databases: schemas & indexes from table names. - [Docker: 1.75GB → 417MB](https://itznotabug.dev/blog/docker-browser): A deep dive into cutting down a headless browser by more than 70%. - [Barrels, Speed & Regressions](https://itznotabug.dev/blog/barrels-and-regressions): Tracing a regression and cutting tests from ~22s to under 2s. - [Appwrite: Opt-In Relations](https://itznotabug.dev/blog/appwrite-opt-in-relations): Control which related rows to fetch and shrink your payloads. - [Appwrite: TablesDB](https://itznotabug.dev/blog/appwrite-tablesdb): Announcing the new TablesDB UI and a supporting API. - [Appwrite: Import CSV](https://itznotabug.dev/blog/appwrite-import-csv): Import documents into your Appwrite collections, now using a CSV file. - [Routex](https://itznotabug.dev/blog/routex): An easy, configurable client-side redirection plugin for Vitepress. - [ChatGPT - Bulk Actions](https://itznotabug.dev/blog/chatgpt-bulk-actions): A small browser extension to batch archive or delete ChatGPT chats. - [Appwrite: File Tokens](https://itznotabug.dev/blog/appwrite-file-tokens): File Tokens make sharing files from Appwrite simple, secure, and hassle-free. - [Appwrite QnA Feature](https://itznotabug.dev/blog/qna): A short dev QnA on learning, habits, and the craft— shared by Appwrite. - [TypeScript & Golang](https://itznotabug.dev/blog/typescript-and-golang): Microsoft just supercharged TypeScript compilation with Golang steroids! - [Post-Quantum Cryptography](https://itznotabug.dev/blog/post-quantum-cryptography-2): [PART 2] - Building an iOS POC app for encrypting and decrypting data. - [Post-Quantum Cryptography](https://itznotabug.dev/blog/post-quantum-cryptography-1): [PART 1] - Diving into post-quantum cryptography and configuring it for iOS. - [Making the Hardware Tick](https://itznotabug.dev/blog/making-the-hardware-tick): An old-school quick dive into how software sends instructions to hardware. - [Inside Complex Codebases](https://itznotabug.dev/blog/inside-complex-codebases): Exploring the challenges and growth of navigating a large, complex codebase. - [From Community to Core](https://itznotabug.dev/blog/from-community-to-core): My journey from volunteer contributions to joining Appwrite as a Product Engineer. - [Huawei: HarmonyOS NEXT](https://itznotabug.dev/blog/harmony-os): From sanctions to building a fully independent ecosystem. - [Hydration Mismatches](https://itznotabug.dev/blog/hydration-mismatches): Identify hydration mismatches in Vue/VitePress in the production build! - [The WordPress Drama](https://itznotabug.dev/blog/the-wp-drama): Everyone has an opinion on this drama— here's mine! - [iOS Safari &:active](https://itznotabug.dev/blog/safari-and-the-active-pseudo-class): Why tf:active state still needs an ancient hack to work properly on iOS Safari? - [JS: Async/Await](https://itznotabug.dev/blog/js-async-await): My deep-dive into how async await works in JavaScript. - [Blog x Pagination](https://itznotabug.dev/blog/appwrite-blog-pagination): My experience implementing pagination on Appwrite's blog page. - [Chrome Shortcuts](https://itznotabug.dev/blog/chrome-shortcuts): Frustrated by Chrome's new shortcut layout? I built an extension to fix it. - [Undici Issues on Appwrite](https://itznotabug.dev/blog/undici-issues-on-appwrite): Function timeouts with Node:20+ on Appwrite - here's how I fixed it. - [AppExpress Essentials](https://itznotabug.dev/blog/appexpress-essentials): Expanding Appwrite Functions with React views, web compression & more. - [Moving to VitePress](https://itznotabug.dev/blog/moving-to-vitepress): From WordPress to VitePress: Journey to a minimalist, high-performance site. - [AppExpress](https://itznotabug.dev/blog/appexpress): Simplify routing in Appwrite Functions with Express.js like framework. - [Appwrite + Nginx + SSL on Custom Domains](https://itznotabug.dev/blog/appwrite-nginx-ssl-on-custom-domains): Custom domain with Appwrite on a VPS with CloudPanel & securing it with SSL. - [Ghosler](https://itznotabug.dev/blog/ghosler): Custom open-source newsletter handling for Ghost, no Mailgun required. - [Link New Apps on AdMob](https://itznotabug.dev/blog/link-new-apps-on-admob): Make AdMob instantly discover your app with this simple Google Ads trick. - [Node.js on Shared Hosting(Part 2)](https://itznotabug.dev/blog/nodejs-on-shared-hosting-part-2): Part 2: Node.js on Hostinger's Cloud plan without root access— here's how. - [Node.js on Shared Hosting(Part 1)](https://itznotabug.dev/blog/nodejs-on-shared-hosting-part-1): Part 1: Node.js on Hostinger's Cloud plan without root access— here's how. - [BunnyCDN with Hostinger](https://itznotabug.dev/blog/bunny-cdn-with-hostinger): Getting BunnyCDN to work with Hostinger despite connection issues. - [No Application Manager(cPanel)](https://itznotabug.dev/blog/no-application-manager-cpanel): Application Manager missing on my server— here's how I fixed it. - [Security Review(UpGrad)](https://itznotabug.dev/blog/security-review-upgrad): Bypassed UpGrad payment, got a ₹95K course for free— reported the bug. - [Security Review(SIH– AICTE)](https://itznotabug.dev/blog/security-review-sih-aicte): Won hackathon, then reported an SQL injection flaw in the certificate server. - [Sec. Review(Programming Hub)](https://itznotabug.dev/blog/security-review-programming-hub): Exploited a Programming Hub flaw for 45 years of Pro— reported for a fix. - [First iOS App](https://itznotabug.dev/blog/first-ios-app): Ported my Android app to iOS in just a week— same UI, new platform. - [Security Review(ExpertRight)](https://itznotabug.dev/blog/security-review-expertright): Reported an SQL injection vulnerability on ExpertRight; it's still unfixed. - [Runtime Permission Fail(Vungle SDK)](https://itznotabug.dev/blog/runtime-permission-fail-vungle-sdk): Fix Android 6+ permission issue caused by Vungle SDK. - [AssertionError: No NameTypeIndex match for SHORT_STANDARD](https://itznotabug.dev/blog/short-standard-assertion-error): Fixing a date implementation issue on Android. - [VerifyError(TabLayout & AdMob SDK)](https://itznotabug.dev/blog/verify-error-tab-layout-admob-sdk): Encountered crashes after dependency updates— fixed via Proguard rules. - [PreferenceFragmentCompat](https://itznotabug.dev/blog/preferencefragmentcompat): Fix Kotlin migration crash: Mark Bundle and rootKey as nullable. - [What is PUP.HighConfidence?(Solution)](https://itznotabug.dev/blog/what-is-pup-highconfidence-solution): Encountered PUP.HighConfidence on VirusTotal? Here's what I discovered. - [Why you should Notify a user to Update App?](https://itznotabug.dev/blog/why-you-should-notify-a-user-to-update-app): Notify users of updates— don't force them unless necessary. - [BlueHost India(Review)](https://itznotabug.dev/blog/bluehost-india-review): Why I switched from BlueHost India to GoDaddy after a poor experience. - [Simplest way to Remove Ads via IAP](https://itznotabug.dev/blog/simplest-way-to-remove-ads-via-iap): Simple tutorial on removing ads via in-app purchases on Android. - [Disabled Ads & No Appeal Form!](https://itznotabug.dev/blog/admob-disabled-ads-no-appeal-form): Recovering from AdMob's sudden ad disabling on my app. - [Scam for Android Developers!](https://itznotabug.dev/blog/scam-for-android-developers): A patent infringement claim for push notifications? Here's why it's a hoax. - [Code Apps on Mobile!](https://itznotabug.dev/blog/code-apps-on-mobile): Code Android apps on your phone with AIDE, no PC needed! - [Finally Done!](https://itznotabug.dev/blog/finally-done): My site is live! Expect posts on Android, development tips and rants. ## Projects - [Prosette](https://prosette.itznotabug.dev/): Derive deterministic colour palettes from the mood of any prose. - [Lede](https://lede.itznotabug.dev/): Compose customizable cover images for blog posts, entirely in the browser. - [FontsPack](https://itznotabug.dev/blog/fontspack): Android extreme font compression and runtime loading. - [Plaindown](https://github.com/ItzNotABug/plaindown): Render Markdown files as plain-text in Vite and VitePress for LLMs and AIs. - [VitePot](https://github.com/ItzNotABug/vitepot): Serve fake sensitive files to crawlers, scanners, and bots in VitePress. - [PHP-Retry](https://github.com/ItzNotABug/php-retry): Retry failed PHPUnit tests with dependencies, not the full suite. - [Routex](https://github.com/ItzNotABug/routex): Client-side redirection plugin for VitePress with clean path routing. - [ChatGPT Bulk Actions](https://github.com/ItzNotABug/chatgpt-bulk-actions): Archive or delete multiple ChatGPT chats at once from the sidebar. (Archived — no longer actively maintained.) - [ABR](https://github.com/ItzNotABug/abr): Back up and restore Appwrite instances with a dedicated CLI. - [Chrome Shortcuts](https://github.com/ItzNotABug/ChromeLegacyShortcuts): Bring back multi-line Chrome shortcuts on the new tab homescreen. (Archived — no longer actively maintained.) - [AppExpress Essentials](https://github.com/ItzNotABug/appexpress-essentials): Middleware, helpers, and view-engine utilities for AppExpress projects. (Archived — no longer actively maintained.) - [AppExpress](https://github.com/ItzNotABug/appexpress): Express-style routing framework for Appwrite Functions with simpler navigation. - [AppwriteUpdaterScript](https://github.com/ItzNotABug/AppwriteUpdaterScript): Plan and run migration-aware Appwrite upgrades across version boundaries. - [Ghosler](https://github.com/ItzNotABug/ghosler): Send newsletters to Ghost members using your own email credentials. - [ARC](https://github.com/ItzNotABug/arc): RemoteConfig-style Appwrite addon for Android, iOS, and Flutter apps. (Archived — no longer actively maintained.) - [Ad-Id Reset](https://github.com/ItzNotABug/AIR): Reset or clear Android advertising identifiers on rooted devices. (Archived — no longer actively maintained.) - [DocumentFileCompat](https://github.com/ItzNotABug/DocumentFileCompat): Faster AndroidX DocumentFile alternative for SAF and scoped storage. - [AppOpenAdManager](https://github.com/ItzNotABug/AppOpenAdManager): Ship App Open Ads on Android without lifecycle-heavy integration code. - [WeSchool](https://github.com/ItzNotABug/weschool): Flutter client for Welingkar's e-learning portal and student workflows. (Archived — no longer actively maintained.) - [CheckoutVerifier](https://github.com/ItzNotABug/CheckoutVerifier): Verify in-app purchase receipts and harden apps against patching. ## Usage Guidelines Content on this site is provided for educational and informational purposes. When referencing articles, projects, or insights from this site, please: - Attribute to Darshan Pandya (@itznotabug) - Link to the original source when possible - Respect the context and intent of technical writeups and security research ## Optional - [GitHub](https://github.com/itznotabug): Open source contributions and code repositories - [NPM](https://www.npmjs.com/~itznotabug): Published packages and libraries - [Twitter/X](https://twitter.com/itznotabug): Tech updates and professional insights - [LinkedIn](https://linkedin.com/in/itznotabug): Professional network and career updates - [Instagram](https://instagram.com/itznotabug): Personal updates and behind-the-scenes - [Stack Overflow](https://stackoverflow.com/users/6819340): Technical Q&A and programming solutions - [Cal.com](https://cal.com/itznotabug?redirect=false): Schedule a meeting or a quick call