VeryBad.Dog

AlexProduct builder

I build products with AI.

Over a decade in product on payments, complex internal systems and, most recently, cybersecurity, often leading engineering teams across several product domains at once. Now AI agents do the building. They write nearly all the code; I frame the problem, write the rules they work under, and decide what ships after using each build myself. I also use them to learn things I’ve never done at work: two games, GPU graphics, and a brand drawn in code. The newest is Jobs.Dog, a job search app with an AI assistant that runs your search.

Those stars draw the dog. Scroll, and the camera flies to each project, shown working.

Why VeryBad.Dog?

Jobs.Dog A job search app with an AI assistant that runs your search.

A job search app with its own AI assistant, built solo end to end. Tell it what you want and it searches listings from thousands of US employers, narrows them to the jobs that fit, and keeps every application on one board. Real people are testing it now, and the paid launch is set for Q1 2027.

Recorded from Jobs.Dog’s public demo, on invented jobs. The assistant answers “What should I look at first today?” from the board, one job opens beside the list, and the assistant walks through the new matches to save or pass.

Decisions on Jobs.Dog

  1. The assistant runs the whole search27 Oct 2026

    Why it matters Jobs.Dog began as a board for the AI a person already uses. Most people looking for work don’t run an AI connector, so I made the built-in assistant able to do every part of the search on its own: setup, finding jobs, reviewing them and tracking applications. People who like their own AI keep that path, and both work on the same board.

  2. Fewer, better-aimed applications27 Oct 2026

    Why it matters Some AI tools send a thousand applications a day. Recruiters filter that volume out, and in Huntr’s data the interview rate per application falls as the count climbs. I put Jobs.Dog’s effort into finding the jobs that fit while they’re new, and left the applying to the person, one job at a time.

  3. Paid launch in Q1 2027, after the holidays

    Why it matters Hiring slows to a crawl in November and December. Launching into it would show new customers a thin board and give me little to learn from, so I’m testing with real users through the holidays. Meanwhile Jobs.Dog counts the open jobs every day, by place and kind, so I go into the launch knowing how the market moves.

VeryBad.Dog My personal site, and my workshop for building with AI.

The portfolio you’re reading, an arcade with two games, and private tools behind a sign-in. It’s where I learn how to direct AI agents: they write the code under one rulebook I wrote, and every change passes the same checks before it ships.

Read the case study
The arcade cabinet on this site’s front, live: first as the three separate pieces it used to be, then drawn as one picture.

Decisions on VeryBad.Dog

  1. One written rulebook for every AI coding tool

    Why it matters Agents from several companies work on this codebase, so I put the rules in one file they all read: which files are frozen, what a private page may load, and which checks must pass. A failed check stops the deploy.

  2. The cabinet drawn as one picture7 Sep 2026

    Why it matters It started as three separate pieces. My note on that build: “the space between all of the elements separates everything instead of connecting them.” The marquee, screen and side art now draw as one object.

Bone Yard Three kinds of game in one, to learn how games get made.

My first game. You pick a mound in the yard, dig down through a side-view mine, then fight the cat in a vertical bullet-hell arena, wearing the upgrades you dug up. I built it to learn how games are made, and it’s also my test bench for comparing AI agents from different companies on the same work.

Read the case study
Recorded from the game, on a scripted run: into a mound, down to the bottom at double speed, the cat’s arrival, then the fight’s first volleys.

Decisions on Bone Yard

  1. The same rules and checks for every agent

    Why it matters I give agents from different companies the same kind of work, the same written rules and model sheets, and the same automated checks, so I can compare how each one behaves and what it produces.

  2. A script holds every sprite to its model sheet

    Why it matters A model sheet is the reference drawing of a character. An agent redrawing a sprite can drift from it, so the check fails the build on a colour that isn’t on the sheet, a broken outline or feet off the ground line, whichever agent drew it.

  3. Every number an agent tunes says where it came from

    Why it matters Each one is marked as sourced, tested or measured, so I can tell a measured result from a guess.

Off Leash A whole game in one web page, with no game engine.

I wanted to rebuild a style of game I’d played, entirely in a phone browser, with no game engine, no framework and no libraries. You steer a pack of dogs up a two-minute road, pick recruits and tricks at the gates and beat the boss cat, then keep going in an endless mode that gets harder until the pack falls. The whole game is one page of about 600 KB.

Recorded from the game, on a scripted run with the quiet stretches sped up: a trick card picked at a gate, the surge, then the boss cat and the pup freed.

Decisions on Off Leash

  1. Each gate names the next wave

    Why it matters You see what’s coming before you pick, so a pick is a counter: Bruisers for a kitten swarm, Diggers for armored Toms and the boss. Skip the Diggers and the boss outlasts the clock.

  2. Every run is seeded

    Why it matters The seed sets the road, the waves and the order of the trick cards, so Run it again plays the same road and you can try other picks against it.

Events board My events calendar, updated by AI.

A personal tool for keeping track of what’s on in Seattle. AI agents refresh the listings, and my stars, plans and notes are stored separately, so a refresh never overwrites them.

Read the case study
Sample data: an agent’s listing lands, I star one, and my pick overrides the agent’s file.

Decisions on Events board

  1. Agents keep the listings; my picks win any disagreement

    Why it matters I keep my stars, plans and notes where agents can’t write. Before each refresh a script merges them into the file, so an update can’t wipe one out.

  2. Event posters fetched politely

    Why it matters The fetcher names itself, waits a second between requests to the same site, gives up after 10 seconds and skips generic artwork. A refresh that hammers a ticket site gets blocked.

Star-map homepage concept A homepage concept for Open Security.

Open Security saw my portfolio and wanted a star map to fit their Sirius constellation branding, so I made a homepage concept with them. Scrolling flies the camera through a 3D star field. It was for internal review, not their live site.

Read the case study
An abstract version in this site’s colours: scrolling flies the camera through a star field. None of Open Security’s content.

Decisions on Star-map homepage concept

  1. A fallback and reduced motion, built in before review

    Why it matters No libraries. Without WebGL2 the page still runs from a fallback, and it respects the reduced-motion setting. I built both into the concept before it went to review.

  2. The same work became this site’s night sky

    Why it matters Their star map and this site’s night sky are one line of work. Open Security’s copy and content stay off this page.

Want the long version?

Each case study shows the project running and the decisions behind it, with dates. Or put a question to the AI that answers from my record.

The AI answers from a profile of my work that I reviewed. It can be wrong, and it isn’t a reference.