SFI · Product Register

We run what we build.

The best evidence of infrastructure competence is software in production. These are Streetfortress's own products and platforms — including the shelved ones. Real systems, honest statuses, and the engineering behind them, documented in the knowledge base.

5 units on register 2 in production 0 logos borrowed

SFI-01

In Production

Symbology

AI-synthesized equity research from SEC filings

Symbology ingests SEC EDGAR filings and synthesizes structured research with tiered LLM inference — small models summarize individual documents, larger models build the aggregate picture. It began as a rapid prototype and was progressively re-engineered into the flagship of this register.

The interesting machinery is underneath: a scheduler and distributed worker processes coordinate through a PostgreSQL-native job queue. Atomic job claims via SELECT … FOR UPDATE SKIP LOCKED mean there is no external broker to deploy, monitor, or babysit — the database the system already trusts is the queue.

  • Postgres-native job queue with atomic claims — no Redis or RabbitMQ in the stack
  • Full ingestion → inference pipelines tracked end-to-end, with partial-failure states
  • Tiered model strategy keeps inference cost proportional to document value
  • Ongoing work: frontend readability and mobile UX iteration, data-quality investigations as first-class engineering
Stack Python · FastAPI · PostgreSQL · SvelteKit · Claude API
Timeline 2025 — present

SFI-02

Dormant

(revival queued)

Dial-In

A local-first coffee brewing journal

Dial-In tracks coffee bags and brew recipes with the feel of a native app: it works fully offline from the first visit, and syncs across devices once an account exists. The SvelteKit UI was built mobile-first, since dialing in a shot happens standing at the machine.

Sync is a custom last-write-wins protocol over IndexedDB — dirty-tracking, soft deletes, device identity, pull-since-timestamp — chosen over CRDT frameworks because the data model did not warrant the complexity. Shelved for now; honest ledgers include the dormant entries.

  • Local-first: fully functional with no account and no network
  • Custom LWW sync — push-dirty / pull-since, soft deletes, device IDs; triggered on interval, reconnect, and tab visibility
  • Session auth with subscription-gated sync (better-auth, Stripe)
  • S3-backed photo uploads for bags and brews
Stack SvelteKit · TypeScript · IndexedDB · PostgreSQL · Drizzle
Timeline 2025 — 2026
Live dial-in.fitz.gg — migration to dial-in.coffee queued

SFI-03

Archived

OSRS Flips

Market intelligence for a virtual economy

A real-time trading-intelligence pipeline for Old School RuneScape’s Grand Exchange. A Go collector daemon polls price and volume APIs into TimescaleDB hypertables; a second service filters candidates on margin and volume, has a local LLM rank the results, and posts opportunities to Discord on a schedule.

Archived when the game left the rotation — it stays in the register because the patterns carried forward: time-series ingestion, schema migrations on boot, and config-driven job pipelines all resurface in later SFI work.

  • Go collector: 60-second price polling, historical backfill, migrations applied on startup
  • TimescaleDB hypertables for fast time-series queries over prices and volume
  • Local LLM (Ollama) ranks filtered candidates; cron-driven jobs deliver to Discord
  • SvelteKit + D3 charts and watchlists — desktop-oriented, deliberately unpolished
Stack Go · TimescaleDB · SvelteKit · D3 · Ollama
Timeline 2025 — 2026

SFI-04

In Production

PrimeTime

Dimensional time tracking for the agent era

PrimeTime is a macOS menu-bar time tracker with one instructive decision at its core: instead of filing time into a folder hierarchy, every span carries key: value labels — repo: sfi-website, feat: kb-graph, type: review — inspired by Prometheus metrics. Time becomes queryable across any axis you invent, rather than recorded into a structure you must commit to up front.

That model fits how work actually happens now. A labelled span joins directly to the commits and PRs it produced, so invoicing derives from what shipped; and when you are driving several agent loops at once, a label answers “where was I” while a one-line note answers “what was I doing,” re-seating context in seconds. Offline-first — local SQLite is the source of truth — with optional sync to a server you host.

  • Prometheus-style key:value labels make time queryable on any axis — no hierarchy decided up front
  • Local-first behind one data-only Backend seam: fully functional offline, sync optional and self-hosted
  • Sync server derived from GPL traggo via subtree vendoring — AGPL additions, SPDX provenance boundary
  • Convergent staged batch rewrites clean up label vocabulary drift over thousands of spans through a per-item API
  • Shipping as v0.1.0: a signed, notarized macOS build that clears Gatekeeper on first launch — used daily inside SFI
Stack Swift · SwiftUI · GRDB / SQLite · Go · GraphQL
Timeline 2026 — present
Live primetime.tools — v0.1.0 — signed & notarized

SFI-05

Active Migration

The Platform

The infrastructure underneath everything above

Every product in this register runs on infrastructure SFI operates itself — and that platform is its own showcase. It has evolved deliberately: Ansible-managed Ubuntu hosts, then Compose + Caddy stacks, now a phased migration to NixOS-derived host images running Flux-driven GitOps on k3s.

The migration is sequenced so that a restore drill gates each phase — nothing is adopted into GitOps until its backups have actually been restored. Reproducibility is the point: a host can be rebuilt from its flake, its secrets pre-seeded, and its workloads reconciled from git with no hands on a keyboard.

  • NixOS hosts with pre-seeded age identities — hands-off provisioning through to Flux bootstrap
  • Flux + sops per cluster; Helm charts published to a self-hosted OCI registry
  • CloudNativePG with layered physical and logical backups; restore drills gate each phase
  • Single-node clusters per environment for blast-radius isolation
Stack NixOS · k3s · Flux · Helm · sops / age · CloudNativePG
Timeline ongoing

Apply this to your systems

Embedded engineering

The same engineers who run this register embed into your team — Kubernetes platforms, observability, deployment pipelines — and hand the systems back documented.

Get in touch

Fixed-scope system design

For startups and small teams: a bounded design engagement that produces an implementation-ready architecture — the same discipline, sized to fit.

How it works