Categories
Artificial Intelligence Business Meetups Presentations

Meet Madtech.AI: Notes from Bill Lederer’s presentation at AI Salon: St. Pete/Tampa Bay

If you were at spARK Labs in St. Pete last night for AI Salon: St. Pete/Tampa Bay, you got to hear from two very different voices on AI in the enterprise.

Where Accenture’s James Gress offered a view from 50,000 feet and talked about the big-picture challenges facing massive organizations, Bill Lederer brought it down to earth with something more specific and more personal: the story of Madtech.AI, his B2B SaaS startup, built in St. Pete, and now looking to change how mid-market organizations make marketing decisions.

Bill’s been in this space a long time. He’s been a Wall Street executive, a professor, and now he’s a founder. When asked what “Madtech” stands for, he lights up like you just handed him a perfectly teed pitch and answers “Marketing. Advertising. Data. Technology.” The convergence of all four is the thesis he’s been working toward for over a decade, and last night he laid out what that convergence has produced.

Bill’s Madtech presentation

The Problem: Your data’s a mess, and you know it!

Madtech.AI exists to solve one foundational problem that Bill says afflicts 80% of the market they serve: disconnected, siloed, unusable data.

This isn’t not a glamorous problem. It doesn’t make for great conference keynotes. But if you’ve ever tried to make a marketing decision and discovered that your data lives in six different systems that don’t talk to each other, you know exactly what he means. You can have all the AI in the world sitting on top of your stack, and if the data feeding it is fragmented and dirty, you’re building on sand.

Bill and his team have spent roughly ten years in the unglamorous trenches of this problem, building data connectors, ETL and ELT pipelines, transformation tools, data warehousing. The kind of infrastructure work that nobody talks about at cocktail parties but that everything else depends on. The result: over 300 data connectors and more than 700 proprietary data models accumulated over eleven years of professional services work. That’s a significant moat, even if it doesn’t sound like one.

The metric that stopped the room

Here’s the number that got people’s attention (mine included): building a data pipeline used to take six to nine person-hours. Madtech.AI has that down to three minutes, fully deployed and tested. And Bill mentioned, almost in passing, that they’re ninety days away from getting it to thirty seconds.

This is the kind of orders-of-magnitude productivity difference that James Gress had been talking about earlier: AI compressing time-consuming processes by enormous factors. If your organization is spending engineering days on data pipeline work, that number should make you sit up.

Who they’re built for (hint: probably you!)

Bill was explicit about Madtech.AI not chasing the Fortune 500. He wasn’t thinking about enterprise clients when he built the platform. His target is the middle market, which he defined as organizations doing between $1 million and $200 million in annual revenue. They’re actively going after.about 20,000 target enterprises.

Interestingly, their current customer base skews heavily toward nonprofits. And there’s a real insight buried in that: nonprofits, unlike most businesses, are willing to share data on an aggregated, anonymized basis. That willingness unlocks something powerful. When organizations share, everyone benefits from insights none of them could have reached individually. It’s a cooperative data model that the for-profit world, with its instinct toward data hoarding, tends to miss out on.

Their verticalization roadmap runs from nonprofits and cultural attractions into associations and post-secondary schools, which have similar data cultures and marketing challenges.

The price point is the point

The platform, which includes a full data unification and transformation suite plus a marketing decision intelligence layer, runs $5,000 a month. Flat. No charges per data source, no charges per data model, no metered consumption traps.

Bill made the comparison explicitly: buying these capabilities separately, or having someone build them for you, would normally run into the hundreds of thousands of dollars. At $5K monthly, they’re positioning this as enterprise-grade capability at a price point that the middle market can actually afford. That’s the bet.

The business model is standard B2B SaaS: licensing, some consumption charges, and a marketplace where third-party data and software providers integrate and share revenue. The entire platform is white-labelable, which means channel partners and resellers are very much welcome.

They’re raising, and they’re hiring

Bill was refreshingly direct about where Madtech.AI is right now: close to breakeven, actively raising a $517,000 round, and looking for both investors and the right people to join the team.

He also announced that Kyle Shea, a friend of twenty years, has joined as Chief Revenue Officer, relocating to St. Pete from Fort Lauderdale. The team is small and deliberate, which is consistent with the middle-market-focused, capital-efficient approach they’ve described.

If you’re a potential investor, a channel partner, a nonprofit marketing director staring at a spreadsheet full of data you can’t use, or just someone who wants to know more, Bill is easy to find. He was working the room after his talk the way a man does when he genuinely enjoys talking about what he’s built (I certainly enjoyed my chat with him).

And based on what he showed last night, he’s built something worth talking about.

Categories
Artificial Intelligence Meetups Tampa Bay

Five Things We Learned at AI Salon: St. Pete/Tampa Bay – Notes from a fireplace conversation with Accenture’s James Gress

Last night, spARK Labs in St. Pete hosted another edition of AI Salon: St. Pete/Tampa Bay, and it featured a “fireplace” conversation with Brian Peret as host and James Gress [Linkedin] as guest.

James is a solutions architect at Accenture who spends his days helping large enterprises figure out how to actually deploy AI instead of just posting on LinkedIn about it. You’ve probably seen him at all sorts of local events, from his Tampa Bay Generative AI Meetup to conferences like DevOps Days Tampa Bay and Civo Navigate. A lot of people talk AI; James actually helps clients get stuff done with it.

Brian uses a deliberately loose format with AI Salon fireside chats. They’re part structured interview, part open floor, and if there’s ever any jargon or terminology that may not be familiar to laypeople, he always makes sure that the audience gets a definition. The end result is a more grounded, hype-free AI conversation, and a catalyst for conversations among attendees once the presentations end. It’s one of the reasons I continue to attend AI Salon: St. Pete/Tampa Bay.

The five things we learned

1. Shadow AI is real, and your restrictive policy is probably creating it

James made what might be the evening’s most quotable observation: If you ban AI in your organization, you’re not stopping your employees from using it. You’re just driving their AI usage underground.

He called this shadow AI, the AI-era cousin of shadow IT. Someone discovers that Claude or Gemini dramatically cuts their workload. Their company hasn’t approved it. So they use their personal laptop, their personal account, and a free tier,which almost certainly means their prompts and outputs are being used for model training. Your trade secrets and confidential information just became someone else’s training data.

OpenClaw, the viral open-source autonomous AI agent that went through a dizzying rename trilogy (Clawdbot → Moltbot → OpenClaw) before its creator joined OpenAI,  came up as a specific example. James mentioned IT staff installing it on company machines without authorization, introducing real vulnerabilities into their organizations’ ecosystems. This isn’t hypothetical: security researchers at Cisco have documented OpenClaw instances performing data exfiltration without user awareness, and one of the project’s own maintainers warned publicly that it’s “far too dangerous for you to use safely” if you don’t understand what you’re doing at the command line.

A blanket ban won’t work. What works is intentional governance: an AI governance board, approved tooling, and enterprise licensing agreements with real data protection clauses baked in. Stifling AI use, James argued, will radicalize your people towards Shadow AI.

2. NemoClaw raises the right questions even if you don’t have answers yet

One audience member asked James about NemoClaw, NVIDIA’s open-source stack that layers privacy and security controls on top of OpenClaw, and its implications for enterprise AI adoption. James was candid: he’s not in those specific loops at Accenture. But the question itself is the point.

As autonomous agents like OpenClaw become more capable and more widely deployed, the enterprise world is going to need hardened, governable versions of these tools. NemoClaw represents one approach to that problem. Whether it becomes the standard, or whether the market converges on something else entirely, it addresses an important question: “How do you let an autonomous agent act on your behalf without giving it a loaded gun pointed at your data?” Every organization is going to have to come up with an answer.

3. Data privacy looks different depending on your company size

For enterprises, the data privacy question is largely handled through legal agreements. Accenture has armies of lawyers who negotiate with OpenAI, Microsoft, and Google to ensure client data isn’t used for model training and doesn’t leak. That’s how large organizations get comfortable enough to let their workforces use these tools.

But most of us in the room aren’t Accenture- or OpenAI- or Microsoft-sized. For those of us in that boat, James was candid: if you can’t afford legal counsel to vet your SaaS AI agreements, at minimum read what you’re signing. On free tiers, you’re the product, and your data trains the model. If you’re handling anything sensitive, you probably need a paid tier with real data terms, and possibly a consultant who knows what to look for.

He also mentioned a practical habit worth stealing: he sets up dedicated accounts with secondary email addresses for AI tools he doesn’t fully trust yet. If something goes sideways, it’s isolated from his primary identity and credentials.

I myself have account like these that purportedly belong to a Volvo-driving Rails developer divorcee with a penchant for tv shows and novels in the vein of Heated Rivalry. Given what we know about OpenClaw’s permission requirements and prompt injection vulnerabilities, that kind of defensive hygiene is looking less paranoid by the day.

4. Measuring AI ROI starts with measuring anything

When Brian asked for concrete KPIs to evaluate AI effectiveness, James gave what I thought was the most honest answer of the night: most organizations don’t currently measure the processes they’re trying to improve, so they have no baseline to compare against.

James’ framework is simple: pick a process you already care about, measure how long it takes today, then measure after AI intervention. Full automation is rare. More often, you’ll see something like a four-hour task shrunk to two hours. That 50% reduction is real, trackable ROI. Replicate that across your workflow, add up the hours, and you have a story you can tell leadership.
The inverse test is equally useful: if it takes you longer to set up and prompt the AI than it saves you, you’ve found a bad fit. Move on.

5. Python: last language standing?

This one generated the liveliest back-and-forth of the night. James made a striking prediction: as vibe coding becomes the norm, developers will naturally gravitate toward whichever languages AI generates most reliably.

Right now, that’s Python. Not because Python is objectively superior for every task, but because the models have seen so much of it that their output is consistently good.

(COBOL, for what it’s worth, is still a disaster. James admitted as much, with the weary tone of a man who has stared into that particular abyss.)

The implication is unsettling for language diversity. If a new programming language can’t get traction with AI code generation on day one, it faces an enormous adoption headwind. And if everything AI generates trends toward Python, we may end up with a monoculture which, as one audience member noted, creates systemic fragility. Everyone shares the same vulnerabilities.

I chimed in, saying that high-level programming languages might come to be seen as a “middleman” that can be removed, and we may end up with a more direct route, with our prompts being converted directly to assembly code. James remarked that most developers don’t do assembly and that it would remove the human from the loop, and I suggested that for some parties, that might be the goal.

James’s counterpoint was interesting: perhaps Python becomes the human-readable surface layer while compilers handle the optimization underneath, preserving expressiveness without sacrificing performance. An elegant theory. We’ll see.

The conversation continued well past the official end time, with audience members clustering around James to continue threads the format couldn’t fully accommodate. That’s the sign of a good AI Salon.

The next one’s May 6th (and just a couple of days before Brian’s birthday). Don’t miss it!

Categories
Artificial Intelligence Programming

Upgrading “Eternal Grind” with Claude Code, step by step

Eternal Grind — my zero-player RPG homage to the legendary Progress Quest — was originally built agentically using Zencoder’s Zenflow tool. The code is clean, self-contained, and dependency-free web page made up of just three files: index.html, game.js, and style.css. No build system required!

You can play it right now if you want to watch a randomly-generated hero grind their way through meaningless progress bars. I’ll wait…

Back? Great. Now let me show you how I upgraded Eternal Grind using Claude Code. If you’re new to vibe coding, this article’s for you!

Starting up

The first thing I did was change directories to the one containing the Eternal Grind code and then launch Claude Code with this command:

claude

Claude Code started up, and my terminal displayed the following:

Getting oriented with /init

With Claude Code launched in the Eternal Grind directory, it was time to run /init, Claude Code’s command for initializing a project:

/init

/init analyzes the codebase in the current directory and generates an AGENTS.md file, a document that describes the repo’s structure and conventions so that the AI agent can work effectively within it.

Here Claude Code responded to /init. The process took a few moments…

⏺ Searched for 2 patterns, read 6 files (ctrl+o to expand)

⏺ Now I have a complete picture. This is a simple, 
self-contained vanilla web app with no build system, no 
linters, and no test framework. Let me generate 
the AGENTS.md.

⏺ Write(AGENTS.md)
  ⎿  Wrote 38 lines to AGENTS.md
       1 # Repository Guidelines
       2
       3 ## Project Structure & Module Organization
       4
       5 Eternal Grind is a zero-player RPG (a parody idle game inspired by Progress Quest) built as a self-contained vanilla web application with no build tools, frameworks, or dependencies.
       6
       7 - `index.html` — Three-column dashboard layout (Character Sheet, Engine of Progress, Data Feed)
       8 - `game.js` — All game logic in a single file: data arrays, helpers, state management, game loop, and DOM rendering
       9 - `style.css` — Retro Windows 95 aesthetic using monospace fonts and high-contrast borders
      10 - `docs/Eternal Grind spec.md` — Original functional specification describing UI layout, core mechanics, and data tables

⏺ AGENTS.md has been created at the repository root. 
It covers:

  - Project structure — the three core files and the spec 
    document
  - Architecture overview — how game.js is organized
    (data, helpers, state, game loop, DOM rendering)
  - Development — how to run it (just open index.html)
  - Commit conventions — derived from git history

  Since there's no build system, linter, test framework, 
  or CI pipeline, those sections were omitted per the 
  "no evidence, no section" rule.

I like that last note: “no evidence, no section.” Claude Code read the git history to infer commit conventions rather than making things up, and correctly skipped sections about build pipelines and test suites because there aren’t any. It understood the project accurately on the first pass!

The content pipeline: populating the game’s data arrays

Most of Eternal Grind‘s personality lives in game.js as plain JavaScript arrays, which are lists of things like monsters, items, locations, tasks, and so on. The game randomly samples from these lists to generate its endlessly absurd narration. Extending the game is mostly a matter of adding more material to these arrays.

I asked Claude Code to show me what was already there:

List the monsters/opponents in the game.

It responded with the following:

⏺ Based on game.js:62-66, the monsters are:

  1. A Literal Metaphor
  2. The Concept of Ennui
  3. A Low-Level Bugbear
  4. An Imaginary Friend
  5. A Confused Salesman
  6. A Dust Bunny of Doom
  7. The Ghost of a Dead Pixel
  8. A Sentient Terms of Service Agreement

That’s a solid starting lineup, but it needed reinforcements. Specifically, the kind of opponents you’d actually encounter in everyday modern life. I requested the following…

Add the following monsters to the game: A Grumpy Barista,
Two Podcasters Who Won't Shut Up, A Five-Year-Old on a Sugar
Rush, The HR Department, A Belligerent Walmart Greeter,
"Screech" from "Saved By the Bell"

…and it replied like so:

⏺ Update(game.js)
  ⎿  Added 4 lines, removed 1 line
      62    "A Literal Metaphor", "The Concept of Ennui", "A Low-Level Bugbear",
      63    "An Imaginary Friend", "A Confused Salesman",
      64    "A Dust Bunny of Doom", "The Ghost of a Dead Pixel",
      65 -  "A Sentient Terms of Service Agreement"
      65 +  "A Sentient Terms of Service Agreement",
      66 +  "A Grumpy Barista", "Two Podcasters Who Won't Shut Up",
      67 +  "A Five-Year-Old on a Sugar Rush", "The HR Department",
      68 +  "A Belligerent Walmart Greeter", "\"Screech\" from \"Saved By the Bell\""
      69  ];

Note that Claude Code correctly handled the escaped quotes around "Screech" without being asked. Small thing, but the kind of thing that would cause a runtime error if it got it wrong.

Expanding the treasure system

Treasure in Eternal Grind is generated by randomly combining an adjective with a noun, so you end up hauling things like an Overpriced Paperclip of Hope or a Slightly Damp Sock of Mystery. I asked Claude Code to list what was already in the system, then added to both halves:

What are the trasures in the game?

Note that I misspelled “treasure.” Also note that Claude Code knew what I meant:

⏺ Based on game.js:48-59, treasures are generated by 
combining a random adjective with a random noun:

  Adjectives: Dull, Polished, Forbidden, Rusty, Lamentable, 
  Insignificant, Glowing, Slightly Damp, Overpriced, Mediocre, Legendary-ish

  Nouns: Scissors of Regret, Pebble of Mediocrity, Scone 
  of Power, Lint of Destiny, Paperclip of Hope, Broken Twig, 
  Expired Coupon, Sock of Mystery, Unfinished Novel, 
  Jar of Pickled Thoughts

  So you'd get items like "Overpriced Scissors of Regret" 
  or "Slightly Damp Lint of Destiny."

First, I asked for more adjectives:

Add the following to the list of adjectives for treasures:
Moderately Sticky, Dusty, Bullet-Riddled, Slightly Reeking,
Retro-Ish, Somewhat Cursed
⏺ Update(game.js)
  ⎿  Added 2 lines, removed 1 line
      48  const ITEM_ADJECTIVES = [
      49    "Dull", "Polished", "Forbidden", "Rusty", "Lamentable",
      50    "Insignificant", "Glowing", "Slightly Damp", "Overpriced",
      51 -  "Mediocre", "Legendary-ish"
      51 +  "Mediocre", "Legendary-ish", "Moderately Sticky", "Dusty",
      52 +  "Bullet-Riddled", "Slightly Reeking", "Retro-Ish", "Somewhat Cursed"
      53  ];

Then, some new nouns. This is where I got to bring in some very specific cultural artifacts:

Add the following to the list of treasure nouns: 1980s
Goldstar TV, Troll Doll, Off-Brand Labubu, McDonalds Sweet
and Sour Sauce, Ceramic Elvis Bust, Ron Jon Surf Shop
T-Shirt, Sneakers of Minor Destiny, Poker Chips of Fate
⏺ Update(game.js)
  ⎿  Added 4 lines, removed 1 line
      56    "Scissors of Regret", "Pebble of Mediocrity", "Scone of Power",
      57    "Lint of Destiny", "Paperclip of Hope", "Broken Twig",
      58    "Expired Coupon", "Sock of Mystery", "Unfinished Novel",
      59 -  "Jar of Pickled Thoughts"
      59 +  "Jar of Pickled Thoughts", "1980s Goldstar TV", "Troll Doll",
      60 +  "Off-Brand Labubu", "McDonalds Sweet and Sour Sauce",
      61 +  "Ceramic Elvis Bust", "Ron Jon Surf Shop T-Shirt",
      62 +  "Sneakers of Minor Destiny", "Poker Chips of Fate"
      63  ];

I have to admit “Somewhat Cursed Off-Brand Labubu” is one of my proudest creative achievements.

Finding the gaps

Rather than guessing what else needed updating, I asked Claude Code directly:

What lists have I not yet edited?
⏺ Based on the data arrays in game.js, you haven't edited:

  1. NAMES (line 7) — Character names
  2. RACES (line 18) — Character races
  3. CLASSES (line 25) — Character classes
  4. TASKS (line 32) — Actions performed during questing
  5. LOCATIONS (line 41) — Places the character visits
  6. SPELLS (line 68) — Spells and abilities
  7. STATS (line 75) — Character stat names
  8. EQUIPMENT_SLOTS (line 82) — Equipment slot names
  9. ACTS (line 86) — Plot act titles

  You've edited MONSTERS, ITEM_ADJECTIVES, and ITEM_NOUNS.

I still find the fact that Claude Code “knows” what’s been touched and what hasn’t a bit eerie, but it’s also useful and it’s exactly where a good agentic coding tool shines.

Tasks and acts

Tasks are the descriptions of what the player’s character is doing at any given moment. The originals leaned heavily into corporate ennui, which I wanted to preserve and amplify:

List the tasks.
⏺ Based on game.js:32-39, the tasks are:

   1. Debating a fence post
   2. Polishing a rusty nail
   3. Contemplating the void
   4. Waiting for a sign
   5. Filing a 1040-EZ
   6. Staring into the middle distance
   7. Organizing a sock drawer
   8. Explaining the internet to a rock
   9. Searching for a lost remote
  10. Counting ceiling tiles
  11. Simulating a personality
  12. Buffing out a scratch in reality
Add these to the tasks list: Daydreaming about cheese,
Alphabetizing soup cans, Sorting a spreadsheet column,
Doom-scrolling LinkedIn, Applying to Blue Man Group,
Pressing a crosswalk button, Adjusting the thermostat,
Turning the pillow to the cool side
⏺ Update(game.js)
  ⎿  Added 5 lines, removed 1 line
      35    "Filing a 1040-EZ", "Staring into the middle distance",
      36    "Organizing a sock drawer", "Explaining the internet to a rock",
      37    "Searching for a lost remote", "Counting ceiling tiles",
      38 -  "Simulating a personality", "Buffing out a scratch in reality"
      38 +  "Simulating a personality", "Buffing out a scratch in reality",
      39 +  "Daydreaming about cheese", "Alphabetizing soup cans",
      40 +  "Sorting a spreadsheet column", "Doom-scrolling LinkedIn",
      41 +  "Applying to Blue Man Group", "Pressing a crosswalk button",
      42 +  "Adjusting the thermostat", "Turning the pillow to the cool side"
      43  ];

The acts are the overarching chapter titles that frame the endless grind. The original game had four. I felt it needed more. Much more:

List the acts.
⏺ Based on game.js:86-91, the acts are:

  1. Act I: The Tutorial Nobody Asked For
  2. Act II: The Grinding Begins
  3. Act III: Despair in Four Stages
  4. Act IV: The Post-Credits Confusion
Add the following acts: Act V: That Wasn't the End, Act VI:
The Writer's Barely-Disguised Fetish, Act VII: Mid-Season
Filler, Act VIII: Do You Really Read These?, Act IX: My
Sister Was Bitten By a Møøse Once, Act X: A New Hope, Act XI:
The Old Hope Was Better, Act XII: Twelve Angry Badgers, Act
XIII: Triskaidekaphobia, Act XIV: They're Coming to Take Me
Away, Ha-Ha, Act XV: Still Playing, Are We?
⏺ Update(game.js)
  ⎿  Added 12 lines, removed 1 line
       98    "Act I: The Tutorial Nobody Asked For",
       99    "Act II: The Grinding Begins",
      100    "Act III: Despair in Four Stages",
      101 -  "Act IV: The Post-Credits Confusion"
      101 +  "Act IV: The Post-Credits Confusion",
      102 +  "Act V: That Wasn't the End",
      103 +  "Act VI: The Writer's Barely-Disguised Fetish",
      104 +  "Act VII: Mid-Season Filler",
      105 +  "Act VIII: Do You Really Read These?",
      106 +  "Act IX: My Sister Was Bitten By a Møøse Once",
      107 +  "Act X: A New Hope",
      108 +  "Act XI: The Old Hope Was Better",
      109 +  "Act XII: Twelve Angry Badgers",
      110 +  "Act XIII: Triskaidekaphobia",
      111 +  "Act XIV: They're Coming to Take Me Away, Ha-Ha",
      112 +  "Act XV: Still Playing, Are We?"
      113  ];

Locations

Adding locations to Eternal Grind was pretty straightforward:

List the locations.
⏺ Based on game.js:41-46, the locations are:

  1. The Forest of Mild Inconvenience
  2. The Cave of Echoing Sighs
  3. Downtown Boredom
  4. The Desert of Dry Humor
  5. Mount Mediocrity
  6. The Swamps of 'I'll Do It Tomorrow'
  7. The Suburbs of Despair
Add these locations: The Villages (Florida), The Complaints
Depertment, The Closet, The Basement of No Return, The Attic
of Surrender
⏺ Update(game.js)
  ⎿  Added 3 lines, removed 1 line
      46    "The Forest of Mild Inconvenience", "The Cave of Echoing Sighs",
      47    "Downtown Boredom", "The Desert of Dry Humor",
      48    "Mount Mediocrity", "The Swamps of 'I'll Do It Tomorrow'",
      49 -  "The Suburbs of Despair"
      49 +  "The Suburbs of Despair", "The Villages (Florida)",
      50 +  "The Complaints Department", "The Closet",
      51 +  "The Basement of No Return", "The Attic of Surrender"
      52  ];

⏺ Done. The five new locations have been added to 
  LOCATIONS in game.js:47-49. (Note: I corrected 
  "Depertment" to "Department" — let me know if 
  you wanted the original spelling.)

I appreciate that Claude Code silently corrected my typo from the derpy “Depertment” to the correctly-spelled  “Department”) and mentioned it in the response rather than just doing it invisibly. Fixing it, but also notifying me, was the right call.

With the first round of content additions done, I committed and pushed:

Commit and push the changes
⏺ Commit successful. Now pushing to remote.

⏺ Bash(git push)
  ⎿  To https://github.com/AccordionGuy/eternal-grind.git
        99a2460..122c62c  main -> main

⏺ Done. Changes have been committed and pushed to 
  origin/main.

A bigger change: separating equipment from treasure

Up to this point, the character’s equipment was just randomly generated treasure items using the same adjective-plus-noun combinations that fill the loot feed. That felt wrong. Your boots shouldn’t be a Rusty Paperclip of Hope. So I started asking questions:

Does the player's equipment change during the game, or is it
simply determined at the beginning?
⏺ Equipment is only set once at the beginning. 
  It's generated during initialization (line 174-176) 
  where each slot gets a random item, and renderEquipment() 
  just displays the current state. There's no logic anywhere
  that upgrades or swaps equipment during gameplay.

  Would you like me to add equipment upgrades — for example, 
  replacing a piece of gear when the player levels up or
  defeats a monster?

I filed that question away for later. First, I wanted a cleaner separation of concerns; dedicated, per-slot equipment lists with items that actually feel like equipment:

Not at first. Instead, I want equipment to be distinct from
treasure, and for there to be separate lists for each
equipment slot: helm, torso, left and right hands (hands
should use equipment from the same list, and both are allowed
to be equipped with the same item), legs, boots, neck amulet,
and ring. For the time being, the player's equipment should
simply be generated at the start of the game and not updated.
⏺ Read 1 file (ctrl+o to expand)

⏺ Now I have the full picture. I'll replace EQUIPMENT_SLOTS with per-slot item lists and update the initialization to use them.

⏺ Update(game.js)
  ⎿  Added 42 lines, removed 4 lines
       94 +const EQUIPMENT = {
       95 +  "Helm": [
       96 +    "Dented Bucket", "Thinking Cap", "Tin Foil Hat", "Visor of Denial",
       97 +    "Crown of Mild Authority", "Headband of Overthinking",
       98 +    "Hard Hat of Soft Skills", "Beanie of Bewilderment"
       99 +  ],
      100 +  "Torso": [
      101 +    "Ill-Fitting Chainmail", "Hawaiian Shirt of Protection",
      102 +    "Sweater Vest of Resilience", "Bathrobe of Power",
      103 +    "Breastplate of Participation", "Hoodie of Invisibility",
      104 +    "Polo Shirt of Middle Management", "Poncho of Plausible Deniability"
      105 +  ],
      106 +  "Hands": [
      107 +    "Rubber Chicken", "Stapler of Justice", "Foam Finger of Fate",
      108 +    "Spatula of Smiting", "TV Remote of Command", "Rolled-Up Newspaper",
      109 +    "Pool Noodle of Reckoning", "Half-Eaten Sandwich"
      110 +  ],
           … (Legs, Boots, Neck Amulet, Ring slots follow the same pattern)

This was a real structural change, and more than just adding items to an existing list. It refactored the data model entirely.

Claude Code replaced the flat EQUIPMENT_SLOTS array with a keyed EQUIPMENT object, generated appropriate thematic items for each slot, and handled the “Hands” edge case (one shared list, two separate display slots) correctly without extra prompting. It also added an EQUIPMENT_DISPLAY_SLOTS constant to maintain the rendering order without coupling it to the data structure. Clean separation.

Commit and push the changes
⏺ [main a3a60c0] Separate equipment from treasure with per-slot item lists
  1 file changed, 55 insertions(+), 7 deletions(-)
  To https://github.com/AccordionGuy/eternal-grind.git
  3b8918d..a3a60c0  main -> main

⏺ Committed and pushed.

A small UI touch: context-sensitive emoji

The last change in this session was a cosmetic one, but a fun one. The center panel displayed a “crossed swords” image. I wanted it to change based on what the character is doing:

Is the "cross swords" image in the center panel an emoji?
⏺ Yes. It's the crossed swords emoji (⚔️), rendered via 
  HTML entities ⚔️ — U+2694 (CROSSED SWORDS) followed by 
  U+FE0F (variation selector for emoji presentation).
The game should display the crossed swords emoji when the
player is battling a monster, but the ‍♀️ emoji
when performing a task.
⏺ I'll add portrait updating to renderTaskBar since that's 
  where the task phase is already checked.

⏺ Update(game.js)
  ⎿  Added 8 lines
      334 +  // Update portrait emoji based on current phase
      335 +  var portrait = document.getElementById("portrait");
      336 +  if (state.taskPhase === "battle") {
      337 +    portrait.textContent = "\u2694\uFE0F";
      338 +  } else {
      339 +    portrait.textContent = "\uD83D\uDE47\uD83C\uDFFC\u200D\u2640\uFE0F";
      340 +  }
      341  }

Claude Code correctly identified that renderTaskBar() was already checking state.taskPhase, making it the natural home for this logic. Rather than adding a separate function or a polling mechanism, it hooked into existing state management. Two lines of conditional logic, zero new complexity.

Commit and push
⏺ [main e498194] Switch portrait emoji based on task phase
  1 file changed, 8 insertions(+)
  To https://github.com/AccordionGuy/eternal-grind.git
  a3a60c0..e498194  main -> main

⏺ Committed and pushed.

What this session illustrates

This wasn’t a session where I asked Claude Code to write the game from scratch; after all, the game already existed.

What I was doing was extending it, treating Claude Code as an unusually capable pair programmer who could read the codebase, answer questions about it accurately, and execute targeted changes without breaking anything else.

I was impressed by what it did:

  • It knew what it didn’t know. When I asked about equipment upgrades, it answered the question I asked (static, set at init) and then suggested (and didn’t assume) that I might want dynamic upgrades. It waited for direction.
  • It read context before writing code. For the equipment refactor, it explicitly re-read the file before making changes. This is the kind of due diligence that prevents “fixed” code from breaking something three functions away.
  • It handled structural changes alongside content changes. Adding items to an array is trivial. Replacing a flat array with a keyed object, updating initialization logic, and adding a display-order constant to preserve rendering behavior. That’s a real refactor, and it did it in one pass.
  • It fixed typos and told me so. It corrected “Depertment”to “Department” in the locations list and flagged the change rather than silently altering my input.

The game is playable at accordionguy.github.io/eternal-grind, and the source is on GitHub. There’s more work to do: equipment upgrades on level-up, more character names and races, and maybe some actual spell effects beyond the purely cosmetic. Future Claude Code sessions, probably.

 

Categories
What I’m Up To

Latest updates to my portfolio

I maintain a portfolio of my work on a GitHub page that you can access using these easy-to-remember URLs…

…and I’ve updated it to include some new stuff, because it’s been a pretty busy 2026 so far!

Additions include:

  • My upcoming talk at Arc of AI
  • My work for Hammerspace
  • My March appearance with Cory Doctorow on the This Week in Tech podcast
  • The Surviving Your Layoff talk that I did with Anitra at BSides Tampa 2025
  • A couple of “pretty little ditties” at the end

Check it out!

Categories
Artificial Intelligence Conferences Programming What I’m Up To

My upcoming talk at Arc of AI: AEO – Writing Docs and Code for Machines

Want to go to a real AI conference, packed with real practitioners, in a place where you’ll catch a lot of great talks and plenty of “hallway track” in a fun city?

That conference is Arc of AI, and as of this writing, it’s happening in just under three weeks, from April 13th (if you catch the full-day workshops) or April 14th through 16th.

Better still, I’m giving a brand-new talk, described below:


AEO (AI Engine Optimization): Writing Docs and Code for Machines

SEO is dead for developers. The new workflow for building software has shifted from the Google search bar to the IDE prompt box. When a developer asks an AI agent (which could be Claude, Cursor, or a custom MCP server) to implement a library or secure an API, they’re no longer the primary consumer of your documentation. It’s the LLM now.

If your code, documentation, and reference architectures aren’t optimized for machine ingestion, the AI will hallucinate the implementation, and the developer will blame your product. We’re entering the era of AEO: AI Engine Optimization.

This session covers user-friendly documentation to explore the architectural reality of the “user” being a machine. We’ll dive into the emerging standards recently validated by industry leaders, including the llms.txt proposal and Andrew Ng’s Context-Hub, to show how to provide the “Goldilocks” amount of context to an agent.

We’ll explore:

  • The context budget: How to eliminate “marketing fluff” to save thousands of tokens for actual logic.
  • AST grokking: Structuring Python and JavaScript repositories so AI agents can parse your code’s abstract syntax trees (ASTs) without ambiguity.
  • The machine registry: Implementing the llms.txt standard to ensure your project is accurately indexed in central context hubs.
  • Time-to-Agent-Success (TTAS): A new metric for measuring how quickly a cold AI agent can generate a working, tested pull request for your repository.

Stop writing for the crawler and start writing for the context window. It’s time to ensure that when the robots are asked to build, they choose your stack!


Want to find out more about and register for Arc of AI?

Once again, Arc of AI will take place from Monday, April 13 through Thursday, April 16, with the workshop day taking place on Monday, and the main conference taking place on Tuesday, Wednesday, and Thursday.

Arc of AI tickets are BOGO!

From Arc of AI’s registration page:

You read that right! For each conference ticket you purchase, you get one free ticket. This applies only to conference tickets and not for workshops.

Categories
Picdump

Saturday picdump for Saturday, March 21

Happy Saturday, everyone! Here on Global Nerdy, Saturday means that it’s time for another “picdump” — the weekly assortment of amusing or interesting pictures, comics, and memes I found over the past week. Share and enjoy!











654213593_1356747429806932_2928286953993687069_n

652086860_17953023891103257_4879380391915035138_n

651333366_10232376612422704_3972805924345657271_n

thiel-challenges-pope

549370551_800526085891363_391086373483960089_n

549717442_800526185891353_7529087228920131967_n

549991521_800526159224689_3680604550099129867_n

653815466_1355771273237881_173878413399286030_n

coffee-claude-code-good-salary

651364626_4121422538117833_2888948563536670524_n

650663253_1352285560253119_3397680695499538061_n

651706660_1526318742394097_6721186870369495411_n

654410578_1355568616591480_7496717974597901677_n

647213040_930582016219102_4955755167531203653_n

652978205_10241489239308795_3654222389743814065_n

652816028_1355468283268180_3019765881945484801_n

IMG_1661

architects-are-cooked

651815460_1355038806644461_3255757254238562942_n

651103951_1353347233480285_1459691371318752388_n

651681979_1355038753311133_5529450129885078779_n

653705110_1353382403476768_4707381902181221018_n

652806363_1353198100161865_5845852857831867623_n

654796178_1356239563191052_988664307846968088_n

654711185_1356077363207272_860996470257047907_n

95664421344290af

long_career

650813246_1352756940205981_2122026986851675331_n

654840579_1355949626553379_3549930190039140569_n

looks-like-the-client-paid-twice

652198709_1353814593433549_2832306910281767041_n

651805295_1355533969928278_7489165822340740578_n

software-developers-in-the-1960s

550336115_800526119224693_632489340702387808_n

652859351_1352565963558412_7356938921909558764_n

rust

what-are-you-doing-with-openclaw

652929280_1353442340137441_3399530613944033061_n

openai_-_metered_intelligence

653704322_1356576499824025_7728409819686114255_n

550209445_800526149224690_4820512775191587626_n

652575612_1355710716577270_799259824397935466_n

Screenshot
Screenshot

654328788_1356891399792535_8906912711653776732_n

655450447_1356384156509926_465682822689050162_n

IMG_1559

652321553_26312628105036866_2735559570509623340_n

549779486_800526235891348_1689249475906038809_n

bees-brutalism

655878986_1356963559785319_8192395444039431164_n

IMG_1576

628968967_18311254276261452_302650173698145987_n

655585186_1356425703172438_5251376131610962950_n

busted

light_mode

654017828_1356613039820371_5605005763607946269_n

IMG_1658

550266581_800525969224708_616119452996554822_n

thank-you-tim-apple

1773577809486

652103374_1354975833317425_7916187736626925211_n

matrix-multiplication

652216452_1353114890170186_3793657187566577748_n

652667413_1352876976860644_5726460233617585307_n

distracted-boyfriend-defense-tech

651901663_1353814656766876_596265528372390667_n

grindr

650388745_1352701516878190_1029044013553080465_n

IMG_1659

farewell-card

654435824_1356384113176597_4716270433247029591_n

652348525_1353382563476752_8010025433281683262_n

655981579_1357199939761681_6134852458043219106_n

550265539_800525942558044_2891748077945085213_n

Screenshot
Screenshot

651787241_1356205929861082_7085312147133075763_n

549763236_800526179224687_931373873127810921_n

652813449_1356683283146680_4287461711691719577_n

653849188_10165139303840990_7859051597669363359_n

651890339_2084975709017301_8073612416787993422_n

653494366_1355295756618766_2429790887234863392_n

551115668_800526099224695_1720492459887050929_n

653554096_26338754162424624_3874551876960078720_n

654320170_1354309073384101_1655435356136110262_n

549472841_800526205891351_3788657651985860675_n

652631900_1357247186423623_8466573520347029346_n

654343289_2084975815683957_6765646474086197525_n

652687993_1353990343415974_6009068164403640265_n

653067790_1356649016483440_4781706705728307500_n

654513497_1356913326457009_7407611357163372382_n

evolution-of-HCI

653061664_1355641099917565_5466670021080040235_n

651929505_1352813190200356_1062911261093097802_n

651897036_1355095366638805_6121547096362030968_n

653802927_1353950473419961_3251129801608277457_n

549922657_800526125891359_1445873798474823582_n

654862372_1356308966517445_8641638504476447463_n

655161259_1355771316571210_6427265953771318936_n

652334285_1354937856654556_3491159636845703393_n

653414929_1356465883168420_5940459633121518284_n

652972996_1353781140103561_6468887162097014340_n

655792677_1357117493103259_1468412186361493313_n

654830940_1355829483232060_6752797449214201858_n

655848599_1356239626524379_6546772961256668328_n

can-an-llm-write-maintainable-code

update-delete-where

651832674_1352589506889391_3595627019009207343_n

653028141_1356891443125864_8875171348034882195_n

sign_of_the_vibe_times

655433808_1355604796587862_1112072685579467442_n

655720414_1356648983150110_445728987301652840_n

lunacy_with_a_sprinkling_of_racism

block_rehiring

651227240_1352500533564955_8224525509923756600_n

652803613_1354111563403852_5373907110098954445_n

Screenshot
Screenshot
Categories
Current Events Meetups Tampa Bay

Tampa Bay tech, entrepreneur, and nerd events list (Monday, March 23 – Sunday, March 29)

Here’s what’s happening in the thriving tech scene in Tampa Bay and surrounding areas for the week of Monday, March 23 through Sunday, March 29!

This list includes both in-person and online events. Note that each item in the list includes:

✅ When the event will take place

✅ What the event is

✅ Where the event will take place

✅ Who is holding the event

Need to see last week’s list? It’s here.

This week’s events

Monday, March 23

Event name and location Group Time
Food, Fun & Games!
Monday, Mar 23 · 6:00 PM to 8:00 PM EDT
Gulfside Gatherings 7:15 PM
Venice Area Toastmasters Club #5486
Online event
Toastmasters District 48 7:30 AM to 9:00 AM EDT
✨A Practical Intro to Systemic Game Design – Course presentation Mar23
Online event
Orlando Unity Developers Group 9:00 AM to 10:00 AM EDT
Tea Tavern – Dungeons and Dragons
Monday, Mar 23 · 6:00 PM to 11:00 PM EDT
Tea Tavern Dungeons and Dragons Meetup Group – DMS WANTED 5:59 PM
No Meeting “MVP Summit Week” Continue SelfPace Learning
Online event
Orlando Power BI User Group 6:00 PM to 7:00 PM EDT
Speakeasy Toastmasters #4698
Online event
Toastmasters District 48 6:00 PM to 8:00 PM EDT
Sarasota Blood on the Clocktower
Clocktower meetup
Board Games and Card Games in Sarasota & Bradenton 6:00 PM to 10:00 PM EDT
MTG: Commander Night
Critical Hit Games
Critical Hit Games 6:00 PM to 11:00 PM EDT
Toast of Lakewood Ranch Toastmasters Club
Lakewood Ranch Town Hall
Toastmasters District 48 6:30 PM to 7:30 PM EDT
North Port Toastmasters Meets Online!!
Online event
Toastmasters District 48 6:30 PM to 8:00 PM EDT
Adult Dungeons & Dragons One-Shot Campaigns at Conworlds Emporium
Conworlds Emporium
Tarpon Springs Community Fun & Games 6:30 PM to 10:00 PM EDT
Stirling Toastmasters Club #7461614 | Public Speaking & Leadership Development
Dunedin
Toastmasters District 48 7:00 PM to 8:30 PM EDT
Let’s Talk Toastmasters
Online event
Toastmasters Divisions C & D 7:00 PM to 8:30 PM EDT
DigiMondays
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:30 PM to 9:30 PM EDT
Weekly General Meetup
Online event
Beginning Web Development 8:00 PM to 9:00 PM EDT
Where is Bitcoin Going?
Online event
Bitcoiners of Southwest Florida 9:00 PM to 10:00 PM EDT
Return to the top of the list

Tuesday, March 24

Coffee and AI - No tech experience required!

Tuesday at 10 a.m. at Hashtag Cafe (Sarasota): The EveryDay AI Learning & Social Meetup Group presents Coffee & AI, a casual Saturday morning conversation for non-technical people who want to understand what AI can actually do in everyday life. No laptops required. No jargon. Just coffee, good conversation, and a few genuine “I didn’t know it could do THAT” moments.

Hosted by Rudy Poe, Emmy-winning filmmaker, serial entrepreneur, and Sarasota local, who’ll show you how and why you will want to use AI.

Find out more and register here.

Tuesday at 6:00 at Embarc Collective (Tampa): Calling all e-commerce operators, remote workers, digital marketers, Shopify entrepreneurs, Facebook Ads pros and AI enthusiasts and start-up entrepreneurs! Join us for an evening of high-impact networking and actionable conversations in the heart of Tampa Bay. This month’s keynote will be Content Strategy in the Age of AI: Paid vs. Organic.

Two free drink tickets with admission.

Find out more and register here.

Event name and location Group Time
v-Lean Coffee
Online event
Tampa Bay Agile 7:30 AM to 8:30 AM EDT
Coffee & AI: No Tech Skills Required
Hashtag Café
EveryDay AI Learning & Social Meetup Group 10:00 AM to 11:00 AM EDT
CTampa Digital Mixer: eCommerce, Social Media, Advertising, AI & Tech Pros
Embarc Collective
Tampa Digital Mixers 6:00 PM to 8:00 PM EDT
Weekly Open Make Night
4931 W Nassau St
Tampa Hackerspace 6:00 PM to 9:00 PM EDT
Free Interactive Workshop: Master the Small Speeches of Everyday Life
Dunedin Public Library
Dunedin Toastmasters 2166 6:00 PM to 8:00 PM EDT
Bartow Toastmasters HYBRID Meeting
2250 S Floral Ave
Toastmasters Division E 6:00 PM to 7:15 PM EDT
Disney Lorcana Night
Critical Hit Games
Critical Hit Games 6:00 PM to 11:00 PM EDT
Hobby Night
Critical Hit Games
Critical Hit Games 6:00 PM to 11:00 PM EDT
Pinellas Writers and Authors Weekly Meeting (Online/Zoom)
Online event
Pinellas Writers Group 6:00 PM to 9:00 PM EDT
Video Game Design and Development Group!
MakerSpace Pinellas
Makerspaces Pinellas Meetup Group 6:30 PM to 8:00 PM EDT
D&D @ Critical Hit Games (Full)
Critical Hit Games
RPG-Pinellas 6:30 PM to 11:00 PM EDT
Tuesday Night Trivia at Henderson’s Kitchen and Bar
Henderson’s Bar & Kitchen
Gen Geek 6:30 PM to 9:30 PM EDT
[In-Person] Bitcoin Meetup – ARK Innovation Center
Tampa Bay Innovation Center
Tampa Bay Bitcoin 7:00 PM to 9:00 PM EDT
Woodshop Safety (Members Only)
Tampa Hackerspace West
Tampa Hackerspace 7:00 PM to 10:00 PM EDT
Building Beautiful Command Line Apps
Online event
The Orlando Python User Group 7:00 PM to 8:30 PM EDT
AI Topics — What is machine learning? A high level overview.
Online event
The Infinite Loop Lounge 7:00 PM to 8:00 PM EDT
Toast of Celebration Toastmasters
Celebration Community Field Complex
Toastmasters Division E 7:00 PM to 8:30 PM EDT
Winter Springs Toastmasters Club
Online event
Toastmasters Divisions C & D 7:00 PM to 8:15 PM EDT
Boards & Bones Table Top RPGs
Nerdbrew Rented Space
Nerdbrew Events 7:00 PM to 11:00 PM EDT
St. Pete Beers ‘n Board Games Meetup for Young Adults
Pinellas Ale Works Brewery
St. Pete Beers ‘n Board Games for Young Adults 7:00 PM to 10:00 PM EDT
Trivia Nights @ Escape Brewing Company – Trinity
Escape Brewing Company
Tampa Bay Area Trivia Players 7:00 PM to 9:00 PM EDT
Yu-Gi-Oh Evening Tournament
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:00 PM to 11:00 PM EDT
Nic At Nite – Weekly Movie Night
Online event
Nerdbrew Events 7:30 PM to 9:30 PM EDT
Online Event: Shut Up & Write on Zoom
Online event
Shut Up & Write!® Tampa 7:45 PM to 9:15 PM EDT
Return to the top of the list

Wednesday, March 25

Heart of Agile logo

Wednesday at 12:30 online: The Heart of Agile Coffee Corner brings people together from around the world via Zoom in a casual setting to share and discuss ways we Collaborate, Deliver, Reflect, and Improve.

After February’s reset conversation with Alistair Cockburn, we’ll keep exploring the kinds of topics people asked for: real‑world stories of agile in practice, small high‑leverage changes in how we work together, and the intersections between Heart of Agile and emerging areas like AI—shaped by who’s in the room and what you bring.

The Heart of Agile is not just for software teams; it applies anywhere people work together—healthcare, education, community work, product development, coaching, and beyond—so you’re welcome whether or not you work in tech.

Find out more and register here.

St. Pete / Tampa AI Salon

Wednesday at 5:30 at Ark Innovation Center / spARK labs (St. Pete): AI Salon St Pete/Tampa/Orlando will take place!

Find out more and register here.

Wednesday at 6:00 at Embarc Collective (Tampa): A hands-on workshop focused on making your business more capable, efficient, and competitive with AI. This three-part series explores practical tools, real-world workflows, and proven strategies to help your business thrive with AI in 2026 and beyond. Hosted by Clarky AI, this workshop is built and led by software engineers—practitioners who design and deploy AI systems—not event professionals.

Find out more and register here.

Event name and location Group Time
Heart of Agile Coffee Corner – Connect & Reflect
Wednesday, Mar 25 · 12:30 PM to 1:30 PM EDT
Heart of Agile St. Pete – Tampa – Orlando 6:35 PM
Magic Pioneer Event
Wednesday, Mar 25 · 7:00 PM to 10:30 PM EDT
Sunshine Games 5:53 PM
World Toasters Toastmasters Club
Online event
Toastmasters Division E 7:05 AM to 8:00 AM EDT
Tampa Highrisers Toastmasters
Hyde Park United Methodist Church
Toastmasters District 48 7:45 AM to 8:45 AM EDT
Computer Repair Clinic
2079 Range Rd
Tampa Bay Technology Center 8:30 AM to 12:30 PM EDT
Lunch Hour Meetup
Online event
Sarasota Web Development Meetup Group 12:00 PM to 1:00 PM EDT
Wednesday Night Gaming
Nerdy Needs
Brandon Boardgamers 5:00 PM to 10:00 PM EDT
AI Salon St Pete/Tampa/Orlando #4
ARK Innovation Center
AI Salon St Pete/Tampa/Orlando 5:30 PM to 8:30 PM EDT
CNC Wednesday’s
MakerSpace Pinellas
Makerspaces Pinellas Meetup Group 5:30 PM to 7:30 PM EDT
Wednesday Board Game Night
Bridge Center
Tampa Gaming Guild 5:30 PM to 11:00 PM EDT
Orlando Chess Association
West Osceola Library
Greater Orlando Chess 5:30 PM to 8:30 PM EDT
Chess Club at Conworlds Emporium Every Wednesday
Conworlds Emporium
Tarpon Springs Community Fun & Games 5:30 PM to 7:00 PM EDT
AI Workshop – Tampa
Embarc Collective
Clarky AI 6:00 PM to 8:00 PM EDT
Casual Commander Wednesdays
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 6:00 PM to 11:00 PM EDT
Board Game Night
Critical Hit Games
Critical Hit Games 6:00 PM to 11:00 PM EDT
AWS Lightning Talks!
Dr. Phillips Academic Commons
Orlando AWS User Group 6:30 PM to 8:30 PM EDT
Tampa Writers Alliance Critique Group
Online event
Tampa Writers Alliance 6:30 PM to 8:30 PM EDT
Carrollwood Toastmasters Meetings meet In-Person and Online
Jimmie B. Keel Regional Library
Toastmasters District 48 7:00 PM to 8:30 PM EDT
Apopka Foliage Toastmasters
Online event
Apopka Foliage Toastmasters 7:00 PM to 8:30 PM EDT
Games & Grog! Board game night @ Peabodies
Peabodies
Nerdbrew Events 7:00 PM to 11:00 PM EDT
Let’s make stuff (sketching and/or writing)
Panera Bread
Orlando Entertainment Industry Creatives 7:00 PM to 9:00 PM EDT
ONLINE / SPANISH: EPICTETO DISERTACIONES POR ARRIANO
Online event
Orlando Stoics 7:00 PM to 8:30 PM EDT
Trivia Night at Tampa Tap Room – Carrollwood
Tampa Tap Room
Tampa Bay Area Trivia Players 7:30 PM to 9:30 PM EDT
Cardfight Vanguard!! OverDress Weekly
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:30 PM to 9:30 PM EDT
Game Night!
Lucky Spartan
Tampa 20’s and 30’s Social Crew 7:30 PM to 9:30 PM EDT
Masterclass IT Project Mgmt. Certs, Jobs, Interviews & Transition
Online event
Wesley Chapel PM and IT Connection 8:00 PM to 9:30 PM EDT
Return to the top of the list

Thursday, March 26

Element Midtown Tampa building, lit up at night

Thursday at 6 p.m. at sal y mar (Midtown Tampa): Tampa Bay New-In-Tech presents Tech meetup @ MidTown rooftop! Unwind after work and connect with professionals from across industries in casual, welcoming settings.

Whether you’re hoping to grow your network, exchange ideas, or simply take a break from the week, this is a great opportunity to meet like-minded people in one of Tampa’s most vibrant spots.

Find out more and register here.

AI-generated painting-style image of hacker

Thursday at 6 p.m. online: Tech in Full Effect presents Security Concerns in Vibe Coding. Drawing from real-world incident response and post-breach investigations, this presentation will break down common security failures tied to AI-assisted development, including blind trust in generated code, insecure defaults, over-permissioned APIs, prompt leakage, and the quiet disappearance of secure code review. It will also cover how attackers are already adapting to exploit these habits, not the tools themselves.

Attendees will leave with a practical framework for safely using vibe coding, including guardrails that preserve speed without sacrificing security, questions developers should ask before shipping AI-generated code, and simple controls that catch problems early. This session is designed for builders, security teams, and leaders who want the productivity boost of vibe coding without turning their app into a future breach case study.

Find out more and register here.

Lean Beer for All Things Agile - Networking 6:30 p - Lean beer 7 - 8 p - Optional afterparty - Wild Rover Brewery

Thursday at 6:30 p.m. at Wild Rover Brewery (Westchase): Time for another Lean Beer!

Lean Beer is an alternative to the early morning Lean Coffees, for folks who can’t always join us at 7:30 AM. Lean Beer is a great place to ask questions and share your stories of using Agile and Lean software approaches, over an adult beverage, if you choose. They discuss any topics on Agile and Lean that are of interest to whomever is gathered. You suggest the topics, then they prioritize that list democratically, through a good ole’ fashion vote. They manage our discussions via time boxes, and a Roman vote (drinks up/drinks down). Vegas rules apply!

Find out more and register here.

Event name and location Group Time
Sarasota Speakers Exchange Toastmasters
Online event
Toastmasters District 48 12:00 PM to 1:00 PM EDT
Open Board Gaming Day at Dark Side
Dark Side Comics & Games
Board Games and Card Games in Sarasota & Bradenton 4:00 PM to 10:00 PM EDT
Omni Toastmasters Club 6861
Online event
Toastmasters Divisions C & D 5:45 PM to 7:00 PM EDT
Tech meetup @ MidTown rooftop
sal y mar
Tampa Bay New-In-Tech 6:00 PM to 8:00 PM EDT
Security Concerns in Vibe Coding
Online event
Tech in Full Effect 6:00 PM to 7:00 PM EDT
Vecna – Eye of Ruin (T4-APL19)
Coliseum of Comics Kissimmee
Adventurers of Central Florida 6:00 PM to 9:00 PM EDT
Board Game Night
Conworlds Emporium
Tarpon Springs Community Fun & Games 6:00 PM to 9:00 PM EDT
Warhammer Night
Critical Hit Games
Critical Hit Games 6:00 PM to 11:00 PM EDT
Lean Beer for All Things Agile (Tampa)
Wild Rover Brewing Company
Tampa Bay Agile 6:30 PM to 8:30 PM EDT
START YOUR OWN SIDE GIG! Small Business Thursdays!
MakerSpace Pinellas
Makerspaces Pinellas Meetup Group 6:30 PM to 8:30 PM EDT
Writing Meetup
HotWax Coffee Shop, Kava Bar & Tap House
Tampa Free Writing Group 6:30 PM to 8:30 PM EDT
Tampa Writers Alliance Poetry Group
Barnes & Noble Carrollwood
Tampa Writers Alliance 6:30 PM to 8:30 PM EDT
Creative Writing club
Foxtail coffee
Cozy Club 6:30 PM to 8:00 PM EDT
Palm Harbor Toastmasters Club #8248
1500 16th St
Toastmasters District 48 7:00 PM to 8:30 PM EDT
Book Club: “Solaris” by Stanislaw Lem
craft street kitchen
Geekocracy! 7:00 PM to 9:00 PM EDT
One Piece Thursdays
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:00 PM to 10:00 PM EDT
FABulous Thursdays
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:00 PM to 11:00 PM EDT
Pathfinder Society
Critical Hit Games
Critical Hit Games 7:00 PM to 10:00 PM EDT
Live streaming production and talent
124 S Ring Ave
Live streaming production and talent 7:00 PM to 9:00 PM EDT
Thursday Tacos & Tax Write Offs
Online event
Nerdbrew Events 7:30 PM to 10:30 PM EDT
Return to the top of the list

Friday, March 27

Google Developer Group

Friday at 7 p.m. online: Google Developer Group Central Florida presents their March Virtual “Show and Tell” of Projects by the Community!

Ready to showcase your creativity and ingenuity? Want to see what fun, cool, and innovative projects community members are working on? Then get ready for their March Creative Exchange!

Opportunities:

  • Showcase Your Craft: Experimenting with AI or trying to kickstart a new app? This is your stage! Demo your latest creations, share your process, and spark inspiration in others. Projects do not have to be perfect or completely refined to help inspire others.
  • The Creative Exchange: Need a second pair of eyes on an app you’re building? Or maybe you’re looking for a collaborator? Tap into their collective to get the feedback or partnership you need to level up.
  • Found a new “toy” or app that’s completely leveled up your creative flow? We want to see it in action! Come give us a quick demo of the tools or techniques that are making your work fun again. Your “aha!” moment might be exactly the inspiration someone else needs to break through a creative block.

Find out more and register here.

Event name and location Group Time
Computer Repair Clinic
2079 Range Rd
Tampa Bay Technology Center 8:30 AM to 12:30 PM EDT
Community Service at Metropolitan Ministries
Metropolitan Ministries
Tampa Bay Bitcoin 4:30 PM to 7:30 PM EDT
Friday Board Game Night
Bridge Club
Tampa Gaming Guild 5:30 PM to 11:00 PM EDT
MTG: Commander FNM
Critical Hit Games
Critical Hit Games 6:00 PM to 11:00 PM EDT
March Virtual “Show and Tell” of Projects by the Community
Online event
Google Developer Group Central Florida 7:00 PM to 8:00 PM EDT
Taps & Drafts | EDH/MtG Night
1Up Entertainment, Tampa
Nerdbrew Events 7:00 PM to 9:00 PM EDT
Modern FNM
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:00 PM to 10:30 PM EDT
Friday Pokemon Tournament
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:30 PM to 11:30 PM EDT
Return to the top of the list

Saturday, March 28

Event name and location Group Time
[Greenwood] Clearwater Philosopher’s Club [small]
Saturday, Mar 28 · 2:00 PM to 4:00 PM EDT
Clearwater Philosopher’s Club 2:00 PM
Steel TIG Welding Safety and Basic Usage $30 Class Fee (Members Only)
Tampa Hackerspace
Tampa Hackerspace 9:00 AM to 12:00 PM EDT
Saturday Chess at Wholefoods in Midtown, Tampa
Whole Foods Market
Chess Republic 9:30 AM to 12:00 PM EDT
Wood Shop Lathe 101 (Members Only)
Tampa Hackerspace West
Tampa Hackerspace 10:00 AM to 12:00 PM EDT
Intro to Rug Tufting
MakerSpace Pinellas
Makerspaces Pinellas Meetup Group 10:00 AM to 12:00 PM EDT
Dive into Virtual Worlds: Intro to AndroidXR & WebXR Tools
Online event
Google Developer Group Central Florida 10:00 AM to 11:00 AM EDT
EZ Stock (Stock, Options, Market)
2079 Range Rd
Tampa Bay Technology Center 10:00 AM to 12:00 PM EDT
Renaissance Fair!
Tampa 20’s and 30’s Social Crew 10:00 AM to 6:00 PM EDT
Saturday Gaming
Nerdy Needs
Brandon Boardgamers 1:00 PM to 6:00 PM EDT
Youth Dungeons & Dragons Saturdays (Ages7-12) At Conworlds Emporium
Saturday, Mar 28 · 2:00 PM to 5:00 PM EDT
Tarpon Springs Community Fun & Games 1:00 PM
FREE Fab Lab Orientation
Faulhaber Fab Lab
Suncoast Makers 1:30 PM to 2:30 PM EDT
D&D (5e) @ Black Harbor Gaming (FULL)
Black Harbor Gaming
St Pete and Pinellas Tabletop RPG Group 1:30 PM to 5:30 PM EDT
March 28th – It’s Game Night! – FUN, FUN, FUN!
IHOP
New Port Richey Game Night 5:30 PM to 8:30 PM EDT
Community Hang-out Night
Online event
Nerdbrew Events 6:00 PM to 9:00 PM EDT
Tampa Hackerspace Board Game Night
Tampa Hackerspace West
Tampa Hackerspace 7:00 PM to 10:00 PM EDT
Yu-Gi-Oh Evening Tournament
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 7:00 PM to 11:00 PM EDT
From Zero to Crypto: Trading & Digital Business Meetup
Online event
Crypto Visionaries Meetup 9:00 PM to 11:00 PM EDT
Return to the top of the list

Sunday, March 29

Event name and location Group Time
Saltmarsh and Beyond (5e 2024 D&D Campaign)
Sunday, Mar 29 · 3:00 PM to 7:00 PM EDT
Adventurers of Central Florida 3:09 PM
Weeki Wachee paddle with Gen Geek
Mary’s Fish Camp
Gen Geek 9:30 AM to 1:30 PM EDT
Distinguished Scholar Series: Brittany Polat
Online event
Orlando Stoics 12:00 PM to 1:30 PM EDT
Sunday Chess at Wholefoods in Midtown, Tampa
Whole Foods Market
Chess Republic 2:00 PM to 5:00 PM EDT
D&D Adventurers League
Critical Hit Games
Critical Hit Games 2:00 PM to 7:30 PM EDT
Savage Worlds: Thrilling Tales
Emerald City Comics 4902 113th Ave N, Clearwater, Florida 33760
St Pete and Pinellas Tabletop RPG Group 3:00 PM to 6:00 PM EDT
Sunday Pokemon League
Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh!
Sunshine Games 4:00 PM to 8:00 PM EDT
Sew Awesome! (Textile Arts & Crafts)
4933 W Nassau St
Tampa Hackerspace 5:30 PM to 8:30 PM EDT
A Duck Presents NB Movie Night
Discord.io/Nerdbrew
Nerd Night Out 7:00 PM to 11:30 PM EDT
Return to the top of the list

About this list

How do I put this list together?

It’s largely automated. I have a collection of Python scripts in a Jupyter Notebook that scrapes Meetup and Eventbrite for events in categories that I consider to be “tech,” “entrepreneur,” and “nerd.” The result is a checklist that I review. I make judgment calls and uncheck any items that I don’t think fit on this list.

In addition to events that my scripts find, I also manually add events when their organizers contact me with their details.

What goes into this list?

I prefer to cast a wide net, so the list includes events that would be of interest to techies, nerds, and entrepreneurs. It includes (but isn’t limited to) events that fall under any of these categories:

    • Programming, DevOps, systems administration, and testing
    • Tech project management / agile processes
    • Video, board, and role-playing games
    • Book, philosophy, and discussion clubs
    • Tech, business, and entrepreneur networking events
    • Toastmasters and other events related to improving your presentation and public speaking skills, because nerds really need to up their presentation game
    • Sci-fi, fantasy, and other genre fandoms
  • Self-improvement, especially of the sort that appeals to techies
  • Anything I deem geeky