×

👋 Hello, Anthropic team!

Thanks for checking out my blog. I'm excited about the opportunity to work with you on building safe, beneficial AI systems.

Feel free to explore the posts on AI alignment, verification theory, and software engineering.

— James

Tag: sharp

Blog Posts

The Layers of Abstraction Will Kill You

Two long hours to debug a simple "command not found."

The actual problem was buried four dependencies deep: an image library couldn't build native bindings for my specific Node + ARM combo. When it failed, npm silently rolled back the entire install while reporting success.

Every abstraction layer you add is another place errors get swallowed. The fix took 30 seconds once I found it. The ablest developers aren't those who know the most tools, but the ones who deftly drop down a layer when something breaks.

Know what's under your abstractions.

The Null Equivalence Principle for JSON APIs

Most APIs should treat omitted, null, and empty values consistently to reduce complexity and ambiguity. When you truly need distinct semantics—PATCH (RFC 7396), GraphQL nullability, or OpenAPI 3.1 union types—document it, enforce it, and make the exception explicit.