◉ Available — Principal / Director level · Seattle & Remote

Architecting
systems at scale.

Founder & Principal Architect @ CoreVar

20+ years turning complex business problems into platforms that hold up in production — across connected vehicles, cloud & edge, AI/ML, and distributed systems. I build the architecture, the developer tooling, and the teams that ship it.

Where I’ve built CARIAD · Volkswagen Group Lumen MarqMetrix Microsoft Research Gates Foundation Intellectual Ventures
20+
Years in the field
4
US patents
4
Industries architected
Millions
Vehicles supported
Scroll
01 — Measured outcomes

Impact you can put
a number on.

Architecture is only interesting when it moves something real: cost, speed, revenue, or the ability to ship at all. These are the numbers from platforms I designed and shipped.

0
Faster connected-vehicle platform performance than the competing platform in internal benchmarks.
CARIAD · Volkswagen Group
0
Lower cost for that same platform comparison — tens of millions of dollars saved.
CARIAD · Volkswagen Group
0
Faster application development, by replacing physical test cars with a virtual-vehicle platform.
Virtual Vehicles · invented & deployed
0
Annual revenue at maturity from an OEM strategy I defined — from a $5M start.
MarqMetrix · contributed to acquisition
The through-line: every one of these started as a discovery conversation, not a spec. Understanding what the business actually needed is what made the architecture cheap, fast, and durable enough to matter. See two of them rebuilt end to end
02 — Proof

How the numbers
actually happened.

Three rebuilds. In each one the expensive obvious answer was the wrong one, and the win came from noticing work the system did not need to do at all.

CARIAD — Volkswagen GroupMQTTOrleans3 US patents

The reason 186,000x was possible

A connectivity platform joining VW, Audi and Porsche fleets to the cloud for over-the-air updates, navigation and autonomous driving — at a scale where the standard broker design had already run out of room. It is now the platform those fleets actually run on.

The problem

Vehicles connect through a clustered MQTT broker behind a load balancer, landing on arbitrary nodes. A subscriber on one node may need a message published on another, so every message is replicated across the whole cluster.

That fan-out grows with node count, so past a point adding nodes stops buying throughput. Commands were also modelled as jobs an API polled for completion — paying the replication cost and a polling round trip.

The insight

Every vehicle’s topics are namespaced by its own identifier, and no vehicle ever subscribes to another vehicle’s topics.

So for those topics the replication is work that can never pay off. The cluster was spending nearly all its capacity distributing messages to nodes that provably had no interest in them.

The mechanism

On connect, an Orleans grain representing the vehicle is activated on the node holding that connection. The distributed grain directory lets any service address a vehicle by id and be routed straight to the owning node, with no broadcast.

The grain relays down the socket it already holds. Delivery lands in tens of milliseconds, first attempt about 90% of the time; the rest fall back to polling.

BEFORE — replicate to every node REDIS · BLOBSHARED SUBKAFKA N1N2N3N4N5VEHVEHVEHLB SERVICEJOB STORE POLL Every node gets a copy, because none of them knows which holds the subscriber. Replicate to every nodeSHARED BY EVERY NODEREDIS · BLOBSHARED SUBKAFKAN1N2N3N4N5VEHVEHVEHLBSERVICEJOB STOREPOLLEvery node gets a copy, because none of themknows which holds the subscriber.
AFTER — route to the owning node REDIS · BLOBSHARED SUBKAFKA N1N2N3N4VEHVEHVEHLB GRAIN SERVICE TENS OF ms ~90% FIRST ATTEMPT Topics are per-vehicle, so the grain is addressed directly and the mesh stays idle. Route to the owning nodeSHARED BY EVERY NODEREDIS · BLOBSHARED SUBKAFKAN1N2N3N4VEHVEHVEHLBGRAINSERVICETENS OF ms~90% FIRST ATTEMPTTopics are per-vehicle, so the grain isaddressed directly and the mesh stays idle.

The trade: this deliberately breaks standard MQTT cluster semantics, so it applies only to configured topic patterns — everything else behaves as an ordinary broker. Inbound traffic uses MQTT v5 shared subscriptions to load-balance across service instances and lands in Kafka. Constraining the optimisation to the case where it is provably safe is what made it patentable.

The outcome: it was benchmarked against the incumbent and won, and CARIAD then migrated the legacy vehicle platform off HiveMQ onto this one. Connected Volkswagen, Audi and Porsche vehicles reach the cloud through the design I am named as inventor on — tens of millions of vehicles on a mechanism that started as an argument about which messages never needed replicating.

CARIAD — Volkswagen GroupVirtual VehiclesGlobal cloud3D simulation

Six months for a test car. Five minutes for a virtual one.

CARIAD could supply test vehicles, but quoted six months. Virtual Vehicles delivered one in five minutes, in any region, at the cost of running a VM — and cut application development time by 3x.

The precedent

At MarqMetrix I had built an emulator of our spectrometers and the APIs they exposed, so a partner could download it and be writing code in minutes — no shipping hardware, no remote rig, and far fewer security and stability problems.

The unlock was a question rather than code. They were integrating over an MQTT library, so I asked whether the library itself actually mattered to them. It did not — so we shipped a .NET package that spoke to the emulator directly.

Six months of stalled integration became one week. They flew a developer to Seattle to validate against real hardware; it passed in two hours.

The problem

I went into Volkswagen knowing physical cars would not scale. They could get us vehicles, but the quote was six months — and a fleet is still shared, scarce and in one building, so access serialises: developers wait, and automated testing barely happens because it needs a car too.

Pure local emulation could not answer it either. You cannot emulate a whole vehicle's hardware on a laptop, and autonomous-driving and sensor work needs a world — something to drive through, collide with, and read sensors against.

The move

A global service where you spawn a vehicle in your own region from a CLI — the same VW.AC command line wired into the build and test pipelines. Spawning dedicates micro-VMs emulating the compute ECUs and the services running on them, networked privately to each other the way the in-vehicle network is.

The vehicle is also placed in a 3D world, so sensors and collisions produce real data. A UI lets you pull a handle, unlock a door or switch on lights — and those actions propagate messages across the ECUs exactly as a real car would.

A vehicle arrives in five minutes instead of six months, and costs what the VMs cost — not a production vehicle, let alone one with a test harness built into it.

BEFORE — queue for a physical carSIX MONTHSTO PROCURE A TEST CARTEST CARTEST CARONE LOCATIONQUEUEWAITINGDEVDEVDEVDEVDEVDEVELOPERS WORKING AT ONCEA shared fleet in one building, so access serialises and testing stays manual.Queue for a physical carSIX MONTHSTO PROCURE A TEST CARTEST CARTEST CARONE LOCATIONQUEUEWAITINGDEVDEVDEVDEVDEVDEVELOPERS WORKING AT ONCEA shared fleet in one building, so accessserialises and testing stays manual.
AFTER — spawn one per developerFIVE MINUTESAT VM COST, NOT VEHICLE COSTECUECUECUECUPRIVATE NETWORK3D WORLDVIRTUAL VEHICLEEUUSAPACVW.ACDEVDEVDEVDEVDEVDEVELOPERS WORKING AT ONCEEmulated ECUs on their own network, inside a 3D world, in any region, on demand.Spawn one per developerFIVE MINUTESAT VM COST, NOT VEHICLE COSTECUECUECUECUPRIVATE NETWORK3D WORLDVIRTUAL VEHICLEEUUSAPACVW.ACDEVDEVDEVDEVDEVDEVELOPERS WORKING AT ONCEEmulated ECUs on their own network, inside a3D world, in any region, on demand.

Why it worked: the constraint was never fidelity, it was availability and lead time. Once a vehicle became something you spawn rather than something you book, development, automated testing, autonomous-driving training data, demos and infotainment UX all stopped competing for the same few cars. The same move as the MarqMetrix emulator, at fleet scale.

InvisoMicrosoft engagementAzure

The month-end bottleneck that wasn’t a database problem

Removed a 30-minute-to-two-hour month-end stall — and stopped a permanent premium-SKU database bill before it started.

The problem

Sales teams uploaded license inventory spreadsheets, all of them in the same few days at month end. Every row was one software license; all anyone wanted was a count per product.

The app was cookie-cutter: web front end, .NET middle tier, SQL back end, with the business logic exhaustively encoded as stored procedures. Uploads went through the middle tier, held whole in memory, then pushed to blob storage — so the progress bar finished and users still waited. Then every row of every workbook was bulk-inserted into one shared table and summarized in SQL.

The trap

I identified SQL as the bottleneck. The PM’s fix was to scale the database SKU up for month end and back down after — which in practice means copying the database, with the replication lag and cutover risk that brings.

Plan B was to leave it on the expensive SKU permanently, on the reasoning that it was Microsoft’s cloud and Microsoft’s project, so the cost wasn’t real. I had to explain that every project carries its own cloud budget. Neither plan touched the actual problem.

The move

Upload straight to blob storage and take the middle tier out of the data path entirely. A new blob raises an event onto the service bus. A pool of background workers picks up the event and streams the workbook.

Because only the summary mattered, the workers tally each license as the row goes by and write a single summary record at the end. The raw rows never enter SQL, and the shared table disappears — the data was per-upload all along.

BEFORE — every row lands in SQL 30 MIN – 2 HRS AT MONTH END .NET TIERHELD IN RAMBLOBSQLEVERY ROWONE SHARED TABLEBROWSERBROWSERBROWSER STILL WAITING The middle tier holds the whole file, then every row of every workbook is inserted. Every row lands in SQL30 MIN – 2 HRSAT MONTH END.NET TIERHELD IN RAMBLOBSQLEVERY ROWONE SHARED TABLEBROWSERWAITINGBROWSERWAITINGBROWSERWAITINGThe middle tier holds the whole file, thenevery row of every workbook is inserted.
AFTER — rows stop at the workers 1 INSERT / FILE WORKERS SCALE, DB DOES NOT BLOBDIRECTSERVICE BUSEVENT / FILEWORKERWORKERWORKERWORKERS ×NSQLONE ROWBROWSERBROWSERBROWSER Workers tally each row as it goes by, so only the summary reaches the database. Rows stop at the workers1 INSERT / FILEWORKERS SCALE, DB DOES NOTBLOBDIRECTSERVICE BUSEVENT / FILEWORKERWORKERWORKERWORKERS ×NSQLONE ROWBROWSERBROWSERBROWSERWorkers tally each row as it goes by, so onlythe summary reaches the database.

Why it worked: the load moved onto something horizontally scalable. When month end gets busy you add workers and take them away after — and SQL, now receiving one small insert per file, stopped being the constraint at all.

InvisoData pipelineC#

24 hours to 52 seconds, by never loading the file

Four to five CSVs, 30–100 MB each, joined on a shared key into one output. Two developers had already had a run at it.

The problem

The first implementation leaned on elaborate LINQ queries and took about 24 hours to chew through ~150 MB. A second developer got it to 12 hours.

Both shared the same root flaw: load everything into memory, then do clever parsing on top. The work scaled with total input size, so the only way out was a bigger machine.

The move

Pick one file as the lead. Read a fixed window of it — on the order of 10,000 rows — into a dictionary keyed on the join column. Then stream every other file start to finish once, completing any record that matches the window.

Advance to the next window in the lead file and repeat. When the lead file is exhausted, every combination has been seen.

The result

52 seconds for the same 150 MB — marginally above what it cost to read and write that much data on the drives of the day. The compute bottleneck was gone; what was left was the disk.

Memory is now bounded by the window, not the input. The same code handles multi-gigabyte files that would have taken the earlier versions off a cliff.

BEFORE — everything residentCSV ACSV BCSV CCSV DCSV EMEMORYALL FILESLINQREPEATED PASSESOUTPUTMEMORY GROWS WITH INPUT SIZEWork scales with total input, so the only lever left is a bigger machine.Everything residentMEMORYALL FILESLINQREPEATED PASSESOUTPUTCSV ACSV BCSV CCSV DCSV EMEMORY GROWS WITH INPUT SIZEWork scales with total input, so the onlylever left is a bigger machine.
AFTER — a window slides, the rest streamsLEAD FILEWINDOW10,000 ROWSMATCHCSV B-EOUTPUTMEMORY BOUNDED BY THE WINDOWOne window at a time, so the same code handles a file of any size.A window slides, the rest streamsLEAD FILEWINDOW10,000 ROWSCSV B-EMATCHOUTPUTMEMORY BOUNDED BY THE WINDOWOne window at a time, so the same codehandles a file of any size.
First attempt~24 hours
Second attempt~12 hours
Rebuilt52 seconds
Log scale — linear would render the final bar invisible. That is the point: roughly 1,600x faster than where it started.
03 — Track record

Where the work
happened.

Automotive, scientific instrumentation, global health, research, and enterprise IT. Click any role to open it up.

  • Founded and run a cloud-messaging product company — owning the product strategy, the architecture, and the code.
  • Built and ship CoreMQ, a cloud-native MQTT broker for connected products, and CoreStream, Kafka-compatible event streaming that customers operate inside their own Kubernetes.
  • Sell and support both commercially, with enterprise support plans starting at $6,000/year.
  • Deliver applied-engineering services in AI systems and agents, cloud application development, and connected/distributed systems.
MQTTKafkaKubernetesCloud-nativeAI agentsProduct & P&L
  • Led architecture development, executive-level technical storytelling, and customer engagements for Lumen Validated Designs — positioning network capability inside broader cloud, security, AI, and edge solutions.
  • Shaped repeatable reference architectures for the Connected Ecosystem initiative, integrating Lumen services with partner technologies around defined customer outcomes.
  • Ran discovery sessions and architecture reviews with enterprise customers, account teams, and industry specialists — translating modernization opportunities into solution direction.
  • Built the customer-engagement frameworks and solution narratives that supported consultative selling beyond traditional connectivity.
Reference architectureEdgeAISecurityCustomer discovery
  • Architected and launched a horizontally scalable vehicle-connectivity platform for millions of vehicles. Internal benchmarks: 186,000x faster and 480x lower cost than the competing platform — saving Volkswagen tens of millions of dollars.
  • Invented and deployed the Virtual Vehicles platform across continents, removing the dependence on physical test cars, raising test automation, and accelerating app development 3x.
  • Created the VW.AC command-line interface and wired it into build and test pipelines, giving developers repeatable, self-service access to the platform.
  • Mentored a cross-functional group of architects and engineers; established the architecture patterns and engineering practices behind product quality and operational efficiency.
Connected vehicleKubernetesKafkaAzureAWSMQTTTerraformDeveloper tooling
  • Architected the cloud and device applications that collected spectral data from custom instruments and delivered it to downstream analytical systems.
  • Built CI/CD and remote-update capability for field devices, joining product releases, customer systems, and cloud services into one delivery process.
  • Redesigned manufacturing software setup from several hours to minutes, making device production repeatable.
  • Defined the OEM product and technology strategy that generated roughly $5M annually in its early years and ~$10M annually later.
  • Built the core technology sought by the scientific-instrumentation company that acquired MarqMetrix — contributing directly to the value of the transaction.
  • Built, led, and mentored a software engineering team of up to six covering instrument firmware, customer-facing applications, and cloud infrastructure — owning hiring, technical direction, and delivery accountability.
IoTEdge devicesSpectroscopyCloudCI/CDOEM strategy
  • Established the reusable application architecture and engineering components behind line-of-business solutions, while improving delivery and customer-engagement practice.
  • Built, led, and mentored development teams of up to six executing enterprise engineering strategy — owning hiring, technical direction, and delivery accountability.
  • Invented and engineered a patented mobile database technology that outperformed competing approaches.
  • Presented Windows Apportals guidance at national Microsoft and technology conferences.
Mobile dataPatented IPReusable frameworksPublic speaking
  • Led architecture and engineering engagements for Microsoft Research, the Bill & Melinda Gates Foundation, TIBCO, Intellectual Ventures, Wells Fargo, and Inviso.
  • For Intellectual Ventures, architected HPC integration that took epidemiological simulation throughput from hundreds to hundreds of thousands of runs per day.
  • For the Gates Foundation, architected a grants and contract management application with reusable cross-platform controls and offline synchronization.
  • For Microsoft Research and Wells Fargo, delivered decision-tree visualization, executive dashboards, secure SharePoint integration, mapping, and reusable frameworks.
HPCData visualizationOffline syncEnterprise integrationMentorship
04 — How I work

The requirement is
never the request.

Customers describe what they want using the only vocabulary they have. If you build exactly what they said, you ship the wrong thing perfectly. Most of the value I add happens before anyone writes code.

“I want an iframe that shows all the latest features since the last time you came into the app.”
What he actually wanted
A panel that appears on load and lists what changed since your last visit. Not an iframe — that was just the only web term he'd picked up from developers he'd worked with before.
The PM had already written down “needs an iframe.” Once that reaches a backlog it becomes a requirement nobody can argue with, because it is now what the customer asked for. One question upstream saved a sprint of building the wrong control.
“Can you add zoom in and zoom out to the dashboard?”
What was actually wrong
Icons were running off the edge of his screen. I asked what resolution he was running. 1024×768.
The feature request was a workaround for a hardware problem. We walked down to Best Buy and solved it for $180 instead of shipping a zoom control into a product that never needed one.
Age 8QBasic. Text prompts first, then painting to the screen and writing visualisations.
Age 14Built DHTML and JavaScript sites — the start of 28 years writing JavaScript.
Age 16Wrote waveform visualisations in C and C++ for the Sonique music player.
Age 18First professional software offers, straight out of high school. No CS degree.
2002 → nowDiploma in Computer Science, Northshore Homeschool Network. Engineer to enterprise architect across global health, automotive, telecommunications and enterprise.
Jeff Scherrer

“Thank you. We’ve been talking about this for two hours. I wish you’d come in sooner.”

— after being pulled into a meeting to settle an architecture question, Inviso
05 — How I lead

Argument is slower
than evidence.

Three that stuck with me: one hire, one team I had no authority over, and one decision I lost on the whiteboard and won on a Monday morning.

Up to 6Engineers managed directly — hiring, technical direction, delivery accountability
Multi-regionArchitects and engineers mentored across product and platform groups
FounderOwns strategy, roadmap, pricing and go-to-market at CoreVar
Escalation pointBetween engineering teams and Volkswagen Group stakeholders
Conference speakerPresented architecture guidance at national Microsoft and technology conferences
Hiring

I hired for what he could become

An engineer I hired came from places with product managers, written user stories and a lot of scaffolding. We were a small, deliberately dev-centric company with none of it. On paper that is a mismatch.

The first weeks genuinely confused him. He adapted quickly, and started picking up work and running with it unprompted — partly, I think, because that is what he saw modelled rather than described.

He became one of the strongest self-starters there. We are still in touch.

Influence without authority

The architecture team had a reputation problem

Long before I arrived, the enterprise architecture team had a name for talking down to engineers. That is not a technical problem, and no amount of better architecture was going to fix it.

I was made the liaison between architecture and engineering because of how those conversations went when I had them. Then I mentored my own peers on the team on how they communicated — a harder conversation than mentoring a report.

Trust with the engineering teams is what made the architecture function effective.

Changing direction

Nobody believed we should build our own broker

At Volkswagen the team wanted an off-the-shelf MQTT broker. I thought we could do far better ourselves, and I could not get it across. I drew the diagrams. I explained the routing. It did not land.

So I stopped arguing and built it. A working prototype on an actor runtime, demoed the following Monday.

20,000 messages a second on ten VMs, before any tuning. That ended the debate, and became the platform above.

06 — What people say

The part I cannot
write myself.

Jeff is a talented architect and software engineering expert who actively seeks out and drives solutions for high-value strategic projects. I worked alongside him for several years at CARIAD and found him to be incredibly smart and capable.

Every time I would speak with him, I would learn something new, and he is constantly building his skills, learning and trying new technologies. He’s one of the first people I’ve worked with to make productive use of generative AI technologies.

When we faced a massive challenge replacing a vendor-provided platform, he drove a solution that was scalable and will end up saving the company tens to hundreds of millions of dollars. He would be a valuable contribution to any company looking to up its software capabilities.

Rob Gibson Senior Principal Software Engineer, CARIAD Worked with Jeff on the same team
07 — What I bring

Strategy on top.
Hands on the keys.

I still write production code. The architecture is better when the person drawing it has to live in it.

/ 01

Leadership & strategy

Technical strategyArchitecture standards Team mentoringCross-functional leadership Customer discoveryTechnical storytelling Executive communication
/ 02

Enterprise architecture

Reference architecturesModernization roadmaps Platform strategySolution architecture Engineering standardsCapability discovery
/ 03

Cloud, AI & connected systems

AzureAWSGCP KubernetesTerraformKafka LLMsTensorFlowPyTorch IoTMQTTTelemetryEdge computing
/ 04

Engineering & delivery

C#C++Java JavaScriptTypeScriptGo RustPythonNode.js CI/CDGitHub ActionsAzure DevOps DockerDeveloper platforms
08 — Invention

Named inventor.
Four times.

Three are one family, filed the same day with the same eight inventors: the routing design behind the connected-vehicle platform, split into the general scheme and the one-to-one and one-to-many cases. The fourth is a mobile database engine, filed seven years earlier and mine alone.

US PATENT · MAR 2026
Messaging system with one-to-many communication
US 12,580,880 B2
Volkswagen AG & CARIAD SE. Publish-subscribe fan-out that reaches only the nodes with a subscriber.
US PATENT · JAN 2026
Messaging system with one-to-one communication
US 12,537,784 B2
CARIAD & Volkswagen AG. Addressing a single vehicle directly, without broadcasting to the cluster.
US PATENT · JUL 2025
Messaging system for computing devices
US 12,363,059 B2
CARIAD. The underlying scheme: virtual entities on distributed nodes, routed rather than replicated.
US PATENT · MAR 2020
Database engine for mobile devices
US 10,585,871 B2
Inviso Corp. Sole inventor. Splits storage across files so mobile reads and writes stay fast.
SPEAKING
National conferences
Presented Windows Apportals and enterprise application architecture guidance at Microsoft and industry events.

Visualization and prototyping tools I work in when an idea needs to be seen before it can be funded.

09 — Also building

I don’t stop at
the whiteboard.

Things I build outside of client and employer work. Some are products, some are experiments, all of them keep me writing code.

CoreMQ & CoreStream

Shipping

The two commercial platforms behind CoreVar: a cloud-native MQTT broker for connected products, and Kafka-compatible event streaming that customers run inside their own Kubernetes.

Mushmo

Launching soon

A karaoke hosting app — singer rotation, queue management, and a show-night experience built around a heavily visual front end.

Parasafe

In development

An in-progress product at parasafe.com.

Drone venture

In design

Early-stage work designing a drone company — hardware, platform, and business model together.

CAD & 3D printing

Ongoing

Physical prototyping at home. Parts designed in CAD and printed, which keeps the software-to-hardware loop honest.

10 — Let's talk

Got a hard
systems problem?

Open to Principal and Director-level architecture roles — remote, or on-site around greater Seattle.