Grant Denney

Product Direction · Building with AI · Client-Facing Delivery & Sales

Me and AI build things that ship. 2,637 active installs are running them right now.

Two plugins on an official, code-reviewed marketplace, counted daily by its own API. Before that, keeping 100-person film crews on their testing cadence, where one missed deadline stopped the shoot, and flying out to run the testing in person at corporate events from Boston to Bali.

Papillion, NE (Omaha metro) Remote, or on site and travelling 402-213-8153

What I’m after

The job I’m looking for

It’s the question I get asked more than any other, so it’s up here instead of at the bottom. Everything below this is the evidence for it.

I want to own the product and move between direction, building, UX and growth. I’m also the one you can put in front of the customer, because most people who can ship can’t hold that room, and most people who can hold the room can’t ship.

First choice

Product EngineerTechnical Product Owner

Also open to

Solutions EngineerImplementation Consultant AI Solutions SpecialistImplementation Engineer Technical Account ManagerCustomer Success Engineer AI Enablement Lead

The second row when the job comes with real say in what gets built.

Level

Associate to mid, not senior. Six years running my own company reads as senior to me and as unproven to a screener. I’d rather name that than argue with it.

Type

Full time, or contract to start. A contract is a work trial that pays, and I’m happy to be judged on one.

Where

Papillion, Nebraska. Remote, and on a plane when it matters. I ran testing deployments on site in Boston, Hawaii, San Diego and Bali, so travel is something I want, not something I’ll tolerate.

The gap

Nothing I’ve shipped calls a model API yet. I build with AI every day, which is a different claim, and I won’t blur the two. That’s what I’m building next, and it shows up here when it’s real.

“PURE Sets was confident sending Grant in the field and knew that if we wanted the job done right, he was the ‘go-to’ team member to get it done. … His ability to communicate effectively with C-suite executives, high level music and film talent, and studio VIPs was outstanding.”

Selected work

Things I built that people actually use

Most of these went the whole way: scoped, built with AI development tools, verified, shipped and still maintained. The last one is still a prototype, and it says so.

Live · Java · Official RuneLite Plugin Hub

Personal Space

Old School RuneScape only draws one player per tile. Stand six people on the same square at a bank and five of them disappear. Personal Space draws the ones the game hides, spread out around their tile, so a packed room actually looks packed.

  • ~171k views, 1.4k upvotes and 238 comments in its first two hours when I posted it to r/2007scape. Overwhelmingly positive, and people were installing it that day
  • Cosmetic only, on purpose. Jagex forbids moving the click zones of 3D components, so nothing real moves: not positions, not click targets, not overheads. Only what gets drawn
  • Crowds that behave. Four formations, plus rules for bank counters, anvils, fires and riverbanks so people line up facing the thing they’re using instead of standing inside each other
  • Every version on the Hub went through its own review. Each release needs a fresh pull request into runelite/plugin-hub and another maintainer pass. A merged one can’t be reused
Why the obvious fix failed, and what actually worked

Actors draw sorted but without depth, and the GPU plugin batches a whole frame of them into one pass with depth writes off, so whoever is drawn later ends up on top however far away they are. Moving a model toward the camera does nothing. Finding that out meant decompiling the client. The fix was re-sorting the draw pass itself.

Active users
2,549right now
Version
1.9.35on the Hub
Last updated
20 Oct 2026last push
Live from RuneLite’s plugin-hub API
JavaRuneLite APIGradleJUnitGit & GitHub
Varrock West Bank on 117 HD. 39 people on 5 tiles.
Varrock West Bank on 117 HD. 39 people on 5 tiles.
A packed Grand Exchange.
A packed Grand Exchange.
34 people at the Varrock anvil.
34 people at the Varrock anvil.
One player fly fishing, then 27.
One player fly fishing, then 27.
A Varrock doorway by a fire.
A Varrock doorway by a fire.
Hover shows who, with an arrow to their real tile.
Hover shows who, with an arrow to their real tile.

Live · Web app + RuneLite plugin · Open source

PocketGE

A trading terminal for the Old School RuneScape Grand Exchange, in two halves that talk to each other. The plugin is listed on the Plugin Hub as PocketGE Trading Terminal.

pocketge.com is the screen you plan on: live margin scanning with the 2% transaction tax in every calculation, volume-profile charts from one day out to five years, watchlists with push alerts and portfolio tracking. No login, no accounts, and every piece of user data stays in the browser.

The RuneLite plugin is the half that watches the real thing. It records incremental Grand Exchange fills across all 8 offer slots, matches sells against earlier buys FIFO per item, and books profit net of the same 2% tax, so the number on screen is the real one.

  • The two halves share a watchlist over a loopback-only bridge on your own machine. Mark an item in game and it is already there on the site. Nothing in that exchange leaves the computer
  • The tax rule is implemented identically in both codebases, so the website’s projected profit and the plugin’s booked profit agree
  • Merged into the official runelite/plugin-hub, which requires maintainer code review before anything ships, and a fresh review for every release since
  • Tested against the real client, not a stub. CI compiles the plugin and runs the suite against RuneLite itself on every push
  • The web half is plain HTML, CSS and vanilla JS, with no framework and no bundler, against the public OSRS Wiki price API, which is the only thing either half calls out to
Size, tests and surface area

21,278 lines of Java behind 287 JUnit tests on the plugin side. 11,018 lines of JavaScript on the web side, plus a page per item: 1,895 URLs in the sitemap.

Plugin installs
88right now
Version
0.7.1on the Hub
Last updated
21 Oct 2026last push
Live from RuneLite’s plugin-hub API

A far smaller number than Personal Space, and it should be: this one is for flippers rather than everyone who stands in a bank, and it never had a Reddit post behind it. It has climbed steadily off a much smaller base since I started recording, faster in percentage terms than Personal Space. It moves a few either way week to week. The live number above is the number.

JavaScriptJavaPWAREST / JSONService WorkersJUnitGradle
PocketGE open in a browser: a price chart with target buy and sell levels, a volume histogram, and a favourites watchlist down the right
The site: live chart with target buy and sell levels.
RuneLite with the Grand Exchange open and the PocketGE sidebar beside it, the same live sell offer ringed red in both
The plugin: RuneLite with the Exchange open beside it.
The plugin sidebar and the website side by side, showing the same watchlist items with a LINKED badge
The watchlist, linked live between the two.
The plugin's flip card showing a flip score, buy and sell prices, projected profit and the capital required
The flip card: score, buy and sell, capital tied up.
The plugin's stats header: session profit, unrealized profit, flips made, ROI, hourly profit and portfolio value
Session stats: profit, ROI, gp per hour.
A one-month price chart with the volume profile overlay turned on
A month of Gold amulet, with the volume profile on.
The plugin's flip history listing recent completed flips with profit per item
Flip history, newest first.
The site's analyst rating grading the current price against the selected timeframe's range
Analyst rating against the selected timeframe.

Prototype · TypeScript + PixiJS · AI-assisted

RealmForge

A dark-fantasy mobile RPG: make a character, walk a hand-laid town, build your own plot piece by piece, send expeditions out for loot. It runs in a browser, installs to a phone home screen, and builds an Android APK on every push.

  • Playable eight days after the first commit, 27 September to 4 October 2026
  • The renderer is hand-written. Isometric projection, A* pathfinding, depth sorting, an additive light layer with flicker, drifting fog. All on PixiJS, with no game engine and no physics library
  • A builder with 39 placeable piece types, five plot sizes, multi-storey construction, terrain height editing and autosave; plus a town of 15 buildings and 202 props with named residents
  • Procedural audio with no audio files: a generative lute songbook that re-ornaments and humanises its timing on every performance
  • What’s actually mine: the design document, every call about what the game should be, and the judgement about what was worth building. The art is AI-generated and the code came out of AI pair-programming. That’s the point. This is what the rest of this page is describing, done at speed
How it checks its own work

It checks its own work. A layout validator fails the build on props over cliffs, unreachable doors or sealed pockets; a balance harness re-runs the real dice resolver under exact DP and Monte Carlo against the design document’s own target tables

TypeScriptPixiJS 8ViteCapacitorPWAGitHub Actions

A prototype, not a release. There is no store listing, no backend and no real multiplayer. The town is simulated and the realms are hand-built. Saying so is cheaper than being found out.

The High Kingdom at night.
The High Kingdom at night.
The town square, with a tap card on an NPC.
The town square, with a tap card on an NPC.
The Obsidian Spire, one of the visitable realms.
The Obsidian Spire, one of the visitable realms.
Hall of Champions, generated from the game's own data.
Hall of Champions, generated from the game's own data.

How it actually goes

Six releases where my first answer was wrong

Building the thing is the easy half. This is the half after it: the release where I deleted a feature I’d spent a dozen versions refining, and the one where a Hub reviewer found four regressions in my own privacy fix. Every quote is my own note in the code. Versions marked in review are written and waiting on a maintainer.

  1. Making the crowd move out of your way

    Personal Space · 1.8.17 → 1.8.50

    What I shipped. If someone would hide you, they step aside. Then a dozen releases narrowing it: nobody steps aside twice, nobody moves for a player just passing through, nobody is pushed onto your tile.

    Why it was wrong. It kept getting narrower because the idea was wrong, not the edge cases. My note in the commit that removed it: people moving aside for you “parted a crowd like the sea wherever you stood”.

    What I did. Deleted it, and 334 lines of tests with it. Natural front-to-back became the default, “Draw me in front” became a switch you turn on, and seeing yourself in a crowd became the draw order’s job instead of the crowd’s. The world stopped rearranging itself around one player.

  2. A filter that hid the body but not the voice

    Personal Space · 1.8.41 → 1.8.53

    What I shipped. An optional filter that hides players under a combat level, so the bots stacked around the Grand Exchange stop covering the people you came for.

    Why it was wrong. Hiding something is not the same as not noticing it. Again from my own note: a hidden casino bot’s “spam went with its body and its overhead text, but still filled the chat box”.

    What I did. Followed it the whole way: overhead chat first, then the chat box itself through chatFilterCheck, the same hook RuneLite’s own Chat Filter uses, so it behaves like the thing players already know. Then rewrote the tooltip to say plainly what it is for, because a filter nobody understands gets left off.

  3. People sliding instead of walking

    Personal Space · 1.8.43 → 1.9.7

    What I shipped. Spacing a crowd out means moving people, and moving them meant they slid to their new spot. Correct positions, wrong everything else.

    Why it was wrong. You notice it immediately and you can’t stop noticing it. People leaving a crowd moonwalked. Small corrections read as twitching.

    What I did. Five passes, not one. Killed the moonwalk, then the tiny slides, then made arriving and leaving a real walk, then made that walk survive a crowd big enough to hide it. Nobody would have filed a bug for any of this. It just looked wrong.

  4. A switch that didn’t mean what you’d assume

    PocketGE · 0.7.1

    What I shipped. A loopback bridge so the plugin and the website share one watchlist, with an advisor you can switch off.

    Why it was wrong. The Hub reviewer found four regressions in my own network changes. Worse, the switch didn’t do what its name promises: turning the advisor off left the plugin still talking to the network.

    What I did. Made the advisor switch be the network switch, so with it off nothing is requested and the card redraws from prices already held. Locked the bridge to a PocketGE origin and the loopback host so a web page can’t talk its way in. Then wrote ShutdownQuietTest, whose only job is to prove nothing speaks after shutdown, and rewrote the README and the Hub submission so the docs say only what is true.

  5. Counting the same purchase twice

    PocketGE · 0.7.0 → 0.7.2 in review

    What I shipped. A ledger that books your Grand Exchange fills, so the profit on screen is the real one rather than an estimate.

    Why it was wrong. That number is the entire product, and I kept finding ways it could lie. A logout, a world hop or a login could make an offer book everything it had already filled a second time. Switching character did it again, in a different shape.

    What I did. Dated every fill by the Exchange’s own event, matched which events RuneLite’s own Grand Exchange plugin ignores and why, and wrote GeReplayTest to replay a logout and a world hop against the ledger. 112 lines of test for one number that has to be right.

  6. Inventing colours the game already had

    PocketGE · 0.7.2 in review

    What I shipped. My own colour scheme for what a Grand Exchange slot is doing, hand-copied into the in-game grid and again into the settings legend.

    Why it was wrong. Two hand-written copies of a colour drift apart. And a player already knows what the Exchange’s own colours mean, so a second vocabulary for the same three states is work I was making them do for nothing.

    What I did. Three meanings in the game’s own language, grey working, yellow needs you, green done, defined in one place and painted from that one definition everywhere it appears. A border only when there is something to say.

The one I am building now

SEND IT: Red Light Runner

An arcade speedrun on a stand-up e-scooter. One straight 805 metre run down a parody Hollywood Boulevard, ten cross streets, traffic that does not care about you, and a ragdoll crash with an itemised hospital bill when it goes wrong. It runs in a browser and on a phone.

In development · TypeScript + three.js + Rapier · AI-assisted

A crash that films itself

Started 1 October 2026 and still being built. The idea is one tap after a wreck that turns the crash into a finished vertical video, which is also why the hardest work in it went into making a replay provably identical to the run it came from. src/. The busiest day was 58 commits.

  • It ships no art and no sound effects. The whole city, the cars, the ten kinds of pedestrian, the rider, every texture, every scream and crunch and horn, is generated in code. The entire public/ folder is seven files: a web manifest, two readmes and four MP3s of CC0 music
  • Determinism is the design constraint. The simulation advances only in exact 1/60 second ticks with render interpolation, and every traffic, pedestrian and signal stream runs on seeded RNG whose state is a plain number, so the whole traffic sim can be snapshotted and restored in under a millisecond on every retry
  • CLIP THAT re-shoots the crash rather than recording the screen. The game stores only what the simulation read each tick, 25 bytes, then re-runs the attempt later with a vertical camera and films it as a finished 9:16 MP4 with captions and music. Encoded in the browser through WebCodecs, walking down four codec rungs to whatever the device supports
TypeScriptthree.jsRapierWebGL2 / GLSLWebCodecsViteCapacitor

In development, and not on any app store. The art is generated and the code came out of AI pair-programming.

The game on Hollywood Blvd: a packed scramble crosswalk, buses and cars, the rider in the road, hills with a SEND IT sign behind
Hollywood Blvd, with the next red light 20 metres out.
Mid-run at 34 MPH crossing an intersection, an achievement bursting in confetti
34 MPH, and an achievement lands mid-crossing.
A CLOSE CALL banner as an SUV cuts across the rider at a red light
The traffic is a microsimulation, not a timed loop.
A crash replay with the rider sprawled across a taxi and the scooter skidding away
Ragdoll on Rapier, repeatable to the tick.
The crash card showing bones broken out of 206, a dead-o-meter verdict and a six figure damage bill
Bones broken out of 206, and the bill.
The finish card with a personal best, a bronze medal, the damage bill and initials entry
Medals are par times, Trackmania style.
The leaderboards and achievements panel for Level 1
Fastest times, biggest bills, ten achievements.
A movie premiere marquee and red carpet on the boulevard, with the SEND IT sign on the hills behind
Every sign and shopfront is invented.

What is in Level 1 Hollywood Blvd, 805 metres

The run
10 cross streets13 stunt jumps9 grind lines3 side routes
To find
6 letters: S E N D I T5 hidden helmets10 achievements
Traffic
CHILLRUSH HOURMAYHEMA board each
Crashing
39 named landing targets206 bonesA live bill

Honest status

It is a prototype and it says so. Playable in a mobile browser from this site. The art is generated and the code came out of AI pair-programming. An iOS release is prepared and not started: there is a Capacitor shell, build pipelines, icons and a listing draft, none of it compiled on a Mac or run on a phone, because the remaining steps need a developer account, a device, or both. The name has not been cleared against existing apps. A world ranking service is written and tested and switched off in the build, having never been deployed.

My own company

Scooty Wraps

I own it, and I make the templates. Six years of it, sold both to customers direct and to businesses: Segway comes to me for one-off marketing work, and retail kits go out for Segway/Ninebot and Apollo models.

It is paused at the moment, by choice. I would rather be building apps, and that is where my time is going. The company is still mine and it can be turned back on.

Apollo Phantom in camo. Full wrap, cut to the part.
Apollo Phantom in camo. Full wrap, cut to the part.
A tie-dye Ninebot that ended up in Taupō, New Zealand.
A tie-dye Ninebot that ended up in Taupō, New Zealand.
A matched pair. The everyday job, two at a time.
A matched pair. The everyday job, two at a time.
Red kart from above - the livery panels wrap the whole body
01 Red kart from above - the livery panels wrap the whole body
Side pod and event decal, printed on our template
02 Side pod and event decal, printed on our template
Yellow kart, full side profile
03 Yellow kart, full side profile
Red kart on the deck, show car parked behind
04 Red kart on the deck, show car parked behind
Blue colourway - same template, different artwork
05 Blue colourway - same template, different artwork
Overhead: the wrap has to survive a full day of public driving
06 Overhead: the wrap has to survive a full day of public driving
Rear three-quarter, lined up at the sim rigs
07 Rear three-quarter, lined up at the sim rigs
Cut lines follow the hardware, not the sticker
08 Cut lines follow the hardware, not the sticker
The karts ran all day against the racing sims
09 The karts ran all day against the racing sims
Blue kart in the paddock between runs
10 Blue kart in the paddock between runs
Yellow and red side by side - two variants off one template
11 Yellow and red side by side - two variants off one template
Out on the lawn at the activation
12 Out on the lawn at the activation
The event the karts were built for: Red Bull Showrun Houston
13 The event the karts were built for: Red Bull Showrun Houston
01 / 13

Red Bull Showrun Houston

Developed the multi-panel wrap kit templates and supplied the vinyl kits for the Segway go-karts, so Segway and Red Bull could produce multiple color variants. Their designer applied logos and artwork on top of the templates.

Segway / Ninebot

Segway reaches out directly for one-off marketing jobs, including 10,000 neck wraps for a corporate scooter giveaway. Also produce retail kits for Segway/Ninebot models and Apollo Scooters.

Mike Evans, Buccaneers

Partnered with the marketing and gifting contact for the Buccaneers wide receiver to produce custom-wrapped scooters as teammate gifts, travelling to Tampa to complete the wraps on-site.

Jonas Brothers concert

Worked with the event center hosting the show to produce wrapped scooters used around the stadium.

Exact-fit templating

3D scanning and digital cutting software turn complex hardware geometry into templates that actually land on the part. Cut lines follow the chassis, not the sticker.

Shark Tank

Advanced to the producer video-interview stage of ABC’s Shark Tank application process.

Segway Ninebot G30P Full coverage 64 cut panels Production file

The part nobody sees

A scooter is a bad shape to wrap. Compound curves, cutouts, hardware in the way, and a deck that has to survive being stood on. The product isn’t the vinyl. It’s the template underneath it.

This is a real production cut file: one G30P, sixty-four panels, each one shaped to the piece of the scooter it covers. 3D scanning gets the geometry, that scan is converted from 3D to flat 2D panels, and the result is a kit that lands on the part without trimming, stretching or guesswork.

It’s also why brand work is possible at all. Hand a designer a template that already fits and they can put any artwork on top of it, which is exactly what Segway and Red Bull did with the go-karts.

Straight off the production drive: 29 consecutive job files, including the Red Bull go-karts

Models
Ninebot G30P (Max)Ninebot G30LPSegway GoKart Pro
Coverage
Full wrapHalf wrapMulti-panel kart kits
Finishes
MatteGlossReflective
Print work
Solid colorwaysMarbleAnimal printCustom artworkBrand liveries

Sales & client-facing work

The other half of the job

Every product on this page had to be explained to somebody before it was worth anything: to a buyer, a brand, a crew, or a room full of people who did not ask for a technical briefing. That part I’ve been doing the whole time.

I can explain technical things without lecturing

The skill is knowing which detail actually matters to the person in front of you, and dropping the rest.

  • BMWTranslated vehicle technology and feature sets for non-technical buyers in a consultative setting.
  • VolumeAveraged 6 vehicle sales per month working walk-ins with structured DealerSocket CRM follow-up.
  • NowSame job, harder subject: telling a company what AI will and won’t do for it, without the hand-waving.

I’m comfortable with whoever is in the room

Executives, talent, contracted crews and the person at the front desk. The register changes, the job doesn’t.

  • PURE SetsDaily point of contact for C-suite executives, studio VIPs and high-profile talent, walking each of them through the process step by step.
  • PressureAbsorbed it and fixed operational problems rather than escalating them, on timelines where one miss stopped a shoot.
  • CaesarsPart of the team that posted the highest guest-satisfaction scores across Caesars Entertainment worldwide for 13 consecutive weeks.

I’ve carried a number that was my own

Six years of revenue with nobody above me to hand me a pipeline. Every sale came from something I built or ran.

  • DirectThousands of wraps sold through my own Shopify storefront, with the product design, fulfilment and support attached.
  • InboundThousands of inbound wrap requests, and I never bought one: no paid social, no influencer spend. The site was the one place that actually had the kit for your model. Then I answered them.
  • PitchAdvanced to the producer video-interview stage of ABC’s Shark Tank application process.

I learn a product faster than most people expect

No CS degree. Three live products anyway, two of them on a marketplace where every single release has to clear someone else’s code review.

  • DepthEnough to demo it, troubleshoot it live, and say honestly where it breaks, which is what buyers are actually testing for.
  • RangeVinyl and 3D scanning, GA4 and keyword planning, Java and Electron. All picked up because the work needed it.

Dale Carnegie, California

Fifty-two hours across two courses in 2019: Skills for Success, eight weeks in Pasadena, and Sales Advantage, three days in Los Angeles. Taken in person, while I was out in California.

Both were run by the same coach, Brian Barry, a certified trainer and president of Dale Carnegie of Greater Los Angeles & Ventura County. Most of what stuck came from watching him work a room rather than from the workbook.

The practical version: open with the other person’s problem, not your product. Handle the objection they haven’t said out loud yet. And be genuinely easy to deal with, which is not a technique.

Skills for Success, 8 weeks, 28 hrs Sales Advantage, 3 days, 24 hrs California, 2019

Dale Carnegie Certificate of Achievement for Grant Denney, Skills for Success, 30 May 2019, Pasadena, 28 contact hours, signed by certified trainer Brian Barry
Skills for Success, 8 weeks, Pasadena.
Dale Carnegie Certificate of Achievement for Grant Denney, Sales Advantage, 9 May 2019, Los Angeles, 24 contact hours, signed by certified trainer Brian Barry
Sales Advantage, 3 days, Los Angeles.

How I work

Four things I actually do

Everything above is the evidence. This is the habit underneath it.

01

Decide what to build

Scope the feature, judge where AI tooling is reliable and where it quietly breaks, and work out what the product actually needs next.

02

Build it and ship it

Take it from idea to a running product real people use, then find and fix what breaks in real use, and keep it maintained in the open.

03

Hold the room

Onboard incoming teams, walk executives and talent through the process step by step, and fix operational problems instead of escalating them.

04

Say what it isn’t

Where the thing is weak, what it can’t do yet, and which number doesn’t mean what it looks like. Every claim on this page is one I’d be happy to be checked on.

Experience

Where the judgment came from

Two tracks running in parallel: building and selling my own products, and delivering high-stakes operations for other people’s.

Dec 2019 – Present

Founder & Operator, Scooty Wraps

Custom vinyl wraps for electric scooters · Sold B2C and B2B · Omaha, NE · Remote and on-site

  • Own the company and make the templates. Six years of it, selling thousands of wraps and owning the Shopify storefront, product design, paid social, email, fulfilment and customer support. Paused by choice while I focus on building apps.
  • Segway engages directly for one-off marketing wrap jobs; produce retail kits for Segway/Ninebot and Apollo Scooters using 3D scanning and digital cutting software.
  • Supplied the multi-panel templates and vinyl kits behind the Red Bull Showrun Houston go-karts.
  • Built the site, its search presence and its analytics from scratch: a page per scooter model, and GA4 wired up so I could see what was working. It now pulls ~5.4k clicks a year from Google.

2016 – Present

Independent Product Builder & Web Consultant, Self-employed

Omaha / Papillion, NE · Remote

  • Take an idea to a running, publicly used product: scope the feature, build it with AI development tools, verify it works, then ship and maintain it in the open. PocketGE and its companion Java plugin both came out of that loop and are still live.
  • Ship, then find and fix what breaks in real use. The judgment is knowing where AI tools are reliable, where they quietly break, and what the product needs next.
  • Client web and analytics work, including the site, analytics and local SEO for Phoenix Flooring.
  • Ran paid and lifecycle marketing on own ventures: a dropshipping Shopify store before Scooty Wraps, plus email campaigns since.

Aug 2021 – Nov 2022

Covid Testing Coordinator & Lead Coordinator, PURE Sets

Global Operations / Meetings & Events · Los Angeles, CA · Remote and on-site (Atlanta, New York, international)

  • Ran testing logistics, schedules and cadences remotely for production crews of 100+ on film, commercial and music projects shooting in Hollywood, New York and Atlanta. Nobody worked without a valid test, on timelines where a single scheduling miss stops a shoot.
  • Held 100-row call sheets on cadence: everyone tested every two to three days across a seven to ten day shoot, each person routed to whichever clinic was nearest them, at $150–200 per standard test and $400–600 for traveling-nurse visits to principal talent, producers and studio VIPs.
  • Flew out as on-site lead for the corporate half, Boston, Hawaii, San Diego and Bali: standing the testing room up with the hotel and the contracted nurse staff, running award winners and guests through it, reporting every positive, and meeting the corporate guidelines set by Maritz Global Events.
  • Daily point of contact for C-suite executives, studio VIPs, high-profile talent, clients and crew: onboarded each incoming crew, walked executives and talent through the process step by step, absorbed the pressure, and fixed operational problems rather than escalating them.
Testing set up in a resort car park, Hawaii.
Testing set up in a resort car park, Hawaii.
A hotel function room the morning we moved in.
A hotel function room the morning we moved in.
The same room, converted: privacy booths and the clinical team.
The same room, converted: privacy booths and the clinical team.
The coordination desk. Two laptops and everyone's schedule.
The coordination desk. Two laptops and everyone's schedule.

“PURE Sets was confident sending Grant in the field and knew that if we wanted the job done right, he was the ‘go-to’ team member to get it done. … His ability to communicate effectively with C-suite executives, high level music and film talent, and studio VIPs was outstanding.”

Megan C. Murphy, Testing Department Lead, Global Operations, PURE Sets · full letter available on request

Dec 2017 – Mar 2018

BMW Genius / Product Specialist, Bob Smith BMW

Calabasas, CA

  • Translated vehicle technology and technical feature sets for non-technical buyers in a consultative setting; averaged 6 vehicle sales per month working walk-ins and structured DealerSocket CRM follow-up.

Nov 2012 – Jul 2016

Valet Attendant, Horseshoe Casino (Caesars Entertainment)

  • Part of the team that posted the highest guest-satisfaction scores across Caesars Entertainment worldwide for 13 consecutive weeks.

AI & product

Claude & Claude CodeChatGPTGeminiGrok Prompt design & iterationRapid prototyping to production

Technical

JavaScriptHTML/CSSJavaNode.jsElectron Python scriptingREST APIs & JSONGit & GitHub

Solutions & impl.

Requirements gatheringCustomer onboardingTechnical documentation Root-cause analysisDemos & walkthroughsEscalation handling

Education

B.S. Business Administration (Entrepreneurship), University of Nebraska Omaha, 3.5 GPA Dale Carnegie: Skills for Success & Sales Advantage

A bit about me

Figuring it out myself

Take the thing apart, work out what’s actually wrong, and don’t pay someone else to guess. That’s the habit behind everything on this page, including the part where I finally got past what stopped me the first time.

Why I build

I always wanted to code. I went to UNO for Computer Science assuming that liking computers and games would make me a programmer. Java 1 and I were not vibing, and I dropped it before it could fail me.

Around the same time my dad and I were watching Shark Tank together. He had run several Sport Clips stores, and that looked like the coolest thing in the world, so I switched to Business with an entrepreneurship focus. Years later I got to the producer video-interview stage of Shark Tank myself, with a company I built.

What changed about the code isn’t that I became a different person. The friction dropped. AI tooling took technical know-how off the critical path, and what’s left is the part I was always any good at: deciding what to build, how it should work, and where it goes next. I’m the one making the calls on design and direction, picking up the code as I go. I had the ideas the whole time. It took AI to get them built.

Both products started the same way. I didn’t want to pay for the tool. PocketGE and the Flip Tracker exist because I wasn’t paying for Flipping Copilot. Personal Space exists because the game was hiding people and nobody had fixed it. Same instinct as the cars: I’d rather work it out than pay someone to.

World of WarcraftOld School RuneScapeiRacing

Cars

Same deal under the hood. Not because I’m a mechanic. The diagnosis is the interesting part, and a shop charges you for the guessing.

My dad’s truck is mine now and I’ve kept it running. I brought a water-damaged VW Touareg back from dead. And when my 2002 M3 died in Kansas on the way home from California, I diagnosed the fuel pump myself, waited three days for the part, fitted it and drove on.

Karly and Zigs rode in all of them.

The F-150. Kept running, not restored.
The F-150. Kept running, not restored.
The Touareg running again, M3 behind it.
The Touareg running again, M3 behind it.
Karly, in the M3.
Karly, in the M3.
Zigs.
Zigs.

DiagnosticsFuel systemsCooling BrakesIgnitionVacuum leaks

Get in touch

Let’s work out what to build.

Looking for a product to own and real say in where it goes. I’ll take the customer calls too. Papillion, NE, open to remote and to travel.