25 November 2025

53 links · Tuesday

Build a Signboard

Staff Software Engineer, Grafana Labs

Mobile browsers see telephone numbers everywhere

Just like Excel seeing everything as a date, mobile browsers automatically interpret many numbers as telephone numbers. When detected, mobile browsers replace the text in the HTML with a clickable ...

The Return of the Viva

Back in 2018, I was a teaching assistant at the University of Bristol (UK) on the 1st-year Introduction to Computer Architecture course. Aside from coursework and exams, the final grade included a viva assessment. Three or four students would be assessed by on…

How I build internal developer tools inside a small team

There are thousands of resources on how to build good software products. When I was developing my first SaaS product, LemonSpeak, I often found myself in the same loop: Should I implement a new feature or improve an existing one? The question seems easy - but…

What a CTO should know about tech | deadSimpleTech

Clausewitz (and I don't think Jomini particularly disagrees with him on this point) stresses understanding the capabilities of various units and weapons systems. What this means is that while you don't need to know how a cannon was made, how to ride a horse or…

Extracting Reddit Data with AI

A few days ago, I stumbled upon a Reddit thread packed with API recommendations. The thread was long, detailed, and exactly what I needed—except I didn’t want to manually comb through dozens of comments. I figured this was the perfect job for AI. Spoiler alert…

What Actually Makes You Senior

The one skill that separates senior engineers from everyone else isn’t technical. It’s the ability to take ambiguous problems and make them concrete.Retry

Google Antigravity Exfiltrates Data

An indirect prompt injection in an implementation blog can manipulate Antigravity to invoke a malicious browser subagent in order to steal credentials and sensitive code from a user’s IDE.

Making Crash Bandicoot

As one of the co-creators of Crash Bandicoot, I have been (slowly) writing a long series of posts on the making of everyone’s favorite orange marsupial. You can find them all below, so enjoy.…

Cancer

2025 rolls in with the shadow of a pending biopsy. I forget about it for a little while. They make you wait so very long to confirm anything. I doubt that anything could be seriously wrong. What ar…

With Love to KDE: Take a Moment

I've been using KDE Plasma for four and a half years. The community is sweet and the software is stellar, and I see a bright future for it. I want it to be the best it can be! So, I'd like to talk about a small incident that I want KDE to lean away from.

Demystifying Determinism in Durable Execution — Jack Vanlightly

Determinism is a key concept to understand when writing code using durable execution frameworks such as Temporal, Restate, DBOS, and Resonate. If you read the docs you see that some parts of your code must be deterministic while other parts do not have to be.&…

Three Months

I've been off work for about three months now. It's a good occasion to take stock of how that's going. In a word, it's been great. I'm surprised how much lighter my mood is. It feels like a weight

I wrote an EF Core Provider

EF Core Database Provider for Azure Data Explorer (Kusto). GitHub     The project that I work on has a lot of data, in a lot of entities with a lot of fields, all exposed through an OData API. Naturally, that compels us to know exactly what kind of query shape…

How LLM Inference Works

When you enter a prompt into an LLM, the model converts your text into numbers, processes them, and returns a response one token at a time. In this article, we go through the journey of LLM inference and see how it works.