Ceymer Trading is an algorithmic trading terminal I built as a personal engineering lab — event-driven architecture, real market APIs, and a language model in the decision loop that must write out its reasoning before any order goes anywhere. It's not a product and it's definitely not financial advice; it's where I stress-test ideas about automation and AI judgment with real stakes.

Side projects usually fail politely — a bug means a broken screen. A trading system fails with consequences, which makes it the most honest place to practice event-driven design, idempotency, and safe automation. Every sloppy assumption costs something, so nothing stays sloppy for long.
It's also a live question I wanted to answer for myself: what does it take to put an AI model in a decision loop responsibly — with constraints, audit trails, and a kill switch — rather than just letting it improvise?
Market events flow through Firebase Cloud Functions — scheduled scans, signal evaluation, and order management as small, independent, retry-safe functions instead of one fragile always-on process.
Market data and order execution run through the Alpaca API, with multiple isolated accounts so strategies can be tested in parallel — and paper accounts absorb the experiments before anything touches real money.
The AI layer evaluates signals and market context and must produce a written rationale for every recommendation. Hard-coded rules — position limits, risk caps, market-hours checks — sit between the model and the order endpoint. The AI advises; the guardrails decide what's allowed.
The interface is built like a trading terminal: dense, glanceable state — positions, signals, the AI's latest reasoning, and a very prominent stop-everything control.
The interesting engineering wasn't getting a model to have opinions about markets — models have opinions about everything. It was containing those opinions: forcing written rationale, bounding every action with deterministic rules, logging every decision for review, and making the off switch the most reliable component in the system.
That pattern — AI proposes, constraints dispose, everything auditable — is the same one I now apply anywhere an AI feature ships in my apps, from ADIN's tutorials to Scapeboard's plant identification. This lab is where it was earned.