Senior Software Engineer @ Abnormal AI

Email security, AI agents and detection at scale.

I build AI agents and detection systems for email security at Abnormal AI. Its platform operates at billion-message scale. I write about detection engineering, reliable agent execution and the systems behind them.

Independent projects

All projects
Lorevell knowledge sketch: a coding agent reads and writes Markdown notes, with a rebuildable local search index.

Local knowledge · Markdown / Rust

Lorevell

Local knowledge for humans and agents. Markdown files hold the notes; a rebuildable SQLite index supports search. Formerly Memori.

Luffy execution sketch: a pull request leads to tool execution, then a review and saved trace.

PR review · Tools / Traces

Luffy

A review comment leaves questions. Luffy runs tools, retains repository context and saves a trace you can inspect after the review.

Questions I’m exploring

Latest writing

Full archive ↗

Technical notes, longer guides and occasional essays. Follow via RSS or Substack.

Keystrokes into a pseudo-terminal, the OpenCode TUI paints, and two readers consume the run: a terminal emulator and the OpenCode sqlite database

You Cannot Grade an Agent You Only Read

I wanted to check whether a skill actually did its job. The skill ran a goal prompt through OpenCode, called a handful of tools, and left a session behind. Then I read the final message, and the final message told me exactly what I wanted to hear. That is the problem with grading an agent from its output alone. The reply is the last thing that happened, not the thing you were measuring. ...

Technical note · October 21, 2026 · 8 min
Source-verified DeepSeek Harness execution loop and state boundaries

The Model Is Not the Agent — Inside DeepSeek Harness

Also available on Archit’s Newsletter on Substack. You ask a coding agent to fix a failing test. Somewhere, a model generates tokens. But tokens do not open files, decide which shell command is permitted, preserve a session after a crash, or establish that the test now passes. The execution system has to make those things happen. That system is the harness. Its decisions determine how reasoning becomes action, what the model sees next, and which failures remain recoverable. To understand an agent’s reliability, we need to follow those boundaries in code. ...

Technical note · October 7, 2026 · 10 min
Research flows into evidence, reusable artifacts, writing, and feedback. Human review comes before publication.

An engineering-first approach to technical thought leadership

I want my public writing to make it easier for people to understand the engineering work I care about: AI agents, security, and reliable systems. That means explaining decisions, showing what broke, and leaving enough evidence for someone else to check the result. The difficult part is producing something worth explaining. A publishing system should make room for that work. This is the approach I want to build around my website, GitHub, LinkedIn, and Substack. It starts with a technical question and ends with something another engineer can use. Automation helps with the work between those points. Publication remains my decision. ...

Essay · September 23, 2026 · 7 min

Yes, Autonomous Kaggle-Solving Agents Already Exist

As of October 18, 2026, the core idea has been built by multiple research groups, including Microsoft, Google and independent open-source developers. These systems implement a recurring experiment loop: take a Kaggle-style ML problem, generate modeling approaches, train models, evaluate performance, improve their code through repeated experiments and produce solutions. The opportunity isn’t inventing this category. It’s finding where the existing systems remain inefficient, unreliable, expensive or difficult to operate. ...

Technical note · September 9, 2026 · 5 min

Your Personal AI Operating System

An architecture proposal for household coordination, October 2026. This describes a design, not a verified deployment. The goal is to automate the repetitive coordination in your life with a small, durable layer of infrastructure — without turning personal productivity into another engineering project. You don’t need 30 agents, 30 MCP servers or a custom application for every problem. You need one command interface, a few reliable integrations, a memory system, recurring workflows and strict security boundaries. ...

Essay · August 26, 2026 · 8 min
A dark editorial cover with the title The Browser Is the New Operating System

The Browser Is the New Operating System

The browser looks like the safest place on a computer because it looks like a window. A tab is a page. A page is an app. The operating system is somewhere underneath, doing serious things with files and processes while the browser shows us email, a spreadsheet, and a shopping cart. That picture is old enough to be dangerous. I do not mean that a website has become macOS or Linux. A site cannot schedule arbitrary processes, read your disk, or open a socket whenever it wants. The web has spent decades putting useful friction between a page and the machine. The point is narrower, and worse: the browser has become the layer through which we hand out much of the authority that used to sit clearly in the operating system. ...

Technical note · August 12, 2026 · 9 min
Layered human and wireframe hands reaching across a dark technical interface

Self-Improving AI Agents: A Recursive Taxonomy

Self-Improving AI Agents: A Recursive Taxonomy An agent that gets better on its own isn’t one idea. It’s at least six, and they differ by how much of the agent is allowed to change. This post sorts the 2023 to 2026 work into six families, names 109 methods across them, and ranks them all. It’s the map. Two questions separate every method here. What does the agent change about itself? Its prompt, its stored experience, its tools, its own design, its source code, or the world it trains in. ...

Reference guide · July 29, 2026 · 9 min
An Atlas-like figure holding a ringed planet overhead against black

The Staff+ Operating Model: a practical field guide to technical leadership

Moving from Senior Engineer toward Staff or Principal changes the scope of the job. Technical decisions increasingly depend on coordinating teams, resolving disagreements and choosing which problems deserve attention. This guide brings together practitioner frameworks for that transition. It asks what changes in the work and which practices you can try on your next project. The advice needs to be adapted to your organization; titles alone say little about the responsibilities involved. ...

Reference guide · July 15, 2026 · 101 min
Luffy — a comment-triggered PR review agent with growing hub memory

Building Luffy: a PR review agent you can audit

I wanted a PR reviewer whose findings I could investigate after the run. A review comment alone left questions unanswered: which files had the agent inspected, which commands had it run, and what context would survive for the next review? I built Luffy to make that process inspectable. You type @luffy review this pr. GitHub Actions runs Hermes Agent through OpenRouter. The agent can shell into the workspace, repro failures, and post a structured Markdown review. Then it stores a redacted trace and grows hub memory so the next run on that repo is not starting from zero. ...

Technical note · July 1, 2026 · 13 min
A lone figure ascending an infinite staircase through darkness toward light -- recursive layers of agent memory

Memori: The Recursive Design of Agent Memory

Update, 12 November 2026: Memori is now Lorevell. The current version uses Markdown notes as its source of truth and a rebuildable SQLite index. This article describes an earlier version; use the current setup and rename guide for installation and migration. Memori: The Recursive Design of Agent Memory Memori is not primarily a database for notes. It is an attempt to turn agent memory into an engineered retrieval system. The thesis is simple. An agent fails across sessions because state is lost. Lost state only matters if previously learned information cannot be recovered when needed. So “memory” is really three problems: ...

Technical note · June 17, 2026 · 8 min