Blog
Writing on GPUs, LLMs, MLOps, Kubernetes — and mindset · 3517 posts
#2026-03 765#english 592#culture 264#deep-dive 254#kubernetes 247#career 229#ai 216#llm 208#devops 193#2026-04 146#security 141#database 114#observability 113#communication 109#history 107#architecture 100#productivity 96#finance 88#economy 84#mindset 81#psychology 80#ai-papers 79#food 78#it 78#travel 78#deep-learning 77#japanese 77#networking 77#performance 72#business-travel 70#linux 70#gpu 69#ai-agent 66#cs-fundamentals 63#postgresql 60#rag 58#self-improvement 55#learning 53#mlops 53#ai-platform 51
Kotlin Swift Export Reaches Alpha — It Is Tearing Down the Objective-C Bridge, but Do Not Cross Yet
The biggest tax Kotlin Multiplatform has paid on iOS has been the Objective-C bridge. Kotlin code could not reach Swift without passing through an Objective-C header, and in that crossing, Int? got boxed into KotlinInt,
2026-07-16 · 17 min read #kotlin#kotlin-multiplatform#swift#ios#compilerThe Version After MySQL 9.7 Is 26.7 — How MySQL and MariaDB Tidied Up Their Release Models in Spring 2026
On April 21, 2026, MySQL 9.7.0 shipped as GA, opening a new LTS line for the first time in almost two years since 8.4 — and that same month, Extended Support for MySQL 8.0 ended, dropping it into Sustaining Support. Then
2026-07-16 · 20 min read #mysql#mariadb#database#versioning#devopsThe goroutineleak Profile in Go 1.26 — Catching Goroutine Leaks with GC Marking
Go 1.26 (released February 10, 2026) added a goroutineleak profile to runtime/pprof as an experimental feature. The idea is to recycle the GC's marking phase — mark using only runnable goroutines as roots, then report as
2026-07-16 · 17 min read #go#goroutine#garbage-collection#profiling#debuggingllama.cpp Comes to the Browser — The Ceiling a WebGPU Backend Measured Across 16 Devices
LlamaWeb, the WebGPU backend for llama.cpp released by a UC Santa Cruz team in May 2026, left behind the widest dataset to date measuring browser LLM inference — 16 devices across 8 vendors. The results cut both ways. It
2026-07-16 · 16 min read #webgpu#llm-inference#llama-cpp#on-device-ai#browserMove to Ambient and EnvoyFilter Goes Silently Ignored — The Gap Istio 1.30's TrafficExtension Closes, and What It Doesn't
The real obstacle blocking migration to ambient mode isn't resources — it's extensibility. Istio's official migration doc states outright that EnvoyFilter is not supported on waypoints, that it will be "silently ignored"
2026-07-16 · 15 min read #kubernetes#istio#service-mesh#envoy#ambient-meshThe Workload/PodGroup API in Kubernetes v1.36 — Gang Scheduling Is Moving Into kube-scheduler
Gang scheduling for AI training and batch workloads has so far been the job of external schedulers like Volcano or Kueue, but Kubernetes has started pulling this capability into its core. v1.35 shipped the Workload API a
2026-07-16 · 19 min read #kubernetes#scheduling#gang-scheduling#distributed-training#draInfluxDB 3 Core's 72-Hour Limit Is Actually a 432-File Limit — The Bill Left by Rewriting Parquet
InfluxDB 3 rewrote its entire engine in Rust and put the storage layer on Apache Arrow and Parquet. It is commonly claimed that Core only queries the last 72 hours, but reading the source shows no such code. What actuall
2026-07-16 · 18 min read #database#influxdb#time-series#parquet#storage-engineWhy the Default Vector Index Moved from HNSW to Disk — the Tradeoffs of Elasticsearch bbq_disk
As of Elasticsearch 9.4 (2026-05-05), the default index type for float vectors changed to bbqdisk — a disk-based IVF index. In under a year the default moved from int8hnsw to bbqhnsw and then, a second time, to a disk in
2026-07-16 · 23 min read #vector-database#elasticsearch#ann-index#quantization#hnswFerrocene's Certified core — The Compiler Is ASIL D, So Why Does the Library Stop at ASIL B?
The claim that Ferrocene's Rust compiler is 'ASIL D certified' is true, but the conclusion people usually draw from it is not. Ferrocene qualified the compiler as an ISO 26262 ASIL D / TCL 3 tool, which means 'you may de
2026-07-16 · 23 min read #embedded#rust#ferrocene#safety#systemsThe Final Field Mutation Warning in JDK 26 — What JEP 500 Actually Changed, and What to Check Now
JDK 26 (GA on March 17, 2026) started emitting a runtime warning, via JEP 500 "Prepare to Make Final Mean Final," for code that reassigns final fields through deep reflection. Ever since JDK 5, Field.set() after setAcces
2026-07-16 · 17 min read #java#jvm#reflection#serialization#migrationIceberg v3 Row Lineage: Row IDs Aren't Stored in the File
Apache Iceberg format v3 writes row lineage — a stable identifier for every row — into the spec, and it isn't optional: any v3 table has it on unconditionally. But that value isn't stored in the data file — it's computed
2026-07-16 · 18 min read #iceberg#lakehouse#table-format#data-engineering#sparkDuckDB Gets a Client-Server Protocol — What Quack Changes and What It Doesn't
On May 12, 2026, the DuckDB team announced Quack — a client-server protocol built on top of HTTP that lets two DuckDB instances become client and server to each other, so the same database can be read and written concurr
2026-07-16 · 18 min read #database#duckdb#olap#analytics#data-engineeringThe Bug Deterministic Simulation Testing Found — KAFKA-19880, and How to Read "Zero Bugs"
Deterministic simulation testing (DST) traps every source of nondeterminism — the clock, thread interleaving, random numbers — inside a simulator, so a heisenbug that never used to reproduce can be recalled with a single
2026-07-16 · 17 min read #testing#deterministic-simulation-testing#distributed-systems#kafka#antithesisgit history — The Experimental History-Rewriting Command Git Put Next to rebase
Git 2.54 (2026-04-20) shipped a new command called git history as an experiment, and 2.55 (2026-06-29) added a fixup subcommand. It handles three common history-rewriting tasks — reword, split, fixup — with a single comm
2026-07-16 · 17 min read #git#version-control#jujutsu#rebase.NET 11 Runtime-Async: A Progress Report on Moving the Async State Machine from Compiler to Runtime
C's async/await has been purely a compiler feature since 2012 — Roslyn rewrites the method body into a state-machine class, and the runtime executes it without ever knowing it was async. .NET 11's runtime-async moves tha
2026-07-16 · 18 min read #dotnet#csharp#async#jit#performanceThe eBPF Verifier Only Tells You Where It Stopped — Measuring the Diagnostic Gap Across 235 Reproduced Rejections
Anyone who has used eBPF has lived this: the verifier rejects your program, and the error message points at a line that looks perfectly innocent. A paper published in July 2026 is the first to put a number on that frustr
2026-07-16 · 18 min read #ebpf#linux#kernel#debugging#developer-experienceWhy 3 of 5 Raft Nodes Died at Once — Reading Coinbase's May 7, 2026 Outage
On the evening of May 7, 2026, cooling units in a single data hall inside AWS us-east-1's availability zone use1-az4 failed simultaneously, and Coinbase suffered an outage in which most of its services — including tradin
2026-07-16 · 17 min read #distributed-systems#postmortem#consensus#aws#resilienceC++26 Contracts — the feature that passed 114 to 12, and the one implementation that shipped it: GCC 16.1
On March 28, 2026, WG21 finished the technical work on C++26. The vote was not unanimous (114 in favor, 12 against, 3 abstentions), and the main reason for the dissent was contracts. Contracts let you write preconditions
2026-07-16 · 18 min read #cpp#cpp26#contracts#wg21#gccTeams Using Platforms Had 8% Lower Throughput, 14% Lower Change Stability — Why You Shouldn't Read DORA's Data as Causal
As of 2026, internal developer platform adoption is reported at 90%. But the very DORA report that produced that number also carries an uncomfortable result alongside it — in the 2024 report, platform users had 8% higher
2026-07-16 · 18 min read #platform-engineering#dora#internal-developer-platform#devex#research-methodssched_ext Sub-Schedulers — the Per-cgroup Scheduler That Arrived Half-Done in Kernel 7.1
Linux 7.1 (released June 14, 2026) landed cgroup sub-scheduler support for schedext. The goal is clear — attach a BPF scheduler anywhere in the cgroup tree, let parent schedulers dynamically allocate CPU to their childre
2026-07-16 · 13 min read #linux#kernel#scheduler#cgroups#bpf