I build product systems

Shipping products
and learning
in public.

Portrait of Aniket

Aniket

PGP key : 9222 07BA 3642 BE16 0216 73D2 5E8A FC30 34FD FA4F

I help founders and product teams turn complex engineering work into clear, shippable systems across iOS, backend workflows, and open-source collaboration.

 WWDC26 Scholar · iOS Developer · Bitcoin Core . Contributed to Google DeepMind, Mozilla Firefox, and Bitcoin Dev Kit (BDK).

Open source

Bitcoin & Lightning Contributions

Key pull requests across Lightning payments, SDK tooling, and wallet infrastructure.

FEDIMINT/FEDIMINT

Open

Add support for Lightning Address payments and verification

Added Lightning Address (LNURL-pay) support using structured RPC flows.

Problem: No native support for verifying or paying Lightning Addresses.

Solution: Added RPC methods and reused existing invoice and payment logic.

Impact: Enabled Lightning Address payments without duplicating backend code.

RustLightningLNURLRPCWASM
#7988 · Updated Dec 1, 2025Open ↗

FEDIMINT/FEDIMINT-SDK

Open

Add Lightning Address payment and verification support

Added Lightning Address verify and pay support to the SDK.

Problem: SDK could not handle Lightning Address payments.

Solution: Integrated LNURL-pay flow and connected it to Rust backend logic.

Impact: Made Lightning Address payments available to SDK users.

TypeScriptRustWebAssemblyJavaScript
#225 · Updated Nov 24, 2025Open ↗

BITCOINDEVKIT/BDK-DART

Merged

Update to 2.3.0-alpha.0 with Native Assets

Migrated to Dart Native Assets and updated UniFFI integration.

Problem: Old submodule setup made native builds harder to manage.

Solution: Replaced submodule with lightweight wrapper and build hooks.

Impact: Simplified native builds and improved CI reliability.

DartRustUniFFINative AssetsBuild HooksCI
#12 · Updated Jan 12, 2026Open ↗

BITCOINDEVKIT/BDK-DART

Merged

Ensure ElectrumClient is disposed on failure in network example

Fixed resource leak by ensuring ElectrumClient is always disposed.

Problem: Client was not disposed if sync failed.

Solution: Moved dispose logic outside try block.

Impact: Prevented open connections and native memory leaks.

Dart
#14 · Updated Feb 6, 2026Open ↗

Systems

Projects

Shipped iOS apps and browser tools built for clarity, speed, and reliability.

Writing

Blog

Draft thoughts on shipping products, writing cleaner code, and learning in public.