Joe Lohr

Joe Lohr

Senior Laravel Engineer building AI-powered compliance software

Island Lake, Illinois

I've been building websites and web apps for 15 years. Right now I'm the sole developer at Automotive Risk Management Partners, where I build and run the company's multi-tenant Laravel platform that car dealerships use for compliance, including the AI features that answer their compliance questions.

3,038 contributions in 2026

github.com/jlarm

Busiest day: Wednesday, April 22, with 54 contributions

Experience

  1. Automotive Risk Management Partners

    Dec 2022 to Present

    Laravel Web App Developer

    • Sole developer of the company's compliance platform for car dealerships, a multi-database, multi-tenant Laravel app built on stancl/tenancy. I handle the architecture, security hardening, deployment and support.
    • Built the compliance features dealerships use for the FTC Safeguards Rule and other requirements.
    • Designed a five-level role hierarchy: admin, consultant, owner, manager and employee.
    • Built a tool-using AI compliance assistant with tenant-scoped authorization, so its answers only draw on data the user can access.
    • Built an iOS audit app that consultants use at dealerships to record audits and photos, even offline. It syncs to the platform through a Laravel API and gets audits done much faster.
    • Diagnosed why autorisknow.com was missing from AI-generated answers, then shipped server-side rendering, sitemap fixes and structured data.
    • Also built and run the marketing site, a help desk, a sales CRM, courses and quizzes, PDF reports and third-party integrations.
  2. TurnKey Digital

    Mar 2011 to Dec 2022

    WordPress Developer

    • Built custom WordPress sites for local businesses.
    • Shot product and location photos and video for clients.

Projects

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 sole developer, 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.

Skills

Back end
Laravel, stancl/tenancy, Laravel Horizon, Inertia, Livewire, Filament, MySQL, SQLite, WordPress
AI
Claude API, Claude Code, AI tool use, MCP servers, Prompt engineering
Languages
PHP, TypeScript, JavaScript, Swift, Go, HTML, CSS
Front end
Vue, React, Tailwind CSS, Alpine.js
iOS
SwiftUI, SwiftData
Practice
Object-oriented PHP, MVC, Pest, Larastan, Git
Hosting and services
Laravel Cloud, Forge, Ploi, DigitalOcean, Cloudflare, Sentry, Mailgun
Media
Photography, Video
Currently learning
Python