Writing
Notes on building with AI in real products — plus product, trust & safety, and language.
Google turns off the consumer Gemini Code Assist app for GitHub code review today, the last step in winding down the free/individual tier. What's actually ending, why Antigravity isn't a straight swap for the PR bot, and the alternatives — Copilot, CodeRabbit, Qodo, Greptile, Claude Code — worth a look.
Uber's $14.8B offer for Delivery Hero rests on a reported 60 million monthly active users — a figure that appears nowhere in EU DSA transparency data. The one report you can actually download shows four brands, ~4,500 notices in a year, and zero user counts; the 2025 report link 404s.
The transparency data explorer is now a native Android and desktop app — one Kotlin Multiplatform codebase, a mobile-first Compose UI, the same live API, and no SQL. Here's what shipped, why one codebase covers both platforms, and where to download it.
“Own initiative” on Table 6 can be read narrowly (only what a platform proactively detected) or broadly (all provider-initiated moderation). The two differ by orders of magnitude — and across the first harmonised reports (H2 2025), no VLOP filed on the narrow one. Cross-checked against the Statements-of-Reasons database.
In July 2026 three of China's most-used AI apps said they would pull the user-created companion chatbots (智能体) built on them. A factual look at the new Interim Measures — which target companion chatbots, not the autonomous "agents" the term literally translates to — what the rule covers, and the translation knot that made "agents" the headline.
The dashboard already had the DSA's aggregated transparency reports. Now it also has the decision-level data — every content-moderation Statement of Reasons platforms file to the EU. Here's how ~4 TB of daily dumps became a two-megabyte dashboard.
Article 53(1)(d) makes GPAI providers publish a standardized summary of their training data. I collected the ones filed so far into a comparable dataset — and the gap between who files and who doesn't is more informative than the numbers.
What began as a dashboard for EU DSA data grew into a single API spanning more than two dozen platform and regulator transparency datasets — government-request reports, content-moderation stats, and national-law filings — all reachable through one safe, no-SQL query interface.
I asked Claude Code, in a sandboxed web session, to make Simplified-Chinese maps for every stop on a Hong Kong trip. No browser, no Maps API key — just raw map tiles, Pillow, and a detour through China's mandatory GCJ-02 coordinate offset.
A LayerX engineering post logs its AI prompts and analyzes them like code to find what to automate. It's the data-first move I've used at Google and since — intuition flags it, data proves it — turned reflexively on the human–AI workflow itself.
I asked Claude Code, running Anthropic's new Fable 5 model, to security-review my research API. It found and fixed five real issues — SSRF, CSV injection, a timing side channel — then fact-checked the bot that reviewed its PR.
Four new tabs — Automated Means, Human Resources, User Reach, and Qualitative Information — complete the dashboard's coverage of every DSA reporting table.
H2 2025 EU DSA transparency reports from 30 VLOP and VLOSE services in a single interactive view. The first cross-platform dataset to follow the Commission's harmonized template in full.
Category definitions aren't standardized across platforms. Data is self-reported. Aggregation methods differ. What the VLOP dashboard can and can't tell you — and why the limitations matter as much as the data.
Requirement extraction, gap analysis, and draft review — three workflows that have actually stuck. Where each one breaks down, and what LLMs reliably can't do in a compliance context.
Defamation and government criticism have very different country distributions. Removal rate shifts across the 30 reporting periods. And requestor type carries real operational weight.
30 reporting periods, 178 countries, 61 Google products, 22 removal reasons — turned into a multi-year trend explorer. Every filter combination generates a time series.
Both laws require social media transparency reports on content moderation. Their data requirements diverge in ways that force separate pipelines, even when review cycles can be shared.
Two state social media transparency reports filed — California AB 587 (H2 2025) and New York S895 (Q4 2025). Running them in parallel shaped how we built the reporting infrastructure.
Article 15 applies to all intermediary services annually. Article 42 adds bi-annual, category-level, timestamped VLOP obligations. The practical gap is significant — and it shows up in the reporting infrastructure.
Roblox's annual EU DSA transparency report for 2025 is published, covering content moderation activity for 1 January – 31 December. I owned end-to-end delivery.