Count 1042
OpenStock doesn't change until the office approves this count.
Justin Zagar South Florida available now full-time, remote or hybrid
Lead product designer and design engineer
I make the screens a business runs on, like the ones a warehouse uses to find a wheel or a family uses to share a list, and I build the software behind them.
Thirty years of it, starting at fourteen on my home computer. The software I built for one wheel business has run it since 2012: 22,000+ orders, $3.5M+ in sales.
The listing tool I designed, feeding the store I built. One wheel: photographed on the rack, looked up by its Hollander number, priced, and on the storefront and eBay. 22,000+ orders through it since 2012.
2004. The Greeting Wizard I built for Payless Car Rental. Pick a card, write the note, and the card takes shape. The same round trip, twenty years earlier.
Imagine, the CMS I built, editing VAS, my own design language. Pick a theme and every control on the page follows the rule.
Pocket Juke, the music player I built for my own phone. Kotlin, Compose and Media3. Live tiles you hold to resize and rearrange, over a jukebox rainbow; a Now Playing screen that washes to each song's colour; search, a quick list and an equalizer.
The order ledger, 13,000+ orders through it. Every channel in one table: Sync pulls the new eBay sale in, a status change asks to be confirmed, and the row turns the color of where the wheel is.
2002. mySite, the self-publishing tool I built for the Muskego-Norway schools. A teacher filled in a form and their page changed, no webmaster in the way. The round trip, at the very beginning.
Punchlist, the Android task app I built for my family. Everything due on one rolling wheel: what is coming, what is due, what is done. A new task is a few taps, and it can wait to remind you until you reach the store.
Waiting for a shelf
Next: Aisle A · Bay 1 · Row 1 MWA1R1
MWA1R1 · 4 parts, next
NextMWA1R2 · 3 parts, not started
MWA2R1 · 4 parts, not started
MWA2R2 · 3 parts, not started
MWB1R1 · 3 parts, not started
MWB1R2 · 3 parts, not started
Review works any time, offline too.
Counting this shelf
Next: Aisle A · Bay 1 · Row 2 MWA1R2
MWA1R1
MWA1R1 · 0 of 4 parts, in progress
HereMWA1R2 · 3 parts, next
NextMWA2R1 · 4 parts, not started
MWA2R2 · 3 parts, not started
MWB1R1 · 3 parts, not started
MWB1R2 · 3 parts, not started
Review works any time, offline too.
Counting this shelf
Next: Aisle A · Bay 1 · Row 2 MWA1R2
MWA1R1
Counting
1 scan = 1 unitPart No. CU-E90-050Item 27412207
Each scan adds one. Bulk bin? Tap Count and use the keypad.
MWA1R1 · 1 of 4 parts, in progress
HereMWA1R2 · 3 parts, next
NextMWA2R1 · 4 parts, not started
MWA2R2 · 3 parts, not started
MWB1R1 · 3 parts, not started
MWB1R2 · 3 parts, not started
Review works any time, offline too.
Counting this shelf
Next: Aisle A · Bay 2 · Row 2 MWA2R2
MWA2R1
MWA1R1 · 4 of 4 parts, done
DoneMWA1R2 · 3 of 3 parts, done
DoneMWA2R1 · 0 of 4 parts, in progress
HereMWA2R2 · 3 parts, next
NextMWB1R1 · 3 parts, not started
MWB1R2 · 3 parts, not started
Review works any time, offline too.
Counting this shelf
Next: Aisle A · Bay 2 · Row 2 MWA2R2
MWA2R1
Counting
1 scan = 1 unitPart No. BR-SP-20Item 27412273
Each scan adds one. Bulk bin? Tap Count and use the keypad.
MWA1R1 · 4 of 4 parts, done
DoneMWA1R2 · 3 of 3 parts, done
DoneMWA2R1 · 1 of 4 parts, in progress
HereMWA2R2 · 3 parts, next
NextMWB1R1 · 3 parts, not started
MWB1R2 · 3 parts, not started
Review works any time, offline too.
Counting this shelf
Next: Aisle A · Bay 2 · Row 2 MWA2R2
MWA2R1
Long way off
That count's a long way off. Count it once more?
Counting
1 scan = 1 unitPart No. BR-SP-15Item 27412281
Each scan adds one. Bulk bin? Tap Count and use the keypad.
MWA1R1 · 4 of 4 parts, done
DoneMWA1R2 · 3 of 3 parts, done
DoneMWA2R1 · 2 of 4 parts, in progress
HereMWA2R2 · 3 parts, next
NextMWB1R1 · 3 parts, not started
MWB1R2 · 3 parts, not started
Review works any time, offline too.
Counting this shelf
Next: Aisle A · Bay 2 · Row 2 MWA2R2
MWA2R1
Second count
1 scan = 1 unitPart No. BR-SP-20Item 27412273
The first count is cleared. This count stands, and it is flagged for the office.
MWA1R1 · 4 of 4 parts, done
DoneMWA1R2 · 3 of 3 parts, done
DoneMWA2R1 · 2 of 4 parts, in progress
HereMWA2R2 · 3 parts, next
NextMWB1R1 · 3 parts, not started
MWB1R2 · 3 parts, not started
Review works any time, offline too.
A concept, built in a week for one application. Scan the shelf, scan what's on it, and when a count is a long way off the app asks once more instead of letting one miscount change stock. Unsolicited, not a client, all data invented.
Templatizer classic, 2013 to 2019: the first generation of the listing tool. The same job as the 2026 one at the top of this cycle, built for a two-person shop.
The warehouse app, on the tablet by the packing bench. One order from the pack lane to a FedEx label in five taps: box, weight, cost, carrier, review. Designed for someone standing up with gloves on.
2012 to today
The store is real and online today. The apps are recent. Each post shows the screens and why they look the way they do.
Visual Rim Search for AllOEMRims
Photograph a rim and the store tries to identify it. It says when it's only guessing.
Case study
Operator
An AI agent that answers the business phone line. Callers are verified before any order detail, and calls are filed as tickets.
Projects
Chord-O-Matic
Chord-O-Matic turns an MP3 into a chord sheet, with every chord placed above the right lyric words.
The long version
Each dot on this line is the same idea, rebuilt from scratch: a tool that takes the repeat work off somebody’s plate. Three of the stories below are on it. The rest are brand and product work from the same years, and the finished logos are under Brands.

A district with eight schools and no way for any of them to change their own pages. I had started there at sixteen, still a student in the district. So I built a form: the school secretary filled in the principal's name, the phone number, the start and end times as radio buttons holding the three real answers, and it wrote the page back out. Two weeks start to finish. It cost nothing. Then I ran a session every month for any teacher who wanted to come, which is where the design actually got tested, because you find out very quickly which label is wrong when you are watching eight people fail at the same field.
Jump to the case study ↓Rewritten in ASP.NET about three weeks after I came back to the district. It opened on a screen the first version never needed: Choose a site below to begin your editing session. One login across many sites, each showing when it was last updated, with a preview step before publishing. That is the version that outlived the school district. Through my freelance years the same bones got re-skinned client after client.

Not a website. A reusable application shell (login, session security, a status and error library, roles, chrome) with per-client feature modules dropped into it. The proof it was a platform rather than a one-off is mechanical: across two unrelated deployments those shell files are byte-identical. The same shell ran a rental brand's customer complaint system and another client's back office.
Jump to the case study ↓
The first one that shipped to somebody who was not a school. It went live on 22 December 2006, managing thirty pages of a national car rental company's public website. I know the exact date because the software recorded it itself, and those rows are still in the database twenty years later.
Read the case study →The productized one. It had a name in the browser title bar, two logotypes I drew, a version number printed in the chrome, and five releases. Around twenty client sites over six years, white-labeled so the client's logo sat at the top and the firm's name went in the footer. The admin files are byte-identical across unrelated clients, which is what makes it a product with a deployment procedure rather than a folder I copied around.

One wheel record becomes a finished eBay and WooCommerce listing in minutes instead of hours. It has run the business for fourteen years, and a second retailer licensed it and ran it as a paying customer, hosted and maintained on our own server. Same conviction as the school form in 2002, aimed at a harder problem.
Jump to the case study ↓AllOEMRims is winding down after fourteen years; the business is being sold. I am available now, full-time, remote or hybrid. The store is still online while it does. The conviction is not.
See what I am shipping now ↑If somebody does the same job by hand every day, that’s where I start.
Learned building AllOEMRims →The fix isn’t a faster person. It’s a tool that does the repeating part for them.
Learned building ClientWire →The secretary who knows the lunch menu should be the one who can change it.
Learned building Muskego-Norway →
A tire shop owner’s idea · 2015
A car dealership · 2012 to 2018
Payless franchise owners · 2004
My school district · 1999 to 2002, 2005 to 2007 1999 to 2013
29 sites and applications I built between 1999 and 2013, running right now. Not screenshots. The original code, running again, with the real records swapped for invented ones. Open one and use it: fill in the forms, sign into the admin behind it, break something.
These eight are where I would start. The rest, grouped by year →
Everything else
AllOEMRims is being sold after fourteen years, and I am available now. The case studies above are the long version. The resume is two pages, and the email goes straight to me.
about the work, a role, or anything on the site. it goes straight to my inbox.
here now