The Wrong Layer
A leak doesn't come from the app where you finally see it. India blacked out Telegram to chase one anyway.
Tinkering with scalable systems, high performance APIs and bots. Mildly obsessed with aircrafts.
A leak doesn't come from the app where you finally see it. India blacked out Telegram to chase one anyway.
I started this on a quiet evening, thinking 'I'll just poke at it for an hour.'
On the accumulated cost of living somewhere that demands constant suspicion.
La rétrospective annuelle.
Taking the Delhi-Meerut RRTS and feeling like I'm in a different country.
Dockerizing --dangerously-skip-permissions so you can let Claude LLM cook.
Using Github's new hosted arm64 runners to make multi-arch Docker builds actually fast.
When hop 5 is full of asterisks: tracing a hung Cloudflare-proxied host to an ISP peering blackhole, and giving up on the orange cloud.
Notes from moving GOTM's voting database from MySQL to Turso after PlanetScale killed its hobby tier: ENUMs, timestamps, and one .env incident.
Building the voting site for the patient gamers Discord server
Building a plane spotting system with a Raspberry Pi and an old Android phone
La rétrospective annuelle.
Swapping Remix's Node server for Bun.serve: a small server.ts, static file handling, and no benchmarks. bun install is just fast.
How the new Vehicle Motion Cues feature helps me with motion sickness
Wake-on-LAN needs layer 2 and Tailscale stops at layer 3, so a ₹539 Pico W and an MQTT broker now wake my gaming PC from anywhere.
A totally non-scientific comparison of sshfs and rclone-mount for mounting remote filesystems
Using semantic release, Docker and k3s to deploy my Python Telegram bot.
La rétrospective annuelle.
Running sentiment analysis over HN's 250 most-upvoted comments about HN, to see how often the middlebrow dismissal applies to itself.
Running some scripts to plot the fares of taxi rides in Hyderabad and Bangalore.
La rétrospective annuelle.
A simple one-liner mix of Github's managed runners for x86 and a self-hosted runner for arm64.
A workaround for the Node.js AWS SDK to make Cloudfront Signed URLs work with response-content-disposition.
Exploring insert performance of UUIDs in MySQL in a worst-case scenario.
Using semantic release, Docker and watchtower to deploy my Python Telegram bot.
Cross-compiling HamVerBot for Oracle's Ampere machines: cross freezing at 400% CPU, an OpenSSL pkg-config failure, and the vendored fix.
My progress, methods and timelines of learn French efficiently.
Compiling libjpeg, libde265, libheif, libvips and sharp to process HEIC/F images in AWS Lambda using layers.
This is a living, ambitious (perhaps too much), and certainly incomplete list.
The annual retrospective of 2021
Building a fish tank monitoring system using serverless databases and a Raspberry Pi B+ 🍇
Using GitHub Actions to push new releases without manually tagging commits.
Continuing my experiments with time tracking, this time the year 2020.
Community bonding and the first evaluation of GSoC 2020 at CERN: onboarding into ALICE's O2 tooling and building walnut, a workflow linting utility.
Wrapping up GSoC 2020 at CERN: a DPL-dump-to-template converter, YAML marshaling pain, and 19 pull requests over 90 days.
Parts of the process before applying including shortlisting projects, reading and choosing what to work on.
A 3 part series on my experience with Google Summer of Code 2020 CERN
Working my way through and solving exercises from Structure and Interpretation of Computer Programs
Rudimentary time tracking with a Google Sheets template and a Sankey diagram: thirty seconds a day of guesstimating where the year went.
Doing some (amateur) astrophotography in Sangla at the edge of Tibet.