Weekly
#007

Nine PRs and a Desktop Widget

August 2, 2026·

Built a GitHub contribution widget for my Wayland shell, landed PRs in nuxt, jj, nlohmann/json and OneUptime, and started doing CTFs again.

Nine PRs and a Desktop Widget

Wrote this one late. The short version is that I decided to stop waiting for interviews to happen to me and just go contribute to every project I actually use.

What I worked onCopied!

  • noctalia GitHub Contributions widget: I saw a contribution graph widget on someone's MacBook and got jealous, so I built one for Linux. It's a plugin for Noctalia, the Wayland shell I daily drive on Fedora. Your whole year of commits on the desktop, themed to your shell's accent color instead of GitHub green so it matches whatever scheme you're running, plus streak and today's count, and no API key needed. Sent it to the official plugin repo so it'd be a one-click install for every Noctalia user. Built and PR'd at 3:42am on Monday, which tells you roughly what kind of week this was.

  • Open source, four merged into projects I actually use:
    • nuxt #35866 : worker builds were emitting different asset filenames than the main build. Fixed so they match.
    • nlohmann/json #5332 : the BSON reader wasn't checking all reads, and booleans had no EOF check. Added both. This one felt good, it's a library I've used for years.
    • jj #9886 : the working copy scanner choked on paths that aren't valid UTF-8. Now it skips them instead.
    • OneUptime #2871 : the UI was loading Monaco from a CDN instead of the installed copy, which breaks in air-gapped deploys.
    • Two more into VengeanceUI, making the interactive keyboard component respond to real physical key presses, then redesigning the keycaps with proper depth and key travel.
  • Also opened PRs to headlamp, temporal, react-spectrum, uv, bun and deno. All still open. Nine PRs across six days, which is the most I've ever done in a week.
  • The zeal PR finally merged. I opened it back in week 005 to persist zoom level across restarts, it sat open for two weeks, and it landed as a default zoom level setting. Patience does eventually pay.
  • Six template kits built on Unlayer Elements, one component tree each rendering an email, a printable PDF, and a web page: release notes, design club, coding club, guest lecture, hackathon, and fest.
  • grindmap: fixed a bug where a progress tick would re-render the table and throw you back to page one. Small, but it was quietly annoying everyone.
  • thy-xev (this site): spent an embarrassing amount of Monday fighting OG image caching. Emitting baseline jpeg so Twitter cards actually render, purging the nginx cache on deploy, then busting it with a version param, then busting it again for pages inheriting the default image. Four commits to make a picture show up in a link preview. Also added diff stats, sorting and owner chips to the open source section.
  • Wrote up a post on getting speech-to-text working on niri.

The OACopied!

DE Shaw on Tuesday, and this one actually made me feel better rather than worse.

I solved one question fully. I solved the second one too but couldn't submit in time. And I solved the third, then lost it to putting a for loop outside a function instead of inside. Meanwhile plenty of people couldn't finish a single one, because DE Shaw asks genuinely hard questions.

So the takeaway wasn't "I failed", it was "oh, I actually know DSA, I'm just slow and careless under a timer". That's a fixable problem. That's a much better problem to have than the Goldman fumble two weeks ago.

What I found interestingCopied!

  • jj : a Git-compatible VCS that's both simple and powerful. Sent a patch to it this week and now I'm properly interested in it.
  • nuxt : the full-stack Vue framework.
  • noctalia : the Wayland shell I daily drive, and now write plugins for.
  • oss-contributions-widget : Arnesh built a dependency-free widget for showing your GitHub open source PRs, with filters, sorting, diffstats and org chips, fully themable through CSS variables. I ended up wiring something similar into my own open source section this week.
  • Claude-of-Duty : a Call of Duty quality FPS in Three.js, built from a single prompt. Absurd in the best way.

RandomCopied!

Somewhere around 3am on Friday something clicked and I wrote this in my journal, which I'm putting here mostly so future me can be held to it.

Roughly: I'll show the whole batch that you can make it without the CGPA, you just have to lock in. Late is fine. But next summer I'm not sitting unemployed.

Got invited to the jj-vcs organization on GitHub after the patch landed, which was a genuinely nice surprise.

Also picked up the 200 days badge on LeetCode, for solving problems on 200+ days this year. The streak is doing more for me than any single solve at this point.

Started doing CTFs again. I've loved these since class 8, when I found Kali Linux and there was no AI around, so it was just me and YouTube videos learning Linux commands one at a time. Cleared a handful of web exploitation challenges this week: Jinja2 SSTI to RCE, an upload webshell into a sudo privesc, a leaked heapdump, and a few easy cookie and source-inspection ones. Writing up every single one as I go, so I can read them back later and maybe actually learn something.

I also swore off games until I land an intern, which I broke almost immediately, because I was deep in the endgame of Elden Ring and there was no walking away from that. Cleared Leyndell with the Mimic Tear doing most of the emotional labour, took the Rold Route up, and made it to the foot of the Erdtree.

201 deaths at the start of the week, 221 by the end of it.

And somewhere in the middle of all this I learned that Omega is pronounced oh-may-gah, which broke me slightly.

Comments