Skip to content

Fabian RodriguezSolutions architect and product engineer

Web products, AI tooling, NetSuite systems. And games.

I design the system before writing it, and decide what stays out. Every project here carries the problem that started it and the decision that defined it.

The Milestoner web panel showing a finished run: eight milestones done, forty pieces of written evidence, lint clean
Milestoner, an autonomous-run engine for coding agents. On npm.

How I work

Finding the problem
Nearly everything here began as a problem that was already costing someone time and did not have a name yet. I write the problem down before I write anything else, and most of them do not survive that page. The ones that do are on this one.
The decision before the code
Every system here has one constraint chosen first, and the rest follows from it. Stock Lens reuses the NetSuite session you are already signed into, so there is no integration record, no OAuth and no server to secure. Milestoner keeps run state in files instead of a conversation, so every agent session starts clean and a finished run still reads a week later. I would rather spend a day arguing about that choice than a month refactoring around it.
Product design
Scope, flow, naming, the empty state, and what the thing refuses to do. quienpagapp has no signup, because asking a group of friends to create accounts kills it on the first message. Milestoner never lets an agent clear its own block, because that call belongs to a person. Most of the design work is subtraction.
Leading delivery
Tech lead on NetSuite and SuiteCommerce: I scope the work, split it across the team, decide the shape of each integration and answer for it in production. ERP customizations, storefronts and the data flows between systems that were never designed to talk to each other. The part that has to keep working long after the project ends.
Stack
TypeScript, Node.js, React, Next.js and Astro. Postgres with vector search, and LLM pipelines that turn email, PDFs and receipts into validated data. SuiteScript, SuiteCommerce and SDF. Chrome Manifest V3, Unity and C#. Vercel, Render, Neon and Supabase. Further back, Java, WebRTC and WebDAV.

Selected work

All projects

Everything here ships under Unreal Byte, the name I have used since 2017 for games and Unity tools. The site has the devlogs and the full catalogue.

unrealbyte.com
Permaban key art: a moderator at a burning 2007 desktop covered in popups

Permaban. Out now.

A forum moderation sim set in 2007. Ban trolls, cite the exact rule they broke, and survive your own crumbling Windows desktop. Six waves, eighteen contradictory rules, one burnout meter, zero pay. On Steam, and playable free in the browser.

Get it on Steam

Questions

What does Fabian Rodriguez specialize in?

Solutions architecture and product engineering: finding the problem, deciding the shape of the system before any code, designing the product and leading delivery. The work falls into three areas: web products, AI tooling for coding agents, and NetSuite systems. Games ship under Unreal Byte.

What NetSuite and SuiteCommerce work has Fabian done?

Tech lead on NetSuite and SuiteCommerce: ERP customizations, SuiteCommerce storefronts, SDF deployments and the integrations between systems that were never designed to talk to each other. On his own time he built NetSuite Stock Lens, NetSuite DevTools and a Claude Code skills pack for NetSuite, and has written about NetSuite MCP apps and SDF.

NetSuite projects
What is NetSuite Stock Lens?

A Chrome extension that shows live NetSuite inventory on hover, inside the transaction you are already looking at: totals, per-location breakdown and incoming purchase orders. It reuses your existing session, so there is no integration record, no OAuth and no server. Free on the Chrome Web Store, source on GitHub.

NetSuite Stock Lens
What is Milestoner?

An autonomous-run engine for coding agents such as Claude Code. You split the work into milestones with acceptance criteria written up front; Milestoner launches one fresh headless session per milestone, grades what each session claims against evidence on disk, and never lets an agent clear its own block. Published on npm under the MIT license.

Milestoner
What AI tooling has Fabian built?

Milestoner, an orchestration layer for coding agents; a Claude Code skills pack that teaches the agent SuiteScript, SuiteCommerce and SDF; and LLM pipelines inside products, such as the receipt OCR in quienpagapp and the email and PDF extraction that built EveryPlace. He also writes about NetSuite MCP apps.

AI tooling projects
What technologies does Fabian use?

TypeScript, Node.js, React, Next.js and Astro. Postgres with vector search, and LLM pipelines that turn email, PDFs and receipts into validated data. SuiteScript, SuiteCommerce and SDF on NetSuite. Chrome Manifest V3 for extensions, Unity and C# plus Phaser for games. Vercel, Render, Neon and Supabase. Further back, Java, WebRTC and WebDAV.

What has Fabian shipped?

Milestoner on npm, NetSuite Stock Lens on the Chrome Web Store, the PWAs quienpagapp and The Daily Pick, the personal travel log EveryPlace, and the open-source NetSuite DevTools and calendar-autoblock. As Unreal Byte: Permaban on Steam, the browser games Downgrade, ViewGuessr, Alchemistore and Gachaholic, the mobile RTS Battle Lands, and three Unity Asset Store plugins.

All projects
Is Fabian available for freelance or consulting work?

Yes, for architecture, product and engineering work, NetSuite or otherwise. Email is the fastest way to reach him: contact.fabrodz@gmail.com.

Contact

Available for architecture, product and engineering work, NetSuite or otherwise, and happy to talk about anything on this site. Email is the fastest way to reach me.

contact.fabrodz@gmail.com