
AI devex engineer @uber building uReview, previously at @sublimehq. Author of @package_control, occasional designer. Proud husband and father.
Plymouth, NH
Joined January 2008
- Tweets3.9K
- Following112
- Followers3.5K
- Likes394
If you enjoy cryptography, this was a fun read resolving some of the long-held conjectures around the NIST ECC curve seeds
CLAUDE FOUND THE SEEDS
anthropic.com/research/ecdsa…
Can confirm. Take a complex problem, give it to your agent and you’ll likely get a mostly working solution.
Guide it with specific principles, such as using a state machine, and you help it frame the solution space into something that can robustly evolve over time.
Also, use state machines to orchestrate agents for repeated processes!
Just in case it isn’t clear: you can’t really compare numbers across agent-first software engineering and traditional software engineering using agents.
Having 20 agents dividing work will produce completely different metrics than a human orchestrating agents towards the same goal.
You also will have a completely different workflow, using a higher abstraction level.
I prefer we could keep continuing fixing cars and people paying for it, but I also studied economics and wonder why would they pay for it if they can pay Walmart $20 for oil and a filter instead?
I know what this guy feels very well, but it's not like I can control how the world changes
Do you want me to instead lie about where I think things are going or tell you what I think?
I prefer we could keep continuing making cool software and people paying for it, but I also studied economics and wonder why would they pay for it if they can pay OpenAI $20/mo instead?
I'm not, I'm not the founder of OpenAI or Anthropic, I'm not benefiting from this
I'm just telling you what I feel is happening
If anything it only disadvantages me because people will cancel my apps too!
In transitionary times, it's better to spot the big waves early and adapt, than try ignore it, fight it, because you can't fight nature
I'm an eternal optimist but also honest
Someone finally wrote a simple page for monads, so this no longer hits like it used to
Unsurprising: simple.wikipedia.org/wiki/Mo…
It actually isn’t.
The people who don’t pay for software and don’t care about things “just working” or being super easy to use will use the vibed tools where maintainers fade after the initial dopamine rush.
Software like TablePlus and Cleanshot X keep improving, fixing and polishing, and have been for years.
I’m 15 years into selling some of the only commercial plugins for Sublime Text, and just released a new version. People keep paying. Wonder how many other 15 year old IDE plugins get maintained?
Hmm, it seems techempower.com/benchmarks/#… is being rebuilt. It looks like the latest version was from early 2025, so fair enough. 🙃
I just purchased a license, mostly to encourage the development of this. I love the focus on a native Mac app, extreme ease-of-use, and reasonable price.
Keep up the great work!
We are proud to introduce our new product, VMPal.com
It is a Virtual Machine specifically designed for Apple Silicon and AI Agents. This is our very first release, and it fully supports macOS, Windows, and Linux with GPU acceleration.
- Liquid Glass,
- GPU Accelerator.
- MCP for AI Agent on your Mac or inside the VM.
If only there was an editor, that defined fast startup, came with instant syntax highlighting for all major languages, and included no-config, language aware code navigation.
Crazy how much uReview has changed since our talk at AI Engineer Worlds Fair last month. Our harness, models, tool calls and evals have all seen significant revamps. Sol running on Pydantic replaced Claude Code + Opus.
youtu.be/EL123UNokkI?si=u7ZE…
Security Researcher 1: there is a vulnerability in some package you ported to Python 3 over 10 years ago and hasn’t been touched in years
Me: sorry, I don’t support it any more, your company can sign a maintenance contract if you want
SR1: You should jump through these hoops and file a CVE, etc, etc
Me: I don’t support this any more…
Months later…
SR2: I found a vulnerability, with lots of AI/copy pasted text about process, CVE, etc
Me: I decline again, offer paid support again
SR2: Loops in some other random email and says I should hand over the repo to them
Me: *shakes head*
Caring about low level details such as these is a big part of the latency and performance differences users experience with tools like Sublime Text vs VS Code.
Minimizing allocations, using memory arenas, being smart about memory lifetime, struct packing, (C++) move semantics, etc very quickly add up!
One refactor I did on Sublime Text right before the 4.0 release was a combination of struct packing and some pointer reference that cut the fresh instance memory usage on Mac from ~230MB to around ~140MB. We also serialized data in memory format which made session restore effectively copying a handful of contiguous memory from disk into ram.
One of the awesome aspects of powerful LLMs is that if you bring the knowledge of how implementation affects user experience, agents can bring it to life so much faster than pre 2025.
If you're interested in "how" or "why": the major culprit is that each row in Alacritty has 32 bytes of metadata and each cell is 24 bytes. In Ghostty, every row and cell is represented by exactly 8 byte each. How do we do this?
The first major culprit is styles. Alacritty stores the full cell style alongside each cell (foreground, background, underline, etc.). Ghostty stores a 16-bit style ID and de-dupes all styles into a look-aside custom reference-counted hash table.
MOST cells are unstyled, and when there are styles MOST styles are shared, and when styles are shared MOST are repeated in a run (multiple cells with the same style in a row). Put this all together, and the tradeoff on compute to access it doesn't even end up being slower.
Next, codepoints. Alacritty stores multi-codepoint graphemes (like, Emoji) by having an 8-byte nullable pointer to a `Vec`. This hurts doubly: (1) its almost always null (because multi-codepoint is rare) yet you pay an 8 byte cost on every cell and (2) every multi-codepoint grapheme triggers a heap allocation to make that Vec.
Ghostty stores single codepoints inline, but multiple codepoints in a look-aside table. The memory for this table uses a custom bitmap-tracked chunk-allocator (since grapheme frequency follows a measurable curve we calculated by scanning various online texts). The presence of graphemes is marked by a 2-bit content tag in our packed 64-bit cell. To keep the key small in the hash table, its limited to a 16-bit unsigned int that is an offset from a base pointer.
Okay, the astute systems programmer will quickly notice there are a lot of 16-bit integers and ask: so this is all limited to a max of ~65K values?
Nay. We maintain our grid using a linked list of contiguous ~400KB memory chunks (which themselves are in a memory pool using a custom allocator to speed up alloc/free). Each memory chunk is limited to 2^16. If/when we reach a limit, we move to the next page. In practice, this really doesn't happen except under pathological cases... the important point is we handle it.
Lots, lots, lots more details, but thats a 10,000 foot view.
These things alone account for ~95% of the difference of our uncompressed vs. Alacritty's uncompressed memory usage. (Theres also a reason why Alacritty's data structures aren't trivially compressable but thats a whole other topic)
People keep saying don’t review the code, review the architecture. This then begs the question, how do you review the architecture?
Re: point 2, I have found LLMs are probably passable at local implementation, but without consistent review and nudging, devolve into mediocre implementations that have to be cleaned up later when the project evolves.
I’m more interested in how we get to better testing guardrails for LLMs. Coverage is such a poor metric.
Excited to speak at the @aiDotEngineer World’s Fair tomorrow about how we’ve been scaling automated code review at Uber!












