<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[🧠🧐 David Bates 🧙‍♂️🗣 ]]></title><description><![CDATA[Modern magician according to Arthur C. Clark 🧠 Head of Innovation for @ozmoapp  🧐  Still working on my Gandalf beard 🧙‍♂️ Speaker 🗣 Father to four.]]></description><link>https://blog.dlbates.com</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 22:03:03 GMT</lastBuildDate><atom:link href="https://blog.dlbates.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Building a Game With My Son in This New AI Era]]></title><description><![CDATA[🎮: https://night-shift.magician.dev
My youngest came to me and said,

“Let’s build a game, Dad.”

And in under two hours, we had a game built and published for others to enjoy. This blog post goes through the experience and points out some of the re...]]></description><link>https://blog.dlbates.com/building-a-game-with-my-son-in-this-new-ai-era</link><guid isPermaLink="true">https://blog.dlbates.com/building-a-game-with-my-son-in-this-new-ai-era</guid><category><![CDATA[#ai-tools]]></category><category><![CDATA[#homeschool]]></category><category><![CDATA[stem]]></category><category><![CDATA[Game Development]]></category><category><![CDATA[agile methodology]]></category><category><![CDATA[Low Code]]></category><category><![CDATA[parenting]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Tue, 16 Dec 2025 00:41:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1765838667024/8631bb5f-812f-4427-ad26-7ac31ba1ea6b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>🎮: <a target="_blank" href="https://night-shift.magician.dev">https://night-shift.magician.dev</a></p>
<p>My youngest came to me and said,</p>
<blockquote>
<p>“Let’s build a game, Dad.”</p>
</blockquote>
<p>And in under two hours, we had a game built and published for others to enjoy. This blog post goes through the experience and points out some of the reasons that helped us pull it off.</p>
<p>It’s important to know that I try to spend one-on-one time with each of my kids doing whatever they want to do. Sometimes that’s just playing games. Sometimes it’s building something. This time, he wanted to build a game. It’s a request all of my kids have asked me to do at one point or another. They’ve seen me create games from a VR Jurassic Park adventure to small web games. So of course, they wanted to join in!</p>
<p>Before AI, this usually meant spending most of the time on scaffolding. Picking an editor. Finding assets. Wiring things together just to get to the point where you can even start thinking about the game itself. The lesson often ended up being that game development is hard, which is true, but it didn’t do much to spark imagination. Oftentimes, they’d lose interest before we could get to the game mechanics, or we’d wind up prototyping something in Scratch only for it to disappoint when they wanted to take it to the next level.</p>
<p>That part has changed. AI has made it easier, especially with low-code tooling that can lower the barrier to focusing on logic, game mechanics, etc, instead of scaffolding and keeping the kids engaged.</p>
<h2 id="heading-lowering-the-barrier-without-lowering-the-bar"><strong>Lowering the Barrier Without Lowering the Bar</strong></h2>
<p>My youngest already had a clear direction. His older sister had instilled a love of FNaF-style “survive the night” games, and he wanted to build something in that vein, but make it his own.</p>
<p>We started on his phone using <a target="_blank" href="http://gemini.google.com">Gemini</a>. Not coding yet, just breaking the idea down:</p>
<ul>
<li><p>What does “survive the night” mean?</p>
</li>
<li><p>What ends the game?</p>
</li>
<li><p>What does the player actually do?</p>
</li>
</ul>
<p>Once we had a solid description of the core components, we had <a target="_blank" href="http://gemini.google.com">Gemini</a> generate a playable version directly in <a target="_blank" href="https://gemini.google/overview/canvas/">Canvas</a>. It was surprisingly good. Good enough that we knew we were onto something.</p>
<p>That early win matters. Keeping his excitement high meant he’d be more likely to make it through some of the harder parts I knew were coming, and it kept the focus on <em>ideas</em> instead of tooling.</p>
<h2 id="heading-iteration-and-a-real-failure"><strong>Iteration (and a Real Failure)</strong></h2>
<p>As we added features, we eventually asked it to build a settings menu for a custom night.</p>
<p>Instead, it overwrote the project with a blank game.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765837191504/b7213219-c24a-4b61-bff1-5e9353a12b24.gif" alt="A totally different game because it lost context" class="image--center mx-auto" /></p>
<p>This was almost a catastrophe, but that led to a useful lesson… We’d hit the context window limit. He didn’t know that to him his game was just gone… No amount of prompting was going to recover that version. So we adjusted.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765837465869/38059838-2682-4542-97ed-b6b428636b54.png" alt="Gemini Desktop of the new game" class="image--center mx-auto" /></p>
<p>Knowing the basics of the game now we were able to reprompt a new chat and recreate it. Once we got to a stable point, we then moved the project into <a target="_blank" href="http://aistudio.google.com">AI Studio</a>, where we could manage the codebase more intentionally.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765837616506/25fca40a-417f-4d66-9224-963ffeb76cff.png" alt="AIStudio of the same game" class="image--center mx-auto" /></p>
<p>From there, the process became very familiar:</p>
<ul>
<li><p>Make a change</p>
</li>
<li><p>Playtest</p>
</li>
<li><p>Find bugs</p>
</li>
<li><p>Decide what mattered for MVP and what didn’t</p>
</li>
</ul>
<p>My son made most of those decisions. He’d play, find something that didn’t feel right, and we’d talk through whether it was worth fixing now or saving for later. When he wanted to add a feature, I’d ask if it was necessary for the game to work.</p>
<p>The conversations with him was the real value, he was so excited to add features but very pragmatic about not taking on too much at a time. It was pretty cool to be a part of.</p>
<h2 id="heading-teaching-the-agile-way-without-calling-it-that"><strong>Teaching the Agile Way (Without Calling It That)</strong></h2>
<p>At no point did we talk about “Agile,” but we practiced it the entire time:</p>
<ul>
<li><p>Start with a core idea</p>
</li>
<li><p>Break it into small, achievable pieces</p>
</li>
<li><p>Build just enough to test</p>
</li>
<li><p>Iterate based on what actually happens</p>
</li>
<li><p>Ship when it’s playable, not perfect</p>
</li>
</ul>
<p>This is the same way I approach professional work. The difference is that AI removed enough friction to let my nine-year-old stay engaged the whole time.</p>
<p>A good example of this was the custom night.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765844860611/ada9261c-df2e-4fcb-a476-549ffa8f91d4.gif" alt class="image--center mx-auto" /></p>
<p>Me, not knowing about FNaF, had to ask him what things we should customize, what that meant to the game and if we needed to or not. His reasoning was sound.</p>
<blockquote>
<p>“It’s in the main game dad (Sarcasm implied)… also it will give people a way to test the settings”</p>
</blockquote>
<p>So we added it!</p>
<h2 id="heading-shipping-it">Shipping It</h2>
<p>Once the game felt solid, he asked the best possible question:</p>
<blockquote>
<p>“Hey dad, can we publish this so my friends can play it?”</p>
</blockquote>
<p>Of course we could. So I pushed the project to GitHub and then began using <a target="_blank" href="https://antigravity.google/">Antigravity</a> to add the bits we’d need to host it on <a target="_blank" href="https://docs.github.com/en/pages">GitHub Pages</a>. Mainly, this was a workflow for publishing the built project to a branch, setting up a devcontainer so we could dev on any machine. I also took the opertunity to add some mobile optimizations we didn’t worry about in the core build.</p>
<p>And Night Shift was published! <a target="_blank" href="https://night-shift.magician.dev">https://night-shift.magician.dev</a></p>
<p>After it was live, he tried it out on all of our devices :) so we had some bugs to fix from that and then he wanted to add some easter eggs (Tell me if you find them)</p>
<p>So yeah, from idea to published game took about <strong>two hours</strong>… That’s right, <strong>TWO HOURS</strong>!</p>
<h2 id="heading-two-hours"><strong>TWO HOURS</strong></h2>
<p>Is the game perfect? No.</p>
<p>Does it have:</p>
<ul>
<li><p>a gameplay loop</p>
</li>
<li><p>working interfaces for mobile and desktop</p>
</li>
<li><p>audio (some are directly from code!)</p>
</li>
<li><p>level progression</p>
</li>
<li><p>and a concept entirely driven by a nine-year-old</p>
</li>
</ul>
<p>Yes… Yes it does and it’s out there ready to be played by his friends.</p>
<p>More importantly, he’ll always know that we built something together and shipped it. That matters far more than polish.</p>
<p>AI didn’t replace the work. It reduced the barrier to entry enough that the work could stay focused on creativity, iteration, and learning.</p>
<h2 id="heading-so-what-are-the-takeaways">So what are the takeaways?</h2>
<ul>
<li><p>AI removed the scaffolding overhead</p>
</li>
<li><p>We focused on ideas instead of tools</p>
</li>
<li><p>Iteration and playtesting happened early</p>
</li>
<li><p>MVP decisions were intentional</p>
</li>
<li><p>Shipping was part of the lesson, not the finish line</p>
</li>
</ul>
<h2 id="heading-do-this-with-your-kids">Do this with your kids!</h2>
<p>If you’re a parent, teacher, or mentor, this is a moment worth recreating. You don’t need a full weekend or a deep background in game engines. Start with a simple idea, break it down, and build just enough to test.</p>
<p>And if you’re doing this for yourself, the same applies. AI is at its best when it helps you <em>think and build</em>, rather than trying to replace either.</p>
<p>Sometimes the most important thing you ship is the experience itself. My son has inundated me with idea lists and bug reports, so I’m pretty sure what we’ll be spending our next 1:1 time doing :)</p>
]]></content:encoded></item><item><title><![CDATA[AI‑Assisted Workflows: How I Built MeshRx for 3D Model Repair]]></title><description><![CDATA[Background
As with many of the things I learn, I get just enough training to be dangerous and then use practical side projects to actually get my hands dirty. If you haven’t seen my interactive Christmas trees or the Pumpkin King, those are examples ...]]></description><link>https://blog.dlbates.com/aiassisted-workflows</link><guid isPermaLink="true">https://blog.dlbates.com/aiassisted-workflows</guid><category><![CDATA[AI]]></category><category><![CDATA[#ai-tools]]></category><category><![CDATA[AI Coding Assistant]]></category><category><![CDATA[generative ai]]></category><category><![CDATA[Developer Tools]]></category><category><![CDATA[side project]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Mon, 01 Dec 2025 23:14:54 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1764630675659/c8f04ecd-47e0-4603-97f1-ffbd10550eb9.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-background">Background</h2>
<p>As with many of the things I learn, I get just enough training to be dangerous and then use practical side projects to actually get my hands dirty. If you haven’t seen my interactive <a target="_blank" href="https://github.com/DavidBates/DavidBates/blob/main/tree_trimmed.gif">Christmas trees</a> or the <a target="_blank" href="https://www.tiktok.com/@modern.magician/video/7295958411190095146?is_from_webapp=1&amp;sender_device=pc&amp;web_id=7284093191287670315">Pumpkin King</a>, those are examples of how I use real-world problems to actually build with things I’m learning. If it’s a complete flop, I just move on to the next project. AI tooling is no different…</p>
<p>I’ve been working on a few side projects and trying to get my AI tooling workflow dialed in through them. One of those is MeshRx, a Rust-based utility for applying common fixes to 3D models. The side project itself isn’t the focus of this post, but the workflow behind how I developed it is.</p>
<p>It’s important to note that I have built many things in C++ but have only played with Rust. So this is a newer language to me. I also have extensive knowledge of 3D modeling and CAD software engineering, so I understand the processes that need to be applied to fix model issues.</p>
<h2 id="heading-it-all-starts-with-a-conversation">It all starts with a conversation</h2>
<p>It all started as a conversation with <a target="_blank" href="https://chatgpt.com/">ChatGPT</a> about the need for this kind of utility and examples of how meshes can be broken. I researched existing tools and open-source utilities, and coming off the success of <a target="_blank" href="http://mat2vert.magician.dev">mat2vert.magician.dev</a>, I knew I wanted both an online repair tool and a macOS tool for bigger or more complex files. <a target="_blank" href="https://bambulab.com/en-us/download/studio">Bambu Studio</a> and other slicers don’t have repair functionality built in, and it often leaves people searching for solutions. This was my niche.</p>
<p>Knowing this, ChatGPT and I picked the language and frameworks to accomplish our goals, then set out to break the project into phases that I could further chunk with speckit. ChatGPT already knows my coding style but we chatted through the important bits so it understood what I wanted out of each “Phase”… Small, testable steps to build a larger system.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1764624775706/933edf25-ed45-4217-86c0-01b4284a62b0.png" alt="A snippet of the conversation between ChatGPT and I" class="image--center mx-auto" /></p>
<p>After breaking down the project with ChatGPT, I had it output an agent_instruct file I could use to initialize the repo. This file is similar to .agent or .claude but is a format that I’ve come up with to describe the basic project architecture, coding styles, etc. Here’s a snippet from that output:</p>
<pre><code class="lang-markdown"><span class="hljs-section"># agent<span class="hljs-emphasis">_instruct.md — Mesh Repair Core (Rust)

## Context

You are building the <span class="hljs-strong">**core geometry/repair engine**</span> for a cross-platform mesh repair tool, written in <span class="hljs-strong">**Rust**</span>.

The long-term product has <span class="hljs-strong">**three layers**</span>:

1. <span class="hljs-strong">**Core Rust library (this project, Phase 1)**</span>
   - Rust crate providing robust mesh loading, repairing, and saving.
   - Exposes a clean, idiomatic Rust API for internal use.
   - Also exposes a small, C-compatible FFI API for use by other layers.

2. <span class="hljs-strong">**WebAssembly frontend (Phase 2, separate package)**</span>
   - Browser-only, privacy-preserving tool (no servers; all processing in the client).
   - Uses the Rust core compiled to <span class="hljs-strong">**WebAssembly**</span> (via `wasm-bindgen` / `wasm-pack`).

3. <span class="hljs-strong">**macOS app (Phase 3, separate project)**</span>
   - SwiftUI app for macOS (Intel + Apple Silicon).
   - Links against the Rust core as a `cdylib` / `staticlib` via C FFI.
   - Provides a friendly GUI for large or complex meshes.

You are currently responsible <span class="hljs-strong">**only for Phase 1 (Core Rust crate + CLI + FFI hooks)**</span>, but you must design the core so it can be safely reused by the WebAssembly and macOS projects without major refactors.

---
...
---
## Language, Tooling, and Dependencies

- Rust 2021 edition.
- Pure Rust where possible.
- Dependencies allowed (and should be reflected in `specs/001-core-implementation/spec.md` and contracts):
  - `clap` or `argh` for CLI
  - `thiserror` for error types
  - `log`/`env_</span>logger`</span>
<span class="hljs-bullet">  -</span> <span class="hljs-code">`nalgebra`</span> (optional, if needed)

Follow any additional dependency guidance or constraints defined in the spec files.

---

<span class="hljs-section">## Core Data Structures (Conceptual)</span>

<span class="hljs-quote">&gt; <span class="hljs-strong">**Canonical definitions are in**</span> `specs/001-core-implementation/contracts/data-model.md`.  </span>
<span class="hljs-quote">&gt; Use that file for exact field names, types, and visibility.</span>

Conceptually, the core mesh types look like:
...
</code></pre>
<p>I keep this file at the root of the repo in a folder called .agent, and I’ve added that folder to the search paths for all my AI tooling. For example, I symlink <a target="_blank" href="https://code.claude.com/docs/en/gitlab-ci-cd#claude-md-configuration">.claude.md</a> to this file, and I update the <a target="_blank" href="https://code.visualstudio.com/docs/copilot/customization/custom-instructions">Copilot VS Code instructions</a> so they look in .agent as well.</p>
<p>If the file gets too long or too detailed, I split it into smaller pieces (project_arch, coding_guidelines, feature_xxx, etc.) and then reference those from the main agent_instruct file. I’ve found that most coding tools can pull in extra files as needed, and when instructions get long, they tend to follow smaller, more focused documents much better than one giant one.</p>
<p>So with my agent_instruct and basic repo initialized, I then set out to define the work to be done in the first phase.</p>
<h2 id="heading-use-speckit-to-really-define-the-work-to-be-done">Use SpecKit to really define the work to be done</h2>
<p>From there, I used <a target="_blank" href="https://github.com/github/spec-kit">Speckit</a> to further break down the initial phase (the Rust CLI). I used GitHub Copilot with Claude and Speckit to do this. Working through the plan, research, and tasking really helped me hone in on what we were trying to accomplish. Phase I was intentionally narrow: close holes in models naively through a Rust CLI. On the side, I had been requesting several files from various 3D printing Discords that I could use as tests… Having these and making sure the spec used those specific files ensured I had a good base for phase I.</p>
<p>The coding model would know explicitly what I wanted through the spec framework, it had extra guidance it could access through the agent_instruct file, and it had known bad files to test against. I was feeling pretty confident.</p>
<p>Up to this point, no actual code had been produced. It was just conversations with different LLMs at different scopes (high-level project overview vs. detailed spec definition). Now that I was confident in what we were building and confident that it was all documented it was time to let yet another model loose on the codebase.</p>
<h2 id="heading-use-a-big-model-to-do-the-heavy-lifting">Use a big model to do the heavy lifting</h2>
<p>I’ve used Speckit implemented in Copilot, and while it does perform rather well, I’ve found that using Claude CLI or Codex (my go-to) is better at following the instructions and getting more of the generated code right the first time. I always have to go back to Copilot or smaller models for the more interactive troubleshooting that follows, but for the big swath of code gen, I’ll typically use Codex.</p>
<p>That being said I was recently in some lives with AI coders from around the world that was singing Gemini Pro 3’s coding capabilities and they had just released Antigravity so I decided to give <a target="_blank" href="https://antigravity.google/">Antigravity</a> a try. I must say I’ve been pleasantly surprised… It was a bit of a curve to get devcontainers and other integration I come to expect by default in VS Code configured. But once that was done I found it to be a pretty decent IDE… it is essentially VSCode after all.</p>
<p>Its direct integration with VS Code actually made for some really fun experiences: presenting a plan in the main editor, taking over the terminal, managing the file system, even using checkboxes in the editor window and ticking them off as it went. I basically pointed it to the spec and agent_instruct and told it to complete phase I.</p>
<p>After a bit, Phase I was completed. There were bugs, and I iteratively swapped between Gemini Pro 3 and Copilot with Claude to resolve them. Having the sample models really helped here as I could test and load the output in Bambu Studio. But overall, the experience was smooth!</p>
<h2 id="heading-yes-one-more-ai">Yes, one more AI</h2>
<p>Once I felt confident with the codebase, I submitted a PR and had Copilot review it. It found several things (unused imports, logic that would swallow errors, small edge cases) that were easy to address. In fact, it had auto-buttons to just address them there, but I again often opted to go back to Copilot and work iteratively through them until the PR was good.</p>
<p>As I actually got to playtest the CLI, I realized I needed to include some pipelines in so I added a phase for a CI/CD pipeline to have the WASM and CLI built as GitHub artifacts!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1764627409472/95780071-76dc-44dc-bbca-0d138475c73b.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-next-phase">Next phase</h2>
<p>As I was adding an additional phase, “Volumetric Repair.” I realized the agent forgot to update the WASM crate even though it had made breaking changes to the API. I had included it in the spec to check that the WASM crate built successfully, but in the end, it decided not to fix the crate and instead just document a breaking change… It was lazy. Even though I had play tested the CLI and saw it was working I overlooked the WASM build… This was caught in that CI/CD pipeline, even though I didn’t think to test the WASM locally during that iteration. So building that out early helped me detect issues I didn’t think to check.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1764628291104/60a05ccd-b07b-4c88-89f5-25be52666bd8.png" alt class="image--center mx-auto" /></p>
<p>I repeated the same methodology for the later phases and now have a working CLI (Linux/Mac/Windows) and WASM that can do basic repairs. I’ve even been able to help some people on Discord who had broken meshes that current solutions couldn’t fix!</p>
<h2 id="heading-so-what">So what?</h2>
<p>If you’ve read this far, you might be thinking, “Great, it worked for you… so what?” I’d say the project itself is just an example of a workflow that’s been working for me, and I wanted to share it and hear input from others.</p>
<p>The main things that I’ve found helpful with AI tooling are:</p>
<ul>
<li><p>An initial conversation with an LLM can help solidify the idea and plan. Both for you and the coding tools.</p>
</li>
<li><p>Create an overall guidance doc (agent_instruct) that all of the other coding tools can use as a basic reference for the project architecture, coding style, frameworks/languages, and general guardrails.</p>
<ul>
<li>Use the initial conversation to help seed that document</li>
</ul>
</li>
<li><p>Get down into the nitty-gritty of each milestone with SpecKit and clearly define what you want to accomplish. Use your overall guidance doc as context when generating specs.</p>
</li>
<li><p>Provide the test cases yourself or use real-world examples that can be tested.</p>
</li>
<li><p>Use a large coding AI (Claude CLI, Codex, Gemini Pro 3) to actually implement the spec you defined.</p>
<ul>
<li><p>Review the code yourself. Make sure the tools didn’t leave any unwanted or missed requirements.</p>
</li>
<li><p>Run the same commands and test cases. Don’t believe it ran all of those for you.</p>
</li>
<li><p>Make sure it updates the artifacts too.</p>
</li>
<li><p>Use Copilot or other small interactive models to troubleshoot.</p>
</li>
</ul>
</li>
<li><p>Play-test the output, ensure that the tool produced what you wanted</p>
<ul>
<li>Hold back some test cases for your own use to ensure the solution wasn’t hyper-optimized for the test cases.</li>
</ul>
</li>
<li><p>Use PR’s as a final check with Copilot reviewing the entire codebase.</p>
</li>
<li><p>Build CI/CD pipelines early that will alert you of missing or failed items.</p>
</li>
<li><p>You are part of the process… Every process. Make sure the tool works for you.</p>
</li>
</ul>
<p>These are just general guidlines that I use in my flow and I’d love to hear from you how you are utilizing these tools and what processes work for you! Hit me up on my socials to engage.</p>
<p>if you would like to try out MeshRx it’s now available at <a target="_blank" href="https://meshrx.magician.dev/">https://meshrx.magician.dev/</a>, Mac app coming soon.</p>
]]></content:encoded></item><item><title><![CDATA[Meet the Munchmans]]></title><description><![CDATA[It started with a simple question from my youngest son:
“What Simpsons character would you be?”
We tossed around a few guesses, laughing about whether I was more of a Homer or a Ned, and then I flipped the question back at him. That’s when the lightb...]]></description><link>https://blog.dlbates.com/meet-the-munchmans</link><guid isPermaLink="true">https://blog.dlbates.com/meet-the-munchmans</guid><category><![CDATA[AI]]></category><category><![CDATA[fun]]></category><category><![CDATA[family]]></category><category><![CDATA[generative art]]></category><category><![CDATA[generative ai]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Tue, 08 Apr 2025 07:11:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088584938/8ee53739-2acc-43a6-82d4-502563ec5236.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It started with a simple question from my youngest son:</p>
<p><strong>“What Simpsons character would you be?”</strong></p>
<p>We tossed around a few guesses, laughing about whether I was more of a Homer or a Ned, and then I flipped the question back at him. That’s when the lightbulb went off… I remembered how we’d used ChatGPT 3.5 in the past to create a fun little RPG together, where he gave input and the AI spun a story around it. We had a merry adventure beating an orc, tricking a wizard, and eventually saving the day. Why not see if it could figure out what Simpsons character we would be?</p>
<p>This time, with GPT-4o, I uploaded a photo of him and asked it to turn him into a <em>Simpsons</em> character. Not only did it create a fantastic cartoon version of him in that signature yellow hue, it gave him a name, a personality, a backstory. He instantly transformed into <strong>Milo Munchman</strong>, a snack-loving, big-hearted troublemaker with a squirrel sidekick “Nutters” and a knack for vending machine mischief.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088633320/5cfd8cac-ee3b-40a8-8d02-8fa25d14e600.png" alt="Nutters &amp; Milo" class="image--center mx-auto" /></p>
<p>And then, as these things often do in our house, it spiraled… in the best way possible.</p>
<p>We brought in the rest of the family:</p>
<p>• <strong>Abe Munchman</strong>, the quiet, bearded engineer dad who keeps the Springfield Power Plant from imploding (from the basement, of course).</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088815386/0b6f383e-1c82-4103-a6e8-9dd852f0e1c7.png" alt class="image--center mx-auto" /></p>
<p>• <strong>Marge Munchman</strong>, the loving, detail-oriented homemaker and holiday party queen.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088737442/a6a2ff8b-b1d8-4d46-8462-463a951f7787.jpeg" alt class="image--center mx-auto" /></p>
<p>• <strong>Lisa Munchman</strong>, Milo’s fiercely loyal older sister with a pink-shirt-wearing soft armor philosophy.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088755120/ff53d12f-b416-46ba-bff6-39fbb61560b6.jpeg" alt class="image--center mx-auto" /></p>
<p>• <strong>Bart and Burt</strong>, the lovable goofball older brothers who specialize in breaking things creatively.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088765523/588fb185-4bb3-4660-a91c-418d1b4d9363.jpeg" alt class="image--center mx-auto" /></p>
<p>• <strong>Mimi Munchman</strong>, the grandma with a purse full of wisdom and snacks.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088775216/7fa67ac3-7ca7-44f2-b2e6-ab10df29023e.jpeg" alt class="image--center mx-auto" /></p>
<p>• <strong>Maw Maw</strong>, the homesteading, plaid-clad matriarch who can outbuild, outbake, and outwit just about anyone.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088784536/da393b1f-36b7-4f00-9a6f-8c7d93db99fa.jpeg" alt class="image--center mx-auto" /></p>
<p>• And <strong>Auntie Grace</strong>, the galaxy-hoodie-wearing cosmic crafter and aunt every kid dreams of.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744088793084/70d197e9-5284-4764-85d7-92e7e32461d8.jpeg" alt class="image--center mx-auto" /></p>
<p>We had a blast watching each image pop into existence, complete with Christmas hats, personality quirks, and in some cases, galactic glitter! The backstories were sometimes <em>eerily</em> spot-on and sometimes hilariously off, but always perfect. We laughed, we built out a fictional universe, and honestly, we made a memory that’ll stick with us for a long while.</p>
<p>What started with a question turned into a full-blown family portrait, <em>Springfield style</em>.</p>
<p><strong>Want to Do It Yourself?</strong></p>
<p>If you’re curious to try this out with your own family (or just want to see yourself as a Simpson), here’s how we did it:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744089052725/1cd7294e-7582-4271-8918-f9574dc462c4.png" alt class="image--center mx-auto" /></p>
<p>1. Upload a photo to GPT-4o.</p>
<p>2. Ask it to turn the person into a <em>Simpsons</em> character.</p>
<p>3. Request a backstory… and maybe a catchphrase for good measure.</p>
<p>4. Keep going. Add relatives, pets, friends, and create your own little Springfield.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744089077221/c6c16d05-cb8d-4b39-ad73-a8598e60f3d6.png" alt class="image--center mx-auto" /></p>
<p>I love utilizing AI to help me <em>spark play</em>, <em>fuel creativity</em>, and bring the family together in unexpected, delightful ways. When kids own the adventure, it’s just different, seeing their creations come to life… Today we brought springfield to us and I wouldn’t trade it for all the Duff Beer in the world!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1744089635042/9d2dea15-4af3-4724-8900-db777b2c9010.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Building a Potty Training App]]></title><description><![CDATA[Over the holiday break I started on something new. I always build something to learn something, it's just how I best learn. So I wanted to learn about some of the new extensions to apple health, realtime notifications, etc. I also wanted to play with...]]></description><link>https://blog.dlbates.com/building-a-potty-training-app</link><guid isPermaLink="true">https://blog.dlbates.com/building-a-potty-training-app</guid><category><![CDATA[Game Development]]></category><category><![CDATA[#ai-tools]]></category><category><![CDATA[devlog]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Mon, 06 Jan 2025 23:48:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1736207214413/e2f3dffb-b4ff-4443-98db-966cac5da3ef.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the holiday break I started on something new. I always build something to learn something, it's just how I best learn. So I wanted to learn about some of the new extensions to apple health, realtime notifications, etc. I also wanted to play with LLM's and some of the new 3D generators. So I set out to build a potty training app. But not just any potty training app one that both a small kid and an older kid would want to use, one that parents would get valuable feedback from, and one that used the latest in technology to pull it off. I set off with ChatGPT to help me build it.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1736202907212/26983ba0-f1d2-425b-a32b-991700dd3fe0.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-the-features">The features</h2>
<p>As you set out to build anything you need to understand the core features and this was no different, I started with the need for a timer. I wanted my son to sit on the potty for 10 minutes and he was anxious, playing games, running in and out, I was frustrated. But then I tried setting a timer in the clock for 10 minutes and telling him to sit until the timer went off… IT WORKED! but having to set my phone in there with the timer while he just played on his wasn’t the best. If I just had something that could hold his attention for the 10 minutes then I would be perfect. So I incorporated little games, and again it worked! So with this success in hand I had an idea in mind.</p>
<p>Let’s build a custom app that at it’s core had a timer function with little mini-games or activities that could hold a kid’s attention for 10 minutes. I’ve seen similar things like <a target="_blank" href="https://shop.colgate.com/products/hum-kids-smart-manual-toothbrush">Colgate’s Hum</a> toothbrush for kids we even used it with our kids and they loved the challenge and virtual gifts. So I set out to make something similar. But let’s not forget the adults, they will be the reason the kid uses the app so we’ll need an incentive for them… Apple Health! What if we could track the success rate and offer suggestions for potty training!</p>
<p>After confirming all of this with ChatGPT I came up with the following list of features:</p>
<ul>
<li><p><strong>Core</strong></p>
<ul>
<li><p>A timer system with notifications to help both parent and kid keep a schedule</p>
</li>
<li><p>A way to track success or attempt and graph that for the parents over time</p>
</li>
<li><p>Interactive “Busy” activities to keep a child occupied during each attempt</p>
</li>
<li><p>Virtual rewards to keep the child engaged and positive</p>
</li>
<li><p>A compelling theme to excite</p>
</li>
<li><p><a target="_blank" href="https://www.ftc.gov/legal-library/browse/rules/childrens-online-privacy-protection-rule-coppa">COPPA</a> compliance (Minimal data collection, Parent Opt-In)</p>
</li>
</ul>
</li>
<li><p><strong>Optional</strong></p>
<ul>
<li><p>Parent dashboard with better than Apple health diagrams and training tips</p>
</li>
<li><p>Hydration and Hygiene tracking (Could help)</p>
</li>
<li><p>Overall mission tracking (set an end goal)</p>
</li>
<li><p>Parent data sharing (in a COPPA-compliant way)</p>
</li>
<li><p>Add-ons like character expansions, mission expansions, themes, etc.</p>
</li>
</ul>
</li>
</ul>
<h2 id="heading-free-or-paid">Free or Paid</h2>
<p>This is another area where ChatGPT helped, I needed to do market research on how many users I would potentially have and how to monetize the app, mainly just to cover the cost of me developing it and any little bit I can make to make my personal dev fee smaller :)</p>
<p>The market research showed that a $.99 app would cover the cost of development since the app is likely to have high churn. Kids only potty train once, and the app is not likely to be of use past that. For those who need it longer, having in-app purchases for things like hydration or hygiene will help extend past the potty training phase. But all in all it’s a one time throw away purchase.</p>
<p>All of the freemium models would require some kind of advertising or hinder the functionality of the app by having to gate features so a one time purchase with the possibility of in-app purchases made sense.</p>
<h2 id="heading-so-whats-the-theme">So What’s the Theme?</h2>
<p>Potty Heroes is an amalgamation of several of my kids’ favorite TV shows. Paw Patrol, Wonder Pets, and similar franchises where teamwork, engaging characters, and fun missions are at the heart of the experience. Each Potty Hero is designed to represent an essential aspect of the potty training journey, ensuring the app is not only helpful but also highly relatable to toddlers and young kids.</p>
<p>The characters are inspired by popular emojis, giving them a universal appeal and an instant sense of familiarity. From <strong>Captain Flush</strong>, the brave leader who embodies confidence and courage, to <strong>Splashy the Soap</strong>, the bubbly hygiene expert, each character adds its own charm and expertise. The goal was to make the heroes not only educational but also fun, creating a cast that kids would eagerly interact with.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1736205380945/683d4b7a-146c-4995-b04d-71fba7403885.gif" alt="Captain Flush 3D Model" class="image--center mx-auto" /></p>
<p>I used a combination of image generation, editing, and 3d model generation and animation tools to create the characters… or at least enough to continue for now.</p>
<h2 id="heading-lets-get-coding">Let’s get coding</h2>
<p>I wanted to start fleshing out the interface and some of the initial work to get a sense of how hard this was going to be. I was pleasantly surprised that it’s come together so well and I was able to get more work done than I thought I would.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1736205778183/02d1ffff-e3f0-449f-adec-eaba88823957.gif" alt class="image--center mx-auto" /></p>
<p>I was able to get the 3d model integrated with an animation and create a screen for consent.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1736205838519/f502ffb2-3ea0-40df-923d-0de89af98dcd.png" alt class="image--center mx-auto" /></p>
<p>I was also able to stub out a “Heros Dashboard” and get all of the access flow integrated!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1736205883357/2a1738bb-b831-47af-9839-ad58e9419d84.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-what-should-i-include-in-the-next-update">What Should I Include in the Next Update</h2>
<p>That’s it for now, my next thing to tackle is to build the first game and timer and then notifications.</p>
]]></content:encoded></item><item><title><![CDATA[Inktober... Naw... Huetober]]></title><description><![CDATA[It’s spooky season, and I’m kicking off Inktober a little differently this year. I'm calling it "Huetober," and you’re in for a treat—literally. 
For those unfamiliar, Inktober is a yearly challenge where artists create ink drawings based on daily pr...]]></description><link>https://blog.dlbates.com/inktober-naw-huetober</link><guid isPermaLink="true">https://blog.dlbates.com/inktober-naw-huetober</guid><category><![CDATA[hueforge]]></category><category><![CDATA[halloween]]></category><category><![CDATA[3D printing]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Tue, 01 Oct 2024 04:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1728786501680/2bced8f0-80ad-4ec1-940e-3702dc24f2d7.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It’s spooky season, and I’m kicking off Inktober a little differently this year. I'm calling it "Huetober," and you’re in for a treat—literally. </p>
<p>For those unfamiliar, Inktober is a yearly challenge where artists create ink drawings based on daily prompts. It’s an awesome way to flex those creative muscles and maybe learn some new skills along the way. Over the years, I’ve used Inktober to dive into new creative mediums, from digital sculpting in Nomad to AI-generated art. This year, I’m exploring the exciting world of HueForge 3D (<a target="_blank" href="https://x.com/hueforge">@hueforge</a>).</p>
<p>HueForge is like a digital canvas for 3D printing. Imagine painting with filaments instead of inks. Sounds crazy, right? I’m working on a monster series inspired by Misfit Printing (<a target="_blank" href="https://www.tiktok.com/@misfit_printing">@MisfitPrinting</a>) <a target="_blank" href="https://www.tiktok.com/@misfit_printing/video/7413876955528924462?is_from_webapp=1&amp;sender_device=pc&amp;web_id=7408715426123925023">Halloween portrait wall</a>. I’ll be crafting and printing a unique monster every other day until I complete the wall.  </p>
<p>Intrigued? Check out the first creation in the Huetober series—Drac!</p>
<iframe sandbox="allow-popups allow-popups-to-escape-sandbox allow-scripts allow-top-navigation allow-same-origin" src="https://www.tiktok.com/embed/v2/7420962068024626463?lang=en-US&amp;referrer=http%3A%2F%2Fblog.dlbates.com" style="width:100%;height:739px;display:block;visibility:unset;max-height:739px"></iframe>

<p>Pretty impressive, right? I’ve even posted the model on <a target="_blank" href="https://makerworld.com/en/@modern.magician">Makerworld</a> and <a target="_blank" href="https://thangs.com/designer/modern.magician">Thangs</a>, and you can download it to print yourself!</p>
<p>Creating these multi-layered prints is a fun process. I’ll share a quick breakdown to get you started:</p>
<ol>
<li><p><strong>Image Creation:</strong> First, I combine AI-generated art from Midjourney with some Photoshop magic to craft a spooky image of the classic monster. </p>
</li>
<li><p><strong>HueForge Prep:</strong> I import the image into HueForge.</p>
</li>
<li><p><strong>Layer Creation and Filament Assignment:</strong> This is the coolest part. I use HueForge to create the layers for the 3D print, and adjust the color scheme and settings for each filament… I want to make sure the right components POP!</p>
</li>
</ol>
<p>Once that’s done, I export the model into Bambu Studio (HueForge includes a handy describe file with all the color change information). And now, here's where the real magic happens. Take a look at this brief tutorial from <a target="_blank" href="https://www.tiktok.com/@neokoiprints">@neokoiprints</a>:</p>
<iframe sandbox="allow-popups allow-popups-to-escape-sandbox allow-scripts allow-top-navigation allow-same-origin" src="https://www.tiktok.com/embed/v2/7415827697026321707?lang=en-US&amp;referrer=http%3A%2F%2Fblog.dlbates.com" style="width:100%;height:743px;display:block;visibility:unset;max-height:743px"></iframe>

<p>The describe file tells me where to add the different filament stops. I've created this file so you can print this on any 3D printing machine. You don’t need to have a fancy AMS system or anything like that.  Just follow the color change instructions, swap out the filaments, and voilà! </p>
<p>So, go ahead and make your own Huetober creation. Share your creations with me, and stay tuned for the next monster in the series. You can view all of my Monsters as I create them at my <a target="_blank" href="https://linktr.ee/davidbates">linktree</a>.  </p>
<p>I hope you have a spooktacular season!</p>
]]></content:encoded></item><item><title><![CDATA[My AI Pin Prototype]]></title><description><![CDATA[I'm incredibly excited to share a sneak peek at my latest project: an AI-powered pin that's not just a stylish accessory but a tiny, interactive companion. Think Clippy, but way cooler, and hopefully less annoying.
This little fella is still in its e...]]></description><link>https://blog.dlbates.com/my-ai-pin-prototype</link><guid isPermaLink="true">https://blog.dlbates.com/my-ai-pin-prototype</guid><category><![CDATA[AI]]></category><category><![CDATA[Wearable Technology]]></category><category><![CDATA[chatgpt]]></category><category><![CDATA[CharacterAI]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Sun, 21 Apr 2024 04:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1728758490733/5ab991f7-094f-4bc0-b624-cdf94b9b0bff.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I'm incredibly excited to share a sneak peek at my latest project: an AI-powered pin that's not just a stylish accessory but a tiny, interactive companion. Think Clippy, but way cooler, and hopefully less annoying.</p>
<p>This little fella is still in its early stages, but it's already showing some serious promise. As you can see in the video below, the prototype features a cheerful smiley face displayed on a small, circular screen. It's about the size of a…well, I’ve helpfully included a can of Coke and a banana for scale. You get the idea.</p>
<p>What's really neat is the touch interface I'm developing. A simple touch elicits a reaction from our smiley friend, and a swipe down reveals a settings menu where I can tweak things like volume. There's something undeniably satisfying about interacting with something so small and seeing it respond in real-time.</p>
<p><strong>A Glimpse into the Future (and the Settings Menu)</strong></p>
<p>While the software is still a work in progress, the goal is to create a pin that can answer your questions, provide information, and maybe even offer a bit of witty banter. Imagine having a miniature AI assistant right there on your lapel, ready to assist at a moment's notice! The possibilities are endless, and I’m having a blast exploring them.</p>
<p>Now, without further ado, here’s the video demonstrating the AI pin prototype's character display and touch testing:</p>
<iframe sandbox="allow-popups allow-popups-to-escape-sandbox allow-scripts allow-top-navigation allow-same-origin" src="https://www.tiktok.com/embed/v2/7360006623529618719?lang=en-US&amp;referrer=http%3A%2F%2Fblog.dlbates.com" style="width:100%;height:721px;display:block;visibility:unset;max-height:721px"></iframe>

<p>As you can see, the touch responsiveness is pretty snappy, and the character animations are starting to come to life. I’m continually tweaking the settings, working on the AI integration, and brainstorming new features. Stay tuned for more updates as this project evolves! Let me know what you think in the comments—I always love hearing your ideas.</p>
]]></content:encoded></item><item><title><![CDATA[A 🦃 tale of Dr. Jekyll and Mr. Hyde.]]></title><description><![CDATA[Each year our thanksgiving feast grows. Both in food prepared but also in family and friends to enjoy. I take on cooking the turkeys and ham while my wife, mom, and mother in law prepare the rest of the fixings. We typically feed between 11-16 people...]]></description><link>https://blog.dlbates.com/a-tale-of-dr-jekyll-and-mr-hyde</link><guid isPermaLink="true">https://blog.dlbates.com/a-tale-of-dr-jekyll-and-mr-hyde</guid><category><![CDATA[thanksgiving]]></category><category><![CDATA[smoking]]></category><category><![CDATA[turkey]]></category><category><![CDATA[food ]]></category><category><![CDATA[recipes]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Thu, 24 Nov 2022 07:12:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1669313722723/nD6vJJgNf.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Each year our thanksgiving feast grows. Both in food prepared but also in family and friends to enjoy. I take on cooking the turkeys and ham while my wife, mom, and mother in law prepare the rest of the fixings. We typically feed between 11-16 people and love hosting this feast. I tell you this to tell you about the turkeys. I think I’ve stumbled across something special and wanted to share it with you. </p>
<p>Over the years I’ve tried dozens of ways to cook turkeys from brining to frying. Here are just a few:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1669359141137/1bs1u5Ofx.jpeg" alt="AE95FA9F-FF71-4761-ACDE-381318987917.jpeg" class="image--center mx-auto" />
Bacon wrapped 
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1669359167410/E0gTF4Nl3.jpeg" alt="9B411077-668B-4F87-9978-A58C01FA5579.jpeg" class="image--center mx-auto" />
Breaded and fried
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1669359221052/ICzyF-uAL.jpeg" alt="08F75A34-D1A6-432A-A485-D2BA49371A97.jpeg" class="image--center mx-auto" />
Smoked</p>
<p>My favorite of all the methods is <em>spoiler</em> injected and smoked. Our feast has grown enough that we need two turkeys now and a with a mix of kids and adults we wanted to have different selections for each. </p>
<p>I started the tradition of Dr. Jekyll and Mr. Hyde about four years ago on a single bird. Each breast taking on the different roles of the characters. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1669314777707/Nsj0nhg2m.jpeg" alt="25876BF6-50E6-4F61-A5ED-3C13DB6491B9.jpeg" class="image--center mx-auto" /></p>
<p>Dr. Jekyll is sweet and savory, injected with a garlic honey butter and smothered with a pepper blend. Mr. Hyde is hot and spicy, injected with Datil honey, Buffalo sauce, and butter usually rubbed with red hot dry rub. </p>
<p>Once injected and rubbed they are smoked at 225°f until the inner thigh reads 180°f. I use a blend of fruit tree and pecan wood for the smoke. I started out with an electric masterbuilt smoker but as the size of the turkeys grew so did my needs for a large smoker. This Pitboss Lockhart has served me well the last few years and offers the nerdy things I need like wifi control. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1669360026939/sDDO3pTXN.jpeg" alt="5CB27B26-A803-4BD2-A825-E603C19A6637.jpeg" class="image--center mx-auto" /></p>
<p>Now, I’m a stickler for traditions and this one is here to stay. You know a tradition has taken hold when you tell your kids you might try something different this year and they go “Oh my god dad, we have to have Dr. Jekyll and Mr. Hyde!” </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1669359475883/Sf4XM4RHJ.jpeg" alt="6A75B5FE-1852-42E4-8CC3-8D372F01A264.jpeg" class="image--center mx-auto" /></p>
<p><a target="_blank" href="https://www.tiktok.com/t/ZTRCFP8d6/">check out this years video</a></p>
<p>I hope you and your families are creating traditions that last and if you decide to try the Dr. Jekyll and Mr. Hyde turkey shoot me a picture on any of my socials. </p>
<p>Happy thanksgiving 
DB</p>
]]></content:encoded></item><item><title><![CDATA[A Fellow “Generalist”]]></title><description><![CDATA[A personal journey to becoming comfortable being a “jack of all trades” and then learning I was a master at something.
A few days ago I watched Adam Savage’s reply to one of his patreon’s question:

“Do you ever lament that you’re a generalist when i...]]></description><link>https://blog.dlbates.com/a-fellow-generalist</link><guid isPermaLink="true">https://blog.dlbates.com/a-fellow-generalist</guid><category><![CDATA[lifestyle]]></category><category><![CDATA[Story]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Mon, 16 Nov 2020 20:08:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1605643967756/KW-0Eg7UG.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="a-personal-journey-to-becoming-comfortable-being-a-jack-of-all-trades-and-then-learning-i-was-a-master-at-something">A personal journey to becoming comfortable being a “jack of all trades” and then learning I was a master at something.</h2>
<p>A few days ago I watched Adam Savage’s reply to one of his patreon’s question:</p>
<blockquote>
<p><em>“</em><strong><em>Do you ever lament that you’re a generalist when it comes to maker skills, instead of devoting all of your mind and resources at becoming a master at one particular thing? I know I do.</em></strong><em>”</em> <em>~Jason Cz</em></p>
</blockquote>
<p>If you haven’t seen the video go watch it. Adam does a great job discussing why he’s proud to be a generalist. Go ahead, I’ll wait.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/mlBnrx5Z3Ww"></iframe>

<p>Amazing right? This video as well as <a target="_blank" href="https://www.facebook.com/michael.a.kessler88/posts/10157858678357861">this post from a fellow maker</a> touched me so much that I thought I would tell my story in becoming a generalist in the hope that it might help others deal with some of the anxiety or missteps I had. My general answer would be <strong>YES</strong> of course I struggled with that. After all our entire society is geared for mastery of a skill. After reading this I hope that if you are a generalist you’ll embrace it or if you are someone mentoring a generalist you can help them see why they might not be satisfied with mastering a single skill. This is by far the longest blog post I’ve written and I plan to develop the individual stories into something more but for now, here’s my story.</p>
<p><span class="jb eh bn jc jd je"></span><span class="jb eh bn jc jd je"></span><span class="jb eh bn jc jd"></span></p>
<p>Looking back I was always curious. In my youth, my quest for understanding often manifested to others as destructive behavior. I had no qualms destroying something to understand how it worked. I didn’t mean to destroy it but I lacked the skills to understand how to put it back together. It wasn’t until later that I realized that people reacted better when I tried to fix things. I found that tearing apart a broken thing could reveal how it worked along with the added benefit that it didn’t upset people as bad. My grandfather would often say</p>
<blockquote>
<p>“If it can be fixed he’ll fix it. But if it can’t… it will be so broken no one else could attempt to fix it”</p>
</blockquote>
<p>I was lucky to grow up where I did. There were always parts to scavenge and my neighborhood seemed to have an endless supply of broken bicycles and lawnmowers. Much to the chagrin of my mother, I would collect these items behind our trailer and then put them together to create frankenbikes or lawnmowers that were probably nowhere near safe to operate. But this outlet allowed me to scratch the itch and learn about the components of complex systems. I answered questions like why were spark plugs not interchangeable and how brakes worked. This led me to be the local fix-it kid for bikes and lawnmowers and I was hooked.</p>
<p>Fast-forwarding a bit to around the third grade. I started to attribute my thirst for acquiring new skills to my <a target="_blank" href="https://en.wikipedia.org/wiki/Attention_deficit_hyperactivity_disorder">ADHD</a> as my teachers would often tell me I had it and would penalize me for not paying attention in class. I often had a book on another subject open pouring over RAM jet architecture or space travel instead of focusing on mastering cursive. They would eventually convince my mother to have me tested, diagnosed, and drugged. However, <a target="_blank" href="https://www.webmd.com/drugs/2/drug-9475/ritalin-oral/details">Ritalin</a> just exacerbated the issue. It would give me huge bursts of energy that I would pour into fracturing my learning even more. This ultimately led to me understanding that the underlying reason wasn’t ADHD but rather that I bored easily. Looking back today I can say that I drew pleasure from unlocking a new understanding, being able to conceptualize the new learning and apply it. After I had a grasp on how something worked I was not interested in the minutia of perfect execution. This went on until the fifth grade when I was taken off of Ritalin. I remember the teacher's words that convinced us.</p>
<blockquote>
<p>While it may appear that he is not paying attention in class or completing his homework David shows an aptitude for the subject matter and aced his finals which clearly shows his ability to multitask. ~ Fifth-grade teacher</p>
</blockquote>
<p>I still thought of myself as a failure and coming off of Ritalin had its side effects, not to mention teenage issues. But as I progressed in middle and junior high I brought on a new title of “Nerd” I was actually really happy with this. Being a nerd also helped me understand that I was an introvert and while I did get a rush from being able to help others understand a subject I got a bigger rush from just unlocking new knowledge. The libraries at my school were extensive and my favorite subjects were Japanese and robotics. Not because I was intrigued by either subject but because the teachers allowed me to explore other avenues of the subject. I learned HTML in robotics from a fellow student and applied it to the Japanese class to help the teacher make flashcards as an example. I was also introduced to an encyclopedia set (the internet was still young) and OMG you could catch me at any time of the day exploring a new subject. These experiences launched me into becoming what I am today but they were also where I had the most challenge. Bullying and home life lead me to quit school in the 10th grade, move to another state, and become emancipated.</p>
<p>It was honestly the best decision for me. I wouldn’t recommend it as a first course for anyone but having a change in life like that really makes you evaluate yourself, what you’ve become, and who you want to be. I still had the support of my grandparents so I wasn’t truly alone but they structured the experience so I would have to figure things out for myself. I lived in a camper near their home but separated by a creek for example. I had to pay for utilities and rent, etc. I spent a lot of time outside of work just deep in thought to answer the aforementioned questions and it really helped me understand what I wanted to do. I hadn’t grasped and wouldn’t grasp that what truly drove me was learning but computers and programming, really electronics in general brought me a ton of joy. I didn’t really like to play games on the computer but the internet brought a ton of knowledge directly to me. I spent many many sleepless nights just going down one research rabbit hole after another. Much like the frankenbikes of my youth I was able to build computers and understand software configurations. I remember reading every page in a series named the bible. it had everything you would ever want to know about a subject in huge books. For example, there was one on HTML called <a target="_blank" href="https://www.amazon.com/HTML-4-Bible-Bryan-Pfaffenberger-dp-0764534734/dp/0764534734/">The HTML Bible</a> that had every tag in the current spec. So, of course, I became known in my town as the computer guy. I had to work in areas like retail, construction, call centers, etc. because I lacked the degree and confidence to even apply for jobs related to my passion, so it remained a passion for some time. Often times I would work a full 8–12 hour shift and then go making house calls to fix people's computers just to scratch that itch to solve problems. I didn’t care about the money and oftentimes didn’t charge opting to just eat dinner with the people who I helped.</p>
<p>It wasn’t until I landed an actual job at a software development company that I really understood my potential. I was hired to help the owner with customer support but her husband saw the potential in me to become more. He noticed that I would try to break the application, write scripts for it, and push bugs to the software devs. He then made me realize that I could make things virtually and that in doing so it was just as satisfying as building a computer.</p>
<p>So of course this propelled me along a trajectory of becoming a software developer but also landed me in jobs dealing with PC building or systems administration in my early career. Keeping up with the latest and greatest in these fields now became my primary focus and things were changing so rapidly that it satisfied that need to learn and everyone was interested in my opinion of new tech since I kept up to date so it helped accelerate both my career and personal comfort with being an SME. Yes a new label, <a target="_blank" href="https://en.wikipedia.org/wiki/Subject-matter_expert">SME (Subject Matter Expert)</a>.</p>
<p>I also didn’t like being called a Windows or a Mac person. I like Linux just as much and when mobile phones started to be a thing I wanted to use all of the operating systems I could. I remember being called a dual platformer and later a cross platformer, eventually I would settle with platform-agnostic but it wasn’t because I had specific tasks to perform on an individual operating system. There were tasks more suited to one over the other at the time it was the thrill of being able to learn about them all and then apply it. When someone would visit the build room and ask to recover something I could save thousands of dollars by recovering the file(s) myself booting into Linux and using some of the advanced command-line tools available there. This was valuable both for my company and me as it showed I had capabilities beyond my current role.</p>
<p>It wasn’t until I was introduced to an Arduino that I really called myself a maker and even then it wasn’t until I discovered that I could communicate with them to create mashups like:</p>
<p>That I could conceptualize things and then make them real. I had often built things and even worked in construction but up until this moment I classified myself incorrectly as a hacker. My explanation was that I could take disparate systems and join them together to create new things that they weren’t intended for. Like creating a Youtube clone in SharePoint using Adobe’s media manager. Hacker seemed to fit and it was cool so I ran with it. Like much of my experience I often knew enough about the systems I worked with to build things with them. to make a square peg fit in a round hole. It’s what drove my passion to solve tough problems.</p>
<p>All along the way, I had great mentors that saw my curiosity and eagerness to learn and helped me. My general knowledge of multiple systems, languages, techniques, etc drove me to be involved with many high profile, tough technical challenges like being on the team that solved <a target="_blank" href="https://www.pcmag.com/encyclopedia/term/antennagate">antenna gate</a> or helping create new computer vision techniques for landing drones.</p>
<p>By some miracle or happenchance, this culminated in me getting to work full time on projects with companies like Verizon and Disney. It was here that my maker abilities were tested, broken, and reforged. From software development to rapid prototyping with 3d printing. I was able to take a problem, conceptualize a solution, and then not only build a prototype for it but also refine it into production and influence many lives. I was solely responsible for the outcomes of my ideas and this is where I truly became a generalist. Before it was a passion, a hobby, a way to scratch an itch. Now it was putting food on the table.</p>
<p>It wasn’t until I stepped away from this role that I realized I had no understanding of time management. Most of my work up until this allowed my passion to run rampant but were structured enough to step in when I would take on too much or put up a framework for me to limit my commitment. A lot of this was due to the mentors I had but also just how the enterprises were structured.</p>
<p>Being introduced to Agile which I thought at first was simply kanban was another life-altering educational experience. Never before had I understood how to create time estimates and back them up with experience and apply focus and structure to the problems I was trying to solve. While agile itself was yet another skill to learn it has become way more useful in life than I ever thought possible. I still don’t know all the ins and outs of Agile but it has allowed me even with a base understanding to change the way I structure problems and time management.</p>
<p>While learning agile I was forced to specialize in a certain language and thought about going all-in on the software developer route. I could see myself adopting a discipline for a specific way of software development and focusing on deep-diving into a single ecosystem. After having to keep up with all of the new trends for all of the different languages, frameworks, plugins, architectures, etc. I was tired. Not from information overload but learning things that I’d never get to apply. It was frustrating, infuriating, and caused me to get a second job and third job. I was not longer getting to scratch that itch so I was looking for places to do so. It was great at first but after overcommitting and underperforming I could see the cycle starting again. So I had to figure out how to scratch that itch without taking on additional commitments. Finally, I found the right balance between the two, and something amazing happened. My work once again took notice of my peculiar talents and carved out a position that fits my needs perfectly. They understood that being able to rapidly learn and apply new knowledge was perfect for blazing the path forward. Uncovering and conquering technical unknowns were essential to leap frogging in the market and of course, failing along the way is necessary for discovery.</p>
<p>Now, today I have an understanding of what I love to do and that is taking on problems that others either can’t or haven’t solved and applying the culmination of my learnings to solve them. Most of the time this uncovers a new gap in my knowledge and begins a new learning journey. Being in this mindset all the time still sets me up to have to rapidly learn new skills all the time and I couldn’t be happier for it. I have found though that software isn’t enough to scratch my itch completely anymore and that’s why I also love being a maker. I’ve found that pursuing making fun things in my spare time and learning new techniques like joinery has really put me in my happy place.</p>
<p>So as you can see becoming a generalist is a journey just like becoming a master at any particular subject. You have to put just as much time and effort into it as mastering any particular skill. This is why I don’t like the phrase “Jack of all trades, master of none”. The difference is that generalists are masters. While the external skills may be varied in both the level of knowledge and application of a specific skill, generalists are masters at rapid learning, conceptualizing, and applying that learning.</p>
<p>I can however in floating this term with friends and family see that even generalist might not be the best term for this. Much like the term hacker, it has a negative connotation that you aren’t a master at anything. It’s hard to change people’s minds around a term's definition as I’ve found out with both the term hacker and drone (I still call what most people call drones quadcopters). I hope to learn or develop a term one day that describes my skill as a skill of acquiring skills but until then generalist it is.</p>
<p>So as you look at my journey and map it to your own as a hacker, SME, multi-disciplinary engineer, maker, or generalist I have three thoughts to leave you with.
1. Understanding that you don’t know everything about something is key to letting others help you understand more about everything.
2. Learn how to learn on your own. Mentors and other resources are a byproduct of learning how to learn.
3. Find an application for your knowledge. You haven't truly learned a subject until you’ve applied it. Even if it’s conceptualizing the application.</p>
<p>Thanks
DB</p>
]]></content:encoded></item><item><title><![CDATA[Getting Over Getting Laid Off]]></title><description><![CDATA[Getting Over Getting Laid Off
Several years ago I was laid off from a company that decided to outsource it’s Marcomm tasks. It turned out to be the best thing for my career as I was complacent and happy but it also had a hidden success story that I t...]]></description><link>https://blog.dlbates.com/getting-over-getting-laid-off</link><guid isPermaLink="true">https://blog.dlbates.com/getting-over-getting-laid-off</guid><category><![CDATA[Career]]></category><dc:creator><![CDATA[David Bates]]></dc:creator><pubDate>Mon, 05 Feb 2018 20:48:42 GMT</pubDate><content:encoded><![CDATA[<p><span class="s"></span></p>
<h1 id="getting-over-getting-laid-off">Getting Over Getting Laid Off</h1>
<p>Several years ago I was laid off from a company that decided to outsource it’s Marcomm tasks. It turned out to be the best thing for my career as I was complacent and happy but it also had a hidden success story that I thought I’d share now. I was able to generate interviews in two days and land a great job in under two weeks. As you read through my encounter below I hope there is something that can help you as well. Either in finding a new job or learning how to market yourself.</p>
<p>I ha<span id="rmm"><span id="rmm">d</span></span> been with this company for over five years, I was an important part of the <a target="_blank" href="http://whatis.techtarget.com/definition/marcom-or-marcomm">Marcomm</a> team which was a great team because it touched nearly every other department. I had great ideas in motion that would change the companies ability to market to new audiences and I thought I was irreplaceable. But coming back from a company paid trip to CES where I built a new interactive booth, spoke to countless attendees, and forged several leads. I felt an eerie feeling that I had been feeling for awhile, something wasn’t right… Two days later I was let go.</p>
<p>All of the feelings washed over me. Was I not important? Did I do something wrong? Then I realized it wasn’t about me at all. It was because a newly appointed marketing manager lived on the other side of the states and had had success working with agencies in the past. It was simply personal preference to work with agencies instead of an in-house team. This realization is what saved me from wallowing in <a target="_blank" href="https://en.wikipedia.org/wiki/Impostor_syndrome">imposter syndrome</a> and allowed me to think clearly about the future.</p>
<h1 id="step-1-dont-wallow-in-self-pity-getting-laid-off-doesnt-necessarily-mean-you-did-something-wrong">Step #1: Don’t wallow in self pity. Getting laid off doesn’t necessarily mean you did something wrong.</h1>
<p>That future? I wanted to work on a lot of different things. I hadn’t quite figured out what gave me the most joy in life yet. I knew it was dealing with computers but I didn’t know if it was web development, mobile development, robotics, etc. I knew I didn’t want to be a DBA and that was about it :). So I thought a lot about what career path would give me the most exposure to a lot of different technology stacks at once? At first I didn’t want to believe it. I would be joining the dark side! But of course a digital agency was my target. I also really liked building interactive displays and mobile apps so I wanted to find a role that would give me enough leadway to do so. I also knew that my previous position had been underpaying me. Not only in salary but also in title. So I wanted to correct that. It was this clear understanding of what I wanted that lead to my success.</p>
<h1 id="step-2-clearly-define-what-you-want-out-of-your-next-role">Step #2: Clearly define what you want out of your next role.</h1>
<p>One of my roles in this position that I had just left was to handle all social media accounts and advertisements and at the time Facebook had the best targeting system I had seen. I could target individual roles from different companies so it was very easy to pick my targets. I used this to my advantage and set off to create a social media campaign for myself to land my next gig.</p>
<p>First I had to list my marketable traits and figure out ad styles that I could use to target the people I wanted in essence build a resume. The first thing that came to mind was the quantity of languages I had already encountered and worked with. So I listed them and kept trying to think of a way to include them in my resume. I wound up in excel making a pie chart of them and this is the final product:</p>
<p><img src="https://miro.medium.com/max/60/1*SsMt4M8sTiEouXuxv4WFtQ.png?q=20" alt="Image for post" /></p>
<img alt="Image for post" src="https://miro.medium.com/max/2512/1*SsMt4M8sTiEouXuxv4WFtQ.png" />

<p>Programming languages I had dealt with as of 2014</p>
<p>Each slice represented the percentage of my comfort level with each language of course C# and JavaScript where my goto languages but I also had a lot of experience with Arduino and Wiring so I wanted it to be shown but not highlighted. This one chart showed that I was skilled developer to any interested party at a glance but I needed more than a chart to land the job I wanted I needed experience and I needed to stand out.</p>
<h1 id="step-3-identify-what-makes-you-unique-in-your-field-did-you-create-something-awesome-is-your-level-of-knowledge-deeper-than-the-average-joe-or-are-you-just-well-rounded-visualize-it">Step #3: Identify what makes you unique in your field. Did you create something awesome, is your level of knowledge deeper than the average joe, or are you just well rounded? Visualize it!</h1>
<p>Before open source how do you show experience? All of the companies I had worked for where either a software company with closed source or fortune 500’s with NDA’s and lawyers to back them up. Simply showcasing my projects were out of the question. But then I realized LinkedIn had recently launched it’s recommendation feature and I had several in there! Who better to talk about my experience than those who had recommended me?</p>
<p><img src="https://miro.medium.com/max/60/1*iz2OUnqNxznnq1a9Vaun-Q.png?q=20" alt="Image for post" /></p>
<img alt="Image for post" src="https://miro.medium.com/max/1596/1*iz2OUnqNxznnq1a9Vaun-Q.png" />

<p>An example recommendation from LinkedIn</p>
<h1 id="during-your-annual-review-have-the-people-that-gave-you-a-review-also-write-a-recommendation-on-linkedin-be-reciprocal-if-you-can">* During your annual review have the people that gave you a review also write a recommendation on LinkedIn. Be reciprocal if you can.</h1>
<p>Now that I had experience, knowledge, and a target I just needed a way to stand out. I had been to the talks where recruiters and hiring agents had said “We get so many applicants these days it’s getting increasingly hard to find candidates that stand out.” When they would elaborate on the subject they would say things like all of the resumes we receive are standardized now and boring. So I set out to make two resumes, a fun resume to get noticed and a more traditional resume with some graphic elements.</p>
<p>Here’s my fun resume and more traditional resume from 2014 (address and phone are not correct anymore):</p>
<p><img src="https://miro.medium.com/max/60/1*t0My7THufywmPt5dSbLx0A.jpeg?q=20" alt="Image for post" /></p>
<img alt="Image for post" src="https://miro.medium.com/max/1710/1*t0My7THufywmPt5dSbLx0A.jpeg" />

<p>You can see which resume was intended to grab attention. I modeled it after Google Plus’ profiles and packed it full of information. The icons on the bottom row even subtly hinted that was not only a developer but also had some design chops, and at least knew about social media.</p>
<h1 id="step-4-create-at-least-two-resumes-one-to-grab-attention-and-one-to-go-into-the-details-make-each-for-the-specific-role-you-want">Step #4: Create at least two resumes, One to grab attention and one to go into the details. Make each for the specific role you want.</h1>
<p>24 hrs after I was laid off I had a direction, a revamped resume that would make me stand out and a target. Now that I was armed it was time to create some ads.</p>
<p>But what ad? I needed some inspiration. So I sought after ads that would create an emotion. Understandably the emotions I felt was sad, let down, alone, and scared. Pedigree had just run an ad about part of it’s proceeds going to help pound dogs and I thought that was perfect. I felt like a pound dog. A stray without a home. I thought it would resonate with others. So I did what any good designer does… I stole it.</p>
<p><img src="https://miro.medium.com/max/60/1*GXlTRat5U9KfkI0_K0_eZQ.jpeg?q=20" alt="Image for post" /></p>
<img alt="Image for post" src="https://miro.medium.com/max/1200/1*GXlTRat5U9KfkI0_K0_eZQ.jpeg" />

<p>Ad created to attract potential hiring managers</p>
<p>This was the final setup the first attempt was much more pitiful:</p>
<p><img src="https://miro.medium.com/max/60/1*z-1GTE5Fud_4YcbBtBzOCg.png?q=20" alt="Image for post" /></p>
<img alt="Image for post" src="https://miro.medium.com/max/1238/1*z-1GTE5Fud_4YcbBtBzOCg.png" />

<p>Much more pitiful ad</p>
<p>The first one was all of my emotions running into words trying to grasp at capturing the right balance. The final ad above was after a revelation that nobody would probably read it anyway… it’s an AD!</p>
<p>I released the first ad to my social channels and I got a moderate response. A lot of friends reached out to comfort me, a lot of recruiters took the opportunity to connect with me, it was semi-successful but I was really trying to target new people. So I created a couple more… just for practice. I explained in the posts that I was looking for feedback on them and it worked.</p>
<h1 id="step-5-use-your-acquaintances-and-social-media-to-gather-feedback-make-it-work-for-you">Step #5: Use your acquaintances and social media to gather feedback. Make it work for you.</h1>
<p>I received a bunch of feedback from several colleagues and friends on what they thought. Overall they thought the sad dev ad wouldn’t work and I needed to be more direct about my message. You know what they were right!</p>
<p><img src="https://miro.medium.com/max/60/1*h9L_QM_9dqKW2nIyySufag.png?q=20" alt="Image for post" /></p>
<img alt="Image for post" src="https://miro.medium.com/max/1200/1*h9L_QM_9dqKW2nIyySufag.png" />

<p>Another ad I created to get input.</p>
<p>But the ultimate deciding factor was when I actually went to build the ad for Facebook. I had forgot how small the ads actually were! At the size they needed you couldn’t actually read the text in the sad dev ad, you couldn’t tell the eagle had a fish in the insecure fish ad! I guess the best thing for any designer is to constrain their output. Because the ad space was so small it forced me to rethink my messaging… What was the #1 thing I wanted to get across? HIRE ME. yup that was it:</p>
<p><img src="https://miro.medium.com/max/60/1*dmzZel72n5mfdv0KxBWuqw.png?q=20" alt="Image for post" /></p>
<img alt="Image for post" src="https://miro.medium.com/max/520/1*dmzZel72n5mfdv0KxBWuqw.png" />

<p>Actual Facebook ad.</p>
<p>This ad ran for a week and cost me maybe $10. I also in parallel submitted my resumes through normal channels and by the next day I was getting phone calls to schedule interviews. 2 days after I was laid off!</p>
<p><strong>Step #6: Don’t shy away from unconventional ways to get your name in front of a hiring manager.</strong></p>
<p>During the interviews I asked the hiring managers if they had seen my ad and to my surprise 4 out of 10 had seen it! A week later after all the phone interviews and on-sites I received my first offer letter and within 2 weeks I was back at work doing what I love.</p>
<p>I hope that this story will help you find a job or learn a little bit about marketing yourself. If you want to talk about it more hit me up on my social media channels.</p>
]]></content:encoded></item></channel></rss>