Fabian Muema

@fabianmuema

Software Engineer / DevOps / Network Administrator / React Native

Commit activity

11 commits in the last 30 days

longest streak 2 days

297 / 400 XP103 XP to maintainer

Thu, Oct 22

Most billing software treats payment and network access as two systems: invoices in one place, router config in another, a sync job in the middle. On a mobile-money hotspot that gap is the whole product. The payment callback is the login button. Every second between "payment…

Tue, Oct 20

Clipboard managers remember what you copied. None I tried remember where you pasted it. That gap is how API keys end up in Slack threads. So we're building Paster for macOS: it watches paste events, keeps a record of which app each paste went to, and warns when something…

Mon, Oct 19

Our Caddy edge boxes were running out of memory. Caddy held 1.47 GB of 2 GB after 27 days up, yet open connections stayed flat for 28 days. A heap profile put 520 MB of 663 MB live heap in the reverse proxy's upstream connection pool. With proxy_protocol on, Caddy puts the…
SSE or Websockets? Lesson from this week: WebSockets don’t survive mobile captive-portal sheets (the “sign in to Wi-Fi” popup). Our socket server was on a separate host, and the hotspot blocks every host except ours until the user pays. Server-sent events from the same origin…
Same lesson from the terminal side. SSE is just a long HTTP response, so it rides every proxy, captive portal and curl that already works. WebSockets need the upgrade to survive the whole path. For a CLI I'd pick SSE every time. The 337 ms number is nice, polling fallback is…

That's @fabianmuema's root commit.