Paul J. Wojnicki, Ph.D. AI & software architect Founder, Owlstorm

Show it
working.
Then explain it.

I build AI systems that cite their sources, say so when they don't know, and prove both in CI before anyone has to trust them. I've been doing machine learning since 2002, back when you had to forge the hammer before you could build the house.

CH1 · CAREER SIGNALTIMEBASE 1 yr/div · TRIG shipCURSOR · —
2002First ML system · M.S. thesis
30+AI & automation deployments
5Companies founded · 3 exits
200+Graduate engineers taught

Live
builds

Every project here has something you can click. The public repos are readable code; the private ones link to the running demo. Each card names the guardrail, because that's the part that decides whether you can put it in front of a customer.

CH-01Live

TrendHUD

One longitudinal view across clinical care. TrendHUD connects to a patient's records over SMART on FHIR and lines up every lab and time point against treatment events on one screen. An analytic agent tuned to each of fifteen specialty workflows reads the chart and cites the data points behind every flag.

GuardrailDeterministic clinical thresholds sit in front of retrieval-augmented Claude Opus. The model explains; it never decides what counts as critical.
IngestionClaude vision reads lab PDFs and maps each value to a FHIR Observation with its LOINC code.

Also at trendhud.app and trendme.med

Deploy
Vercel, auto-deployed from GitHub on every push
Data
Supabase Postgres, FHIR R4 Observations, LOINC codes
Auth
SMART on FHIR OAuth 2.0 against Epic MyChart, Oracle Health and InteliChart
AI
RAG over the patient record with Claude Opus, a Claude Haiku tier for fast passes, Claude vision for lab ingestion
UI
Synchronized multi-panel charts, voice navigation in English, Spanish and Mandarin
Built in
Claude Code, end to end
CH-02Live · public

ZKicks

An agentic analyst over five years of books for a fictional sneaker reseller. Ask about Nike in winter and it writes SQL and draws the chart. Ask about a consignor's email and it searches documents and cites them.

GuardrailSeeded simulation, so CI knows the true answer. Abstention gated at 100%, read-only SQL, debits checked against credits every run.
Agent
LangGraph ReAct agent, 8-call budget, inspectable JSONL trace
Data
DuckDB double-entry ledger, SQL generated by the agent
Retrieval
BM25 + embeddings, reciprocal-rank fusion
Stack
FastAPI with streamed answers (SSE), React 19, Plotly, Claude API
Ship
Vercel; eval badges written by GitHub Actions
CH-03Live · public

VitalPoint

Renewal-risk briefs across a 300-account book of medical practices. Every risk driver sits above the quoted evidence, and every brief says what it doesn't know.

GuardrailTenant isolation by construction: there is no unscoped search API to misuse. Canary phrases in every account and a zero-leak CI gate.
Retrieval
Hand-written BM25 + TF-IDF, reciprocal-rank fusion
Data
Read-only SQLite, seeded from twelve behavioral archetypes
AI
Optional Claude rewrite behind a citation-preserving contract
Ship
One Vercel Python function; GitHub Actions eval gates
Trim
Dropped the ML libraries: install went from about 160 MB to 19 MB, gates still green
CH-04Live

Clockwork

A follow-up engine for independent real estate agents. It started with a Hudson County agent who lost a lease-renewal commission to a calendar nobody was watching. Now it tells you who to call today, and why.

GuardrailConsent, quiet hours and frequency caps, checked as four invariants fuzzed across 200 randomized worlds on every commit.
Engine
Four signal generators: lease clock, inbound leads, listing events, dormancy
Grounding
Evidence packs; an unsupported claim downgrades the card
Scale
A 1,200-person book on a simulation clock you can fast-forward
Ship
Vercel
CH-05Public

edgarm7

Retrieval over SEC 10-K filings with answers traceable to the exact filing, plus a research agent that compares companies side by side.

GuardrailA labeled benchmark scores every retrieval strategy (Recall@k, MRR, nDCG), and says "insufficient evidence" when the filing is silent.
Vector
Postgres + pgvector, 768-d embeddings, token-aware chunking
Retrieval
Vector + BM25, reciprocal-rank fusion, cross-encoder rerank
Agent
LangGraph: plan, retrieve per company, check sufficiency, loop if thin
Models
Swappable: Claude, Gemini or local Ollama, one config line
Tests
96 offline unit tests; Docker Compose for Postgres
CH-06Public

onus

A regression gate for RAG systems. It grades against a golden set and fails the pull request when answer quality slips. The burden of proof is on the answer.

GuardrailA zero-tolerance gate can't pass by doing nothing: if an item crashed, the count reports "undefined", never a false clean zero.
Gates
Floor, drop-vs-baseline and zero-tolerance, set in YAML
Metrics
Recall@5, abstention recall, citation accuracy, verbatim excerpts, PII leaks
CI
Exit codes: 0 pass, 1 gate failed, 2 harness error
CH-07Live · public

MedSec

Grounded answers for vendor security questionnaires: HECVAT, CAIQ, HIPAA due diligence. Upload the spreadsheet, get it back answered with a provenance sheet.

GuardrailEvery sentence carries a citation and is checked against its evidence, then routed: auto-answered, needs review, or abstained.
Retrieval
BM25 + dense retrieval, reciprocal-rank fusion; BM25 catches control IDs like 164.312(a)(2)(iv)
Data
Postgres in production, SQLite locally; full audit trail
Stack
LangChain, FastAPI, Excel in and out, optional Claude drafter
Ship
Vercel with Marketplace Postgres; abstention evals in CI
CH-08In development

FitCheckAI

Outfit scoring from a photo, inspired by my daughters. The first version ran on a fine-tuned Gemini Vision model; the native app runs on the Claude Vision API and is heading to TestFlight.

Judgment callMoved off a custom fine-tune to the Claude Vision API, and calibrated the scorer to a real 2.0 to 7.8 range so a 9 means something.
App
React Native + Expo, TypeScript, 13 designed screens
Auth
Supabase Auth: email, Apple Sign-In, Face ID
Data
Supabase Postgres and Storage for photos and score history
AI
Claude Vision API

The
stack

What each build actually runs on. Every one of them was written in Claude Code; the rest of the stack is picked per problem, not per habit.

LayerTrendHUDZKicksVitalPointClockworkedgarm7onusMedSecFitCheckAI
Claude Code●●●●●●●●
Claude APIOpus · Haiku · vision●optional●optionalvision
Vercel●●●●●
SupabasePostgresPostgres · Storage
AuthSMART on FHIRSupabase Auth
SQLPostgresDuckDBSQLitePostgresPostgresPostgres
VectorembeddingsTF-IDFpgvectordense
RAG●hybrid + RRFhybrid + RRFevidence packshybrid + rerankgrades ithybrid + RRF
Agentsanalytic agentLangGraphsignal engineLangGraph
APIFastAPIFastAPIFastAPICLIFastAPI
CI gatesevalsleak gatefuzzingbenchmark●abstention
DomainFHIR · LOINCaccountingSaaS renewalsreal estateSEC filingsevalssecurity / HIPAAconsumer

House
rules

The same five rules show up in everything I ship, from a weekend demo to a client deployment. They're the reason the demos survive contact with real users.

rule.cite_or_abstain

Cite it or say "I don't know"

An answer without a source is a guess. A system that admits a gap is one you can deploy.

rule.evals_gate_ci

Evals block the merge

Quality is a failing test, not a feeling after a demo. Regressions stop at the pull request.

rule.by_construction

Safe by construction

Isolation and permissions are built into the shape of the API, then verified by a machine.

rule.seeded_truth

Know the right answer

Seeded synthetic data means the test suite knows ground truth, so correctness is checkable.

rule.show_first

A demo you can click

If I can't put it in front of you running, it isn't done yet.

The long
signal

Twenty-plus years, one through-line: take a hard technical problem, build something real, show it working, and help people adopt it.

1998–2023
Icy Cools · Founder & CEO

Zero to national retail, then an exit

Built a consumer product line into CVS, Walgreens, Walmart and Amazon, ran the supply chain in China in Mandarin, and sold live on QVC for two years. Acquired in 2023.

2002–04
UCLA → Rutgers / UMDNJ · M.S. 2002 · Ph.D. 2004

Machine learning before the hype

An M.S. thesis on machine learning in 2002, then a Ph.D. on mass detection in mammography in 2004. All of it written in C++ with algorithms built by trial and error. No frameworks, no transformers, not much compute. It worked, just not well enough, and it taught me what "production-ready" really costs.

2000s
Systems for my own businesses

Automation before it was a category

Built my own sales, purchasing and shipping automation for selling into national retail vendors, because nothing off the shelf fit. Also wrote automated weighing calibration software.

2012–15
HPI International · CTO

A cold chain for China's blood supply

After the Sichuan earthquake exposed failures in blood logistics, I built the whole system: insulated coolers, embedded temperature electronics, GPS, and a live SQL backend integrated with a hospital information system. Trials ran at Sanxia Three Gorges Hospital and the Wanzhou Blood Center.

2015–20
Stevens Institute of Technology · Adjunct Professor

Teaching engineers to ship

Designed graduate courses from scratch and taught more than 200 engineers. Mentored over 50 startup teams from idea to investor pitch.

2015–22
Beryllus Consulting · Principal

Advisor inside the enterprise

Workflow and technology adoption work with leadership at DHL, Philips, Invisalign and Amersham-Pharmacia, with engineering teams in China, New Zealand and Virginia.

2022–now
Owlstorm · Technical Founder & Forward Deployed Engineer

Embed, build, hand off

Over 30 AI and automation deployments. I sit with the client, architect the stack, build on their data, and stay through production. More than $10M in partnerships closed on working demos.

Status · stopped on purpose

HemoCheck
killed, not shipped

  1. The idea. Estimate hemoglobin from a phone photo of the nailbed. The prototype worked end to end on iOS.
  2. The wall. Existing patents already cover nailbed-based estimation. That's real IP, not a technicality.
  3. The pivot. I tried the inner eyelid instead. Accuracy didn't hold, and there was no labeled clinical dataset to fix it honestly.
  4. The call. Stop. It stays a prototype until there's a clinical partner and a clear IP path.
You can't ship a medical screening tool on vibes.
Open to forward-deployed, applied AI and architect roles · NYC metro or remote

Bring me the
hard problem.

Email wojnicki@owlstorm.ai
LinkedInin/pauljwojnicki ↗ GitHubowlstormai ↗