Engineer · Developer tools · AI software

I build the tools
I wish existed.

Software engineer at Guitar Center. I work across full-stack web, retail POS, and developer tooling. Right now I'm shipping OpenDev — an AI-first IDE I built from scratch because every existing editor felt ten years behind, and Claude deserved better than a chat panel taped to the side.

Currently Engineer · Guitar Center
Latest release OpenDev v0.5.25 — May 2026
Based in United States · Remote
01 About

Software engineer focused on what other engineers depend on.

Engineer at Guitar Center, working across retail POS, full-stack web, and the integration plumbing between them. Before that: a stack of full-stack systems where the interesting problem was always whatever the framework wouldn't do for you.

I care most about the kind of work other engineers depend on — tools, primitives, the plumbing that disappears when it's done well. Lately that's meant building AI deeper into the development loop, rather than parking it in a sidebar and calling it integrated.

The most recent expression of that is OpenDev. It started as a weekend experiment and turned into a full IDE.

  • Guitar CenterEngineer
  • Full-stack webTS · React · Node
  • Point-of-saleRetail systems
  • Developer toolingIDEs · CLIs · MCP
  • AI integrationAnthropic · OpenAI
  • DatabasesMySQL · Postgres · ES
02 Ancient History

Almost thirty years of debugging production, briefly.

I've been writing software long enough to remember table-based layouts, FTP deployments, Dreamweaver, debugging Internet Explorer 6, PHP forums held together with hope, and manually centering divs before Stack Overflow existed. Here's the short version.

  1. 1997

    AUSD Student Webmaster

    Started building websites as a student webmaster for the Alhambra Unified School District. Back when "full stack" meant HTML, inline CSS, maybe one terrifying CGI script, and praying that Netscape and Internet Explorer rendered things the same way. They did not.

  2. The Early Internet

    Christiansingles.com

    Early web applications during the chaotic golden age of the internet. Everything was PHP, MySQL, server restarts, mystery production bugs, and code deployed straight to production — because staging environments were, apparently, against God's plan.

  3. The Corporate Years

    Added Value · Harley-Davidson

    Enterprise and marketing tech, including projects connected to brands like Harley-Davidson. Discovered meetings, corporate architecture diagrams, PowerPoint, and the empirical fact that "synergy" can physically damage the human spirit.

  4. The Studios

    5th Kind · Marvel · Universal Studios

    Digital asset management systems and enterprise software used by Marvel and Universal Studios, among others. Large-scale systems, metadata, workflows, permissions, pipelines — plus many afternoons spent explaining to non-technical people why deleting the production database is generally discouraged.

  5. Now

    Guitar Center

    Building systems and tools at Guitar Center. Still writing software. Still debugging production. Still explaining why turning it off and back on again occasionally works.

For most of those years I was a deeply traditional engineer. I believed good software required craftsmanship. That AI coding tools were mostly hype. That autocomplete wasn't intelligence. That real engineering required human judgment, all the way down.

Editorial · Spring 2026

Then Claude Code ruined that worldview.

I'm now probably happier coding with AI than without it. Not because AI replaces engineers — but because, after decades of writing software, this is the first time tooling has felt like an actual force multiplier rather than a gimmick.

After surviving multiple eras of web development, enterprise software, production outages, half a dozen JavaScript frameworks, and Internet Explorer 6 through 11, I unexpectedly found myself excited about programming again.

04 Under the hood

How it actually works.

— 01

Electron with a typed IPC contract

The main process owns workspace state, subprocess management (TypeScript LSP, ripgrep, Claude CLI, node-pty), DB pools, and the MCP HTTP server. The renderer is React + Zustand and talks to main exclusively through contextBridge. Every channel is namespaced (fs:read, ai:send, db:query) and typed end-to-end via src/shared/.

— 02

Back-pressure at the process boundary

Long-running data sources — PTY output, AI streams, service logs, DB results — are all capped and coalesced at the main-process boundary. A runaway producer can't drown the renderer or crash the IDE. Hard caps on file read size, DB row count, subprocess output, AI streams; a memory watchdog warns before OOM territory.

— 03

Built-in MCP server

An HTTP MCP server runs on 127.0.0.1:53825. External CLIs (claude, codex) can connect for read access to IDE state — open files, services, workspace tree, listening ports. Same surface area the in-app Claude has, exposed cleanly.

— 04

Webview isolation for user content

The embedded browser uses nodeIntegration: false with a contextBridge-only surface, so a hostile page in your dev server can't reach the renderer's state or the host filesystem. The element picker runs as an injected script with a narrow IPC channel.

— 05

Secrets in the OS keychain

Database passwords are stored in macOS Keychain through keytar — never on disk in plaintext, never in the workspace. API keys live in user-scoped settings under Application Support, isolated from project files.

— 06

Worktree-isolated AI edits

When the AI proposes file changes, they're applied inside a git worktree, not your working copy. You see a real diff against your branch and accept or discard with one click — no half-applied patches, no surprise overwrites.

05 Try it

Built for engineers who'd rather own their tools.

OpenDev is free, open source, and MIT-licensed. No account, no subscription, no plugin marketplace. It either fits your workflow or it doesn't — and either way, the code is yours to read.

macOS · Apple Silicon · v0.5.25 · 94 MB · unsigned (right-click OpenDev.appOpen on first launch)