
Joe Lohr
Senior Laravel Engineer building compliance software and AI tools for car dealerships
Island Lake, Illinois
I've been building websites and web apps for 15 years. At Automotive Risk Management Partners I'm the only developer on the compliance platform car dealerships use, so I work directly with the people who use it: our compliance consultants, leadership and the dealerships themselves. When someone asks for a feature, I meet with them, plan it and build it, then demo it to the consultants, write the docs and answer the support tickets myself. Before that I spent 11 years at TurnKey Digital on a team of five developers and designers, meeting with prospective and current clients online and in person.
Selected work
ARMP compliance dashboard
Laravel, stancl/tenancy, Inertia, Vue, TypeScript
Multi-tenant compliance platform for car dealerships, with a separate database per dealership, five role levels, courses and quizzes, vendor and audit forms, remediation tracking for audit violations, PDF reports, and an AI assistant that answers compliance questions from tenant-scoped data.
ARMP help desk
Laravel, Laravel MCP, Inertia, Vue, TypeScript
Support desk for tickets dealerships open from inside the dashboard. The two apps never read each other's database; they trade signed, retry-safe events in both directions. An MCP server lets staff work tickets from Claude Code, which reads the conversation, checks the dashboard's docs, and drafts a reply that goes out under the staff member's name once they approve it.
ARMP Audit iOS app
Swift, SwiftUI, SwiftData, Laravel
Field app consultants use to record OSHA, body shop, GLBA and deal jacket audits at the dealership, with photos. It works offline, queues changes, and syncs to the compliance dashboard through a Laravel API. A typical audit went from 1–2 hours to 20–30 minutes.
Self-hosted error tracker
Laravel, Horizon, React, TypeScript, shadcn/ui
Accepts errors in Sentry's envelope format, so apps already using a Sentry SDK can point at it without code changes. Repeat errors are grouped into issues by a SHA-256 fingerprint.
autorisknow.com
Laravel, Livewire, Claude API
ARMP's marketing site, with server-side rendering and structured data for AI search, plus AI tools that draft meta descriptions, keywords and other SEO copy.
ARMP CRM
Laravel, Inertia, Vue, TypeScript
Sales CRM for dealership contacts and email campaigns, with AI help for drafting emails and call notes.
Case study
A tenant-scoped AI compliance assistant
- Problem
- Dealership staff ask compliance questions whose answers depend on their own dealership's records, like "Where are we at with employees completing their courses, and who hasn't finished yet?" A generic chatbot can't see those records, and one that could see everything would leak data between dealerships and roles.
- Constraints
- Each dealership has its own database through stancl/tenancy. Users sit at one of five role levels, from admin to employee, and should see only what their role allows. I'm the only developer and I answer the support tickets too, so it had to be simple to maintain.
- Approach
- I gave the model tools to call rather than putting records in the prompt. Each tool runs inside the current tenant and checks the user's permissions before it returns anything, so the model only sees what that user could open in the app.
- Tradeoffs
- Tools take more work than stuffing context into a prompt, and each new kind of question needs a new tool. In exchange, the access rules live in application code, and the prompt has no say in them.
- Result
- The assistant answers compliance questions inside the dashboard, and its answers only draw on data the user can already access.
Experience
Automotive Risk Management Partners
2022 to now
Laravel Web App Developer
I build and run the compliance platform for car dealerships and the tools around it. When a dealership asked for a way to track remediation of audit violations, I met with them, planned it and built it, and they use it today.
TurnKey Digital
2011 to 2022
WordPress Developer
Built custom WordPress sites for local businesses on a team of five developers and designers. I met with prospective and current clients online and in person, and shot product and location photos and video for them.
3,047 contributions in 2026
github.com/jlarmBusiest day: Wednesday, April 22, with 54 contributions