blog_

Hello đź‘‹,
I am an engineer at heart (about me), focused on thoughtful creation with an emphasis on throughput, availability, and correctness.

You can trace my mind dump here:

PROJECT: Post-Quantum Cryptography in Meshtastic

Meshtastic (lora) firs message over quantum encryption This post explains how I integrated post-quantum cryptography into Meshtastic firmware. Specifically, I replaced the classical Curve25519 key exchange with Kyber-512, a lattice-based key encapsulation mechanism, while maintaining compatibility with legacy nodes. I specifically wanted to apply this research paper and see how the system wil behave with a couple of mesh nodes upgraded. Along the way, I will explain the components: Meshtastic, LoRa, and the ESP32, and provide references to two recent research papers that explore PQ cryptography in IoT contexts. ...

September 4, 2025 Â· 7 min Â· 1298 words Â· Me

NOTES: Searching the unsearchable

Fuzzy Search is More Than Just Levenshtein Distance Let’s start from the ground level. If you mistype “pizzq” but still want “pizza”, how does a search engine know? At the simplest level you could calculate Levenshtein distance between two strings: the minimum number of insertions, deletions, or substitutions required to turn one string into another. Here’s a simple dynamic programming implementation in TypeScript: function levenshtein(a: string, b: string): number { const dp: number[][] = Array.from({ length: a.length + 1 }, () => Array(b.length + 1).fill(0) ) for (let i = 0; i <= a.length; i++) dp[i][0] = i for (let j = 0; j <= b.length; j++) dp[0][j] = j for (let i = 1; i <= a.length; i++) { for (let j = 1; j <= b.length; j++) { if (a[i - 1] === b[j - 1]) { dp[i][j] = dp[i - 1][j - 1] } else { dp[i][j] = Math.min( dp[i - 1][j] + 1, // deletion dp[i][j - 1] + 1, // insertion dp[i - 1][j - 1] + 1 // substitution ) } } } return dp[a.length][b.length] } console.log(levenshtein("pizza", "pizzq")) // 1 This works, but if you have millions of documents it’s way too slow to compare every string pairwise. ...

August 1, 2025 Â· 11 min Â· 2178 words Â· Me

PROJECT: Galaxy Zooing my first CNN

Project poster for Applied Astrophysics Symposium at University of Washington I learned that building your first serious CNN is less about the architecture and more about understanding why galaxies don’t have a canonical “up” direction, and why that makes data augmentation both critical and surprisingly fun. First Time Building Something That Actually Works So this was my first real dive into CNNs beyond MNIST and cat/dog classification, and honestly? I picked probably the most complicated dataset I could find. Galaxy Zoo isn’t your typical ImageNet problem - instead of “this is a cat,” you’re trying to predict 37 different probability values that represent how humans answered morphological questions about each galaxy. Because apparently nothing in astronomy can ever be simple. ...

May 28, 2025 Â· 6 min Â· 1255 words Â· Me

NOTES: MMORPGs From BE Eng Perspective

Building an MMORPG backend is like building a tiny distributed country where every player is a citizen, every NPC a bureaucrat, and latency is the weather. You design for scale, consistency, fairness, and - most importantly - fun. Below is one continuous, slightly nerdy walkthrough of the system-level decisions I’d make (and the gotchas I’d sweat about at 3 AM): edge compute, server topologies and authority, clock synchronization, spatial partitioning with quadtrees, and a focused deep-dive on cloth synchronization (yes, that ugly yet sexy problem). ...

March 5, 2025 Â· 11 min Â· 2190 words Â· Me

NOTES: Lgtm Stack or Die

I learned that migrating off a SaaS like Datadog is less a single migration task and more a personality transplant for your infra team. You’re trading a polished one-click thing for a constellation of components that each have opinions, needs, and a flair for dramatic failure modes. But if you survive the awkward first semester, you end up with vendor-neutral observability, much cheaper S3 storage bills, and dashboards you actually control. ...

January 13, 2025 Â· 5 min Â· 984 words Â· Me