Systems programmer. My merged patches fix real bugs in Neovim, Vim, curl and Tesseract: code that runs on billions of machines.
| Project | Contribution | Outcome |
|---|---|---|
| neovim/neovim | Regex engine crash on invalid multi-byte input | Merged |
| vim/vim | Backtracking regexp never matched a literal followed by %C with 'ignorecase' | Merged as patch 9.2.1298; ported to Neovim with solution credit |
| curl/curl | RFC 7838 Alt-Svc percent-encoded protocol names never matched | Merged, my commit on master |
| tesseract-ocr/tesseract | Renderer failure exited with code 0 | Merged |
| faker-cxx | dataUri generator for SVG images, 100th contributor | Merged |
Also in review: micropython (FFI arity TypeError), and a race condition analysis + deterministic reproducer on an OpenSSL issue.
Android storage analyzer that bypasses MTP with a parallel C++17 scanner over ADB, a Rust/Tauri desktop app and a React 19 UI. 93,239 files / 51 GB in 7.7 seconds on a Galaxy S24 Ultra. Presented at IndiaFOSS 2026.
Codeforces Specialist 1444 · LeetCode Guardian 2160 · CodeChef 3★ 1739 · WCA profile
Security: Winner, Cryptic Hunt (IIIT Naya Raipur) · Winner, CyberStrike'24 (SNIST) · Runner-up, nu11byt3 CTF Convergence (VNRVJIET)
Coding: Winner, Convergence R1 (VNRVJIET, 400+ competitors) · Finalist, Megathon (IIIT-H, top 6 of 700+)
WCA competitor since 2018 · 5 medals (2 gold) · top 50 in India, 3x3 One-Handed
The full stories behind the merges above: trigger, root cause, fix.
Neovim. Trigger: a regex pattern walking input that contains an undecodable byte next to a combining sequence. Root cause: the grapheme cluster walker treated every byte after a base character as a combining continuation, so the invalid byte was folded into the cluster and the backtracking engine crashed while the NFA engine did not. Fix: undecodable bytes terminate the cluster.
curl. Trigger: an Alt-Svc header advertising HTTP/1.1. Root cause: RFC 7838 percent-encodes protocol tokens containing reserved characters, so HTTP/1.1 arrives as http%2F1.1, and curl compared the encoded token literally against decoded protocol names. Fix: percent-decode before the ALPN mapping.
Tesseract. Trigger: a renderer failure such as a missing output configuration. Root cause: the failure path exited with code 0, so scripts and CI believed a render succeeded when it had not. Fix: propagate EXIT_FAILURE.
Vim. Trigger: searching for a literal followed by %C with 'ignorecase' on text containing composing characters. Root cause: cstrncmp() counted characters with MB_PTR_ADV(), which includes composing characters, so the one byte pattern was compared against the base character plus its combining marks and failed before the %C atom could skip them. Fix: compare base characters on both sides, the way the NFA engine already did. Applied upstream as patch 9.2.1298 and ported into Neovim the next day, with the solution credited by name.
TransPEG (PyQt + FFmpeg + Google Translate for subtitle translation) and Video Grapher (WASM, extracts GIFs and waveforms in the browser): my FFmpeg work.


