DEV Community

Yash Kumar Saini
Yash Kumar Saini Subscriber

Posted on Originally published at app.notion.com

Dev log #20 Deleting 180k lines and chasing socket leaks: A week in the OSS trenches

Yash K Saini — Engineer, building in public — AI/ML, low-level (Rust/C/C++), and open source.

GitHub · X · LinkedIn · Portfolio

A massive week of cleanup and deep technical dives. From deleting 180k lines in my vault to fixing socket leaks in libp2p and contributing to the Rust compiler, I hit 102 commits and a perfect 7-day streak.

TL;DR

There is something incredibly therapeutic about a net-negative week. I pushed 102 commits across a dozen repos, but the headline stat isn't the additions—it’s the 188,000 lines of code I deleted. Between chasing down residual socket leaks in py-libp2p, building out a resumable progress log for Reachable, and even opening a PR on the Rust compiler, it’s been a high-velocity seven days.

The Great Purge and Portfolio Polish

I started the week with a "scorched earth" approach to my obsidian-vault. I realized I was tracking way too much of Obsidian's internal UI state and plugin noise, which made the git history a mess. I ripped out about 179,000 lines by stopping the tracking of that ephemeral state. Now, my syncs are clean, and the vault actually represents my thoughts rather than my editor's window positions. It’s a good reminder that just because you can version control something doesn't mean you should.

On the portfolio front, I spent a good chunk of time in app/projects and components/common. I finally stripped out some old "catalogue-numbering" chrome that was cluttering the UI and gave each project row its own distinct card surface. I also fixed a nagging SEO issue by moving the canonical origin to yashksaini.vercel.app. The big feature update here was the new "spotlight" section, where I’m now featuring GitBanner and Reachable right at the top. If you’re going to build things, you might as well show them off properly.

Deep in the Networking Guts

A lot of my mental energy this week went into py-libp2p. Networking bugs are the ultimate test of patience. I opened two pretty critical issues regarding socket leaks. In Issue #1485, I found that the Swarm was leaking dialed connection sockets on shutdown because the service-manager stop path wasn't cleaning up properly. I followed that up with Issue #1487, which identified residual leaks in the muxer connection test fixtures.

I didn't just report them, though. I’ve been working on PR #1486 to ensure connections are explicitly closed on shutdown so their sockets are released back to the OS. I also pushed forward on WebRTC-Direct interop tests. Getting Python and Go to agree on WebRTC-Direct is... a journey. We had a case where the ICE handshake succeeded, but then the connection was immediately torn down. It’s these kinds of edge cases that make p2p work both frustrating and deeply rewarding.

Building and Fixing at Scale

I also spent some time on breakscale, which is a project that really challenges how I think about failure states. I found a bug (Issue #51) where a node losing 25% of its requests to timeouts was still reporting a 0% failure rate. That’s a dangerous blind spot. I merged PR #57 to ensure timeouts are counted correctly so the failure rate actually reflects reality. I also fixed a nasty data loss bug in PR #54—previously, if the validator rejected a saved design, the next save or delete would just erase it from storage. Now, we keep the design even if the current build can't "open" it.

Over at Reachable, the focus was on the demo experience. I built out a resumable progress log, a sound score mixer, and a frame renderer. This project is becoming a really cool playground for TypeScript-based media tools. I’m particularly happy with the "paste-ready" voiceover script block—it’s one of those small DX (developer experience) features that makes the tool feel much more polished.

The Tooling Life: Neovim and DevNotion

You can’t be a dev without constantly tweaking your tools. I did some work on my nvim config, specifically rebuilding the keymap reference around a prefix tree. I also fixed a frustrating bug where <leader>bd would leave a blank window open. Now it closes the window properly, and I can open a terminal from any window type, not just "normal" ones. It’s the little things that keep the flow state alive.

For DevNotion, I focused on the documentation and the "blog log." I reworked the masthead and made the ledger header sticky while scrolling. I also made a conscious decision to drop the sequential numbering from posts. Now they’re just titled "Dev log: ." It feels less like a chore and more like a journal. I also had to escape some pipes in the headlines to prevent the markdown tables in the logs from breaking—classic string manipulation fun.

Pull Requests of Note

Beyond the ones I've mentioned, a few others stood out:

  • Rust Compiler: I opened PR #162123 to report unsatisfied opaque item bounds instead of a generic type mismatch under the -Znext-solver. Contributing to the Rust compiler is always a "hold your breath" moment, but it's the best way to learn how the magic happens.
  • Agent Orchestrator: Merged a fix in PR #4717 to carry the resolved model through metadata merging. This fixed a bug where ao spawn would record an empty model.
  • Sixb: Merged PR #478 which adds the project model catalog to both the core and server.

Tech Stack & Vibe

This was a true polyglot week. TypeScript dominated the frontend and CLI work, Python was the heavy hitter for the libp2p networking logic, and I dipped into Rust for the compiler work. I even wrote a bit of C++ for some basic alphabet-printing programs in my Learning-2026 repo—sometimes you just need to get back to the basics to clear your head.

The 7-day streak feels good. It wasn't a forced grind; it was just one of those weeks where every time I sat down, there was a clear problem to solve. Whether it was a socket leak in Python or a CSS alignment issue in my portfolio, the momentum stayed high.

What's Next

Next week is going to be about closing the loop on those py-libp2p leaks. I want to get the connection-closing logic merged and see if I can figure out why the Go and Python WebRTC-Direct implementations are talking past each other. I’ll also be spending more time on the Reachable frame renderer—there’s some performance optimization I want to try out.

Catch you in the next push.

Top comments (0)