Greg Herlein

Building tech, and teams that build tech. Software, cloud, electronics, whatever.

A 27B Model That Reverse-Engineered a License Check (And How to Run It)

XDA ran a piece that stopped me mid-scroll: a 27B open-weights model reverse-engineered a commercial application’s license check — recovered a deliberately obscured crypto key out of ARM64 assembly, caught and corrected its own mistake without being told, and produced a working bypass PoC. In about thirty minutes. On a desktop box. I have (a version of) that box. So I went and set it up.

Re-use your skills across all your coding agents

I use more than one coding agent. Not because I’m indecisive — because I’m testing different agents - and learning how they work - and the field is moving fast. Seems like a new one every week! But every single one of them wants skills in its own directory, and I got tired of cp -r and stale copies. So I wrote a tool.

Engineering Middle-Management to become extinct?

You can’t lead From hehind anymore. For twenty years the path to Engineering leadership had a well-worn groove: write code for a few years, get “promoted out of” writing code, spend the rest of your career managing budgets, headcount, and status reports. The further up you went the less technical you were expected to be, and nobody blinked. That era is over. Not ending. Over.

A Quieter Place: Why textlog Reminds Me of the Twitter I Actually Miss

I left Twitter before it became X. Not in some grand, principled exit — no manifesto post, no “see you on Mastodon” farewell thread. I just quietly stopped opening the app one day, and never really went back. By the time Elon Musk’s name was on the masthead, I was already gone. So when people ask if I miss “old Twitter,” I have to clarify: I don’t miss what it became right before the sale. I miss what it was years before that — a smaller, weirder, more sincere place.

I Wanted the Laptop to Win (an Inference Challenge)

I have two 128 GB unified-memory machines on my desk. Day job gear, not mine. One is an ASUS Ascent GX10 — an NVIDIA GB10 Grace Blackwell appliance half the size of a hardback book. The other is an HP ZBook Ultra G1a, a 14" mobile workstation running AMD’s Ryzen AI MAX+ PRO 395 (“Strix Halo”). Both hold an 80B coding model entirely in memory. How do they compare for agentic coding?

Tokens Should be NRE, Not COGS

Right now, as an industry, we are running almost entirely on COGS and calling it innovation. Kelsey Hightower gave a talk at PlatformCon called Zero Token Architecture, and the whole thing compresses down to one sentence: infer once, export, run without inference. He’s right. I want to give you the vocabulary that makes it land in a budget meeting, because I work at a company that ships hardware, and we already have words for this.

Stop Putting Your UniFi Admin Password in an Env Var

There’s a command line in the gofi post I wrote ten days ago that has been quietly bugging me ever since I hit publish:

gofips -H 10.20.30.1 -k --get > hosts.conf

Look at that -k. That’s me telling the tool “don’t bother checking the TLS certificate.” And the part you can’t see is worse: my UniFi admin username and password, sitting in environment variables. Both of those were compromises I made to get the thing working. Neither of them sat well.

gofi - a Go library for Ubiquity Unifi control (written by AI)

Here’s a thing I’ve quietly hated for years: managing static IP assignments and DNS names for the little fleet of gear on my network. Every homelab has it — the Pi in the garage, the shop printer, the sensor node in the attic, the pool controller. You want them at known addresses with known names. And the “old-school” way to get that is to stand up a DHCP server and a DNS server and keep them in sync. Since my network has tens of BrightSign devices in addition to my hobby robotics devices, this becomes actual work.

See all posts →