<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Peter Witham</title>
    <description>The latest articles on DEV Community by Peter Witham (@peterwitham).</description>
    <link>https://dev.to/peterwitham</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F125594%2Ff31de449-7574-4d6e-93a9-79c58364fb8f.jpeg</url>
      <title>DEV Community: Peter Witham</title>
      <link>https://dev.to/peterwitham</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/peterwitham"/>
    <language>en</language>
    <item>
      <title>I sat back this week and did no work on my personal projects in favor of hanging out a little more in online communities and it felt great and guilt free.</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Fri, 10 Jul 2026 17:42:29 +0000</pubDate>
      <link>https://dev.to/peterwitham/i-sat-back-this-week-and-did-no-work-on-my-personal-projects-in-favor-of-hanging-out-a-little-more-35i6</link>
      <guid>https://dev.to/peterwitham/i-sat-back-this-week-and-did-no-work-on-my-personal-projects-in-favor-of-hanging-out-a-little-more-35i6</guid>
      <description></description>
      <category>community</category>
      <category>devjournal</category>
      <category>mentalhealth</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Ah the joy of shipping, my new game MooFO is out on the Web thanks to itch.io and now to complete the standalone. Then, on to the next project! Play for free at https://peterwitham.com/moofo</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Thu, 02 Jul 2026 14:41:37 +0000</pubDate>
      <link>https://dev.to/peterwitham/ah-the-joy-of-shipping-my-new-game-moofo-is-out-on-the-web-thanks-to-itchio-and-now-to-complete-1m31</link>
      <guid>https://dev.to/peterwitham/ah-the-joy-of-shipping-my-new-game-moofo-is-out-on-the-web-thanks-to-itchio-and-now-to-complete-1m31</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://pwitham.itch.io/moofo" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;pwitham.itch.io&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>gamedev</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The curse of learning and discovery has bitten me this week. I watched some great videos for advice on better Godot game architecture and now my about to ship app feels like it needs reworking to "be better". I'm resisting so far and will ship 1.0 as is.</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Thu, 25 Jun 2026 17:38:11 +0000</pubDate>
      <link>https://dev.to/peterwitham/the-curse-of-learning-and-discovery-has-bitten-me-this-week-i-watched-some-great-videos-for-advice-9g6</link>
      <guid>https://dev.to/peterwitham/the-curse-of-learning-and-discovery-has-bitten-me-this-week-i-watched-some-great-videos-for-advice-9g6</guid>
      <description></description>
      <category>architecture</category>
      <category>gamedev</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Job Finder Tracker iOS Updates</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Thu, 25 Jun 2026 14:00:15 +0000</pubDate>
      <link>https://dev.to/peterwitham/job-finder-tracker-ios-updates-1gii</link>
      <guid>https://dev.to/peterwitham/job-finder-tracker-ios-updates-1gii</guid>
      <description>&lt;p&gt;I recently released a new update to my &lt;a href="https://apps.apple.com/us/app/job-finder-tracker/id6446909069" rel="noopener noreferrer"&gt;Job Finder Tracker for iOS&lt;/a&gt; app. This release has the most requested feature by users.&lt;/p&gt;

&lt;p&gt;Easy Job creation using ShareSheet!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtube.com/shorts/rFvMwbazy1A?si=8B_hY1umkm3-juL5" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s OK, you can stop cheering now. I know this one has been a while coming, it was more complicated than you might think. Read on!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Users have long requested a quick and easy way to add jobs to the app without needing to manually enter all the details.&lt;/p&gt;

&lt;p&gt;For example, using any Job app or Website like LinkedIn you find a job that interests you.&lt;/p&gt;

&lt;p&gt;It can be time-consuming and often error-prone to copy and paste from the source to the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;I wanted to make sure the solution was as robust as I could make it. That meant not only trying to capture the right data, but also making it work in as many locations as possible.&lt;/p&gt;

&lt;p&gt;So I set to work creating a system that avoids scraping the data directly where often it will fail as soon as the site or app is updated. Or in the case of LinkedIn, they have a system that actively tries to prevent scraping most of the time.&lt;/p&gt;

&lt;p&gt;Once I had a system that works with as many popular job listing sites as I could find, I also wanted a fallback that worked with the remaining sources. A random URL from the Internet for example.&lt;/p&gt;

&lt;p&gt;With the source data taken care of, the next question was how to easily get the data into Job Finder Tracker.&lt;/p&gt;

&lt;p&gt;Thankfully this was easy to answer on iOS. Use the Share Sheet and also Shortcuts availability to expose a way for seeing the data the user is about to add.&lt;/p&gt;

&lt;p&gt;This gives the user a way to edit or append anything they want before adding the job to their list.&lt;/p&gt;

&lt;p&gt;As a bonus, the URL field in a listed job contains the original source location should the user want to refer back to it.&lt;/p&gt;

&lt;p&gt;The update is live now in the &lt;a href="https://apps.apple.com/us/app/job-finder-tracker/id6446909069" rel="noopener noreferrer"&gt;App Store&lt;/a&gt; free for existing and new users can purchase and install.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>apps</category>
    </item>
    <item>
      <title>As a developer, I'm always working on the wrong project according to my brain :). I need to timebox my personal projects, which is something I hoped I would never have to do. Side projects are my freedom from organized chaos.</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Tue, 23 Jun 2026 18:27:21 +0000</pubDate>
      <link>https://dev.to/peterwitham/as-a-developer-im-always-working-on-the-wrong-project-according-to-my-brain-i-need-to-timebox-d81</link>
      <guid>https://dev.to/peterwitham/as-a-developer-im-always-working-on-the-wrong-project-according-to-my-brain-i-need-to-timebox-d81</guid>
      <description></description>
      <category>devjournal</category>
      <category>mentalhealth</category>
      <category>productivity</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>As I near completion of my latest game. I now have to do the hard part and think about the business model: should it go free, should it be paid, should it be an advertising model? This is always the part I try to avoid for as long as possible.</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Sun, 21 Jun 2026 08:46:28 +0000</pubDate>
      <link>https://dev.to/peterwitham/as-i-near-completion-of-my-latest-game-i-now-have-to-do-the-hard-part-and-think-about-the-business-2mj5</link>
      <guid>https://dev.to/peterwitham/as-i-near-completion-of-my-latest-game-i-now-have-to-do-the-hard-part-and-think-about-the-business-2mj5</guid>
      <description></description>
      <category>discuss</category>
      <category>gamedev</category>
      <category>sideprojects</category>
      <category>startup</category>
    </item>
    <item>
      <title>The death of future engineering intelligence</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Fri, 01 May 2026 17:35:35 +0000</pubDate>
      <link>https://dev.to/peterwitham/the-death-of-future-engineering-intelligence-50ch</link>
      <guid>https://dev.to/peterwitham/the-death-of-future-engineering-intelligence-50ch</guid>
      <description>&lt;p&gt;OK so maybe that is an attention grabber headline, and if it is then great, it should be.&lt;/p&gt;

&lt;p&gt;As  someone working in technology and responsible for making decisions that affect both consumers and engineering teams, I take my responsibilities seriously.&lt;/p&gt;

&lt;p&gt;And that is why I’m concerned about the future of good reliable skilled workers in all industries. But particularly the tech industry.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Warning, this is not a rant against A.I. nor a love letter, it is a reality check for the future
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;As we have seen if you read any tech news related headlines, videos or podcasts. Engineers are being laid off across the industry. Affecting both seniors and juniors.&lt;/p&gt;

&lt;p&gt;Companies are scrambling to adopt A.I. for many reasons including a falsely percieved saving in staff overhead. Think of it as saving a penny today to cost a dollar further down the road.&lt;/p&gt;

&lt;p&gt;Not only does this affect peoples lives but it also affects the future skilled work force and project/product deliverables. We are already seeing signs of A.I. built tools taking longer and costing more to maintain and refactor compared to convential development.&lt;/p&gt;

&lt;p&gt;There is no question in my mind having used and continuing to use these tools to help me with my work that they are beneficial in the right hands. But when things go wrong it often takes longer to diagnose the problem and fix it. And requires human intervention and understanding, not machines.&lt;/p&gt;

&lt;p&gt;As companies reduce the head count of experienced engineers this presents a problem that they have yet to recognise.&lt;/p&gt;

&lt;p&gt;If A.I. creates a problem, it does not always know how to solve it. This is where human thinking still wins out, at this time at least.&lt;/p&gt;

&lt;p&gt;And if you have no experienced engineers that know the technology,products or systems, how can you expect the problem to be solved? This is a context that goes way beyond well crafted prompts.&lt;/p&gt;

&lt;p&gt;Engineers often think outside the box to find solutions or debug a problem, they break the rules to find the problem. Machines only know to follow the rules defined for them.&lt;/p&gt;

&lt;p&gt;Even worse, if you allow models to feed themselves on the work they produce then you are slowly building a technical debt of inaccuracy that will eventually destroy it’s self.&lt;/p&gt;

&lt;p&gt;We are also seeing companies hire juniors to essentially be button pushers that craft prompts for A.I. to do the real work. On the surface this probably seems like a great idea because it costs less and you can replace people as needed (which is entirely the wrong ethical way to think about this anyway).&lt;/p&gt;

&lt;p&gt;This also means juniors will be more expendable than ever, this presents the problem of them improving based on long term experience and learning through failure.&lt;/p&gt;

&lt;p&gt;In my view, at least for the forseable future. A.I. tools should be used to continue education and abilities and not viewed as a replacement. I can only hope that sensible argument and discussion wins out over the budget watchers and speed to market company decisions.&lt;/p&gt;

</description>
      <category>career</category>
      <category>ai</category>
      <category>learning</category>
    </item>
    <item>
      <title>Job Finder Tracker for Android</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Thu, 16 Apr 2026 20:01:02 +0000</pubDate>
      <link>https://dev.to/peterwitham/job-finder-tracker-for-android-1mh3</link>
      <guid>https://dev.to/peterwitham/job-finder-tracker-for-android-1mh3</guid>
      <description>&lt;p&gt;Update on Android app. It's is almost done!&lt;/p&gt;

&lt;p&gt;I am thrilled to announce that Job Finder Tracker for Android is almost finished. I have been polishing up little issues as I find them and the interface feels right.&lt;/p&gt;

&lt;p&gt;Here are a few screenshots to get you Android users excited while I work through the Google Play Store process.&lt;/p&gt;

&lt;p&gt;I’d love to hear your thoughts over on the &lt;a href="https://peterwitham.com/contact" rel="noopener noreferrer"&gt;PeterWitham.com contact page&lt;/a&gt;. If you would like to know when it has been released to the store you can use the contact form to let me know and I’ll send an email when the day arrives.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faaqqpk8hhyfg2npf5y4i.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faaqqpk8hhyfg2npf5y4i.webp" alt="Job Finder Track for Android Screenshot" width="315" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8b9w2f80hfd68algmt54.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8b9w2f80hfd68algmt54.webp" alt="Job Finder Track for Android Screenshot" width="315" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrn2tnx80qpkht8nhaij.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrn2tnx80qpkht8nhaij.webp" alt="Job Finder Track for Android Screenshot" width="315" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewi9emugmqxd84gozko1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewi9emugmqxd84gozko1.webp" alt="Job Finder Track for Android Screenshot" width="315" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuda41jdf24zsb7zwr9ql.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuda41jdf24zsb7zwr9ql.webp" alt="Job Finder Track for Android Screenshot" width="315" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>android</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Not everything needs fancy</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Fri, 03 Oct 2025 14:42:18 +0000</pubDate>
      <link>https://dev.to/peterwitham/not-everything-needs-fancy-ioc</link>
      <guid>https://dev.to/peterwitham/not-everything-needs-fancy-ioc</guid>
      <description>&lt;p&gt;I am wrapping up development and preparing to release my new mobile app &lt;a href="https://www.subradar.app" rel="noopener noreferrer"&gt;SubRadar&lt;/a&gt;. The time arrived to put a Web site together.&lt;/p&gt;

&lt;p&gt;Now I could have gone two ways&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Be the engineer in me and over work the problem with lots of good things that I'll never really need&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep it simple as a product site and move on&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Yep, I chose number 2 this time around. All it needs is a simple HTML + CSS site to show the app and provide a contact form.&lt;/p&gt;

&lt;p&gt;This also gave me an opportunity to embrace AI for getting the mundane layout done and then tweak by hand. So that's what I did using Claude Code. Something I've come to appreciate for sanity checking my work when things go wrong.&lt;/p&gt;

&lt;p&gt;The end result I think was pleasing and after a couple of days of refining the code and making it look the way I wanted, I now have a product site that just needs some videos worked.&lt;/p&gt;

&lt;p&gt;The lesson here is that I needed this done, I have the skills to do it but recognize that my time is better spent focused on getting the app done rather than the tasks I've done a 1000 times before.&lt;/p&gt;

&lt;p&gt;Something for us all to think about as we love/hate AI and those tasks we'd rather not repeat over and over.&lt;/p&gt;

&lt;p&gt;Take a look, I'm happy with it &lt;a href="https://www.subradar.app" rel="noopener noreferrer"&gt;SubRadar.app&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>mobile</category>
      <category>ai</category>
    </item>
    <item>
      <title>What would you build a Web app with today?</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Tue, 12 Mar 2024 17:38:19 +0000</pubDate>
      <link>https://dev.to/peterwitham/what-would-you-build-a-web-app-with-today-53ha</link>
      <guid>https://dev.to/peterwitham/what-would-you-build-a-web-app-with-today-53ha</guid>
      <description>&lt;p&gt;So, if you were to start a new Web app today that needed the following&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend&lt;/li&gt;
&lt;li&gt;Backend with DB&lt;/li&gt;
&lt;li&gt;User registration&lt;/li&gt;
&lt;li&gt;Secure to take payments for the service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What would you use? Yes, I know this is some what open ended and maybe a loaded question. I've only used React in the past few years.&lt;/p&gt;

&lt;p&gt;But I want to try and recreate one of my mobile native apps on the Web and I'm a little out of date as I have not built one in a couple of years at least.&lt;/p&gt;

&lt;p&gt;I am also considering trying a no-code solution since this feels like a good opportunity to explore them further.&lt;/p&gt;

&lt;p&gt;Thanks for advice, suggestions.&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>The Power of Grooming: Streamlining Your Workflow for Maximum Productivity</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Thu, 09 Nov 2023 15:48:05 +0000</pubDate>
      <link>https://dev.to/peterwitham/the-power-of-grooming-streamlining-your-workflow-for-maximum-productivity-4j30</link>
      <guid>https://dev.to/peterwitham/the-power-of-grooming-streamlining-your-workflow-for-maximum-productivity-4j30</guid>
      <description>&lt;p&gt;I want to discuss something related to software engineering that can be applied to various topics — project grooming.&lt;/p&gt;

&lt;p&gt;Let me give you a few examples.&lt;/p&gt;

&lt;p&gt;But hold on, there are no brushes involved.&lt;/p&gt;

&lt;p&gt;In software development, when following a process called Scrum, we engage in grooming. Essentially, it involves reviewing all the work that needs to be done.&lt;/p&gt;

&lt;p&gt;This approach is much more productive than doing all the preparation right before you start.&lt;/p&gt;

&lt;p&gt;New work constantly comes in from different sources, such as finding issues, receiving requests, or implementing new features. The details aren't crucial here.&lt;/p&gt;

&lt;p&gt;The idea behind grooming is that, at regular intervals (maybe once a week or so), you sit down with your team (or by yourself) and go through everything to ensure everything is up to date.&lt;/p&gt;

&lt;p&gt;Each item should have the latest notes and the correct status. Essentially, you do whatever you can to move things forward or ensure all the necessary information is there.&lt;/p&gt;

&lt;p&gt;For example, if you had a meeting and took notes, you add those notes to the item.&lt;/p&gt;

&lt;p&gt;The purpose of this practice is that, by doing it regularly, you can pick up any item and start working on it at any time. The thing will have all the latest information and be ready to go.&lt;/p&gt;

&lt;p&gt;I believe this approach can be applied to almost anything, and I use it in all my projects.&lt;/p&gt;

&lt;p&gt;Some of you might think, "Isn't this overkill for side projects or personal endeavors? It seems like managing the work of the work." But here's the thing: you're already doing it. You might not realize it.&lt;/p&gt;

&lt;p&gt;However, more often than not, you're doing it too late. You're doing it when you sit down to start something.&lt;/p&gt;

&lt;p&gt;For example, you have 15 minutes to write a blog post. If you spend the first 5 or 10 minutes figuring out what to write about, you'll only have 5 minutes for the actual writing. I hope this example helps you understand the concept.&lt;/p&gt;

&lt;p&gt;The same applies to other activities, like photography. If you spend the first 20 minutes of an hour-long session preparing your equipment, formatting cards, and connecting cables, you're not taking pictures; you're just prepping or grooming.&lt;/p&gt;

&lt;p&gt;Suppose you do the grooming ahead of time and make it a regular habit (which is quick and easy to do, by the way). In that case, you'll find that when you say, "I'm going to write a blog post," or "I'm going to paint a picture," or "I'm going to take some photographs," or "I'm going to work on some software bugs," you'll be able to sit down, grab an item, and start working on it.&lt;/p&gt;

&lt;p&gt;This approach is much more productive than doing all the preparation right before you start.&lt;/p&gt;

&lt;p&gt;Plus, if you have to do all the prep work at the beginning, it can be draining and prevent you from engaging in the creative process.&lt;/p&gt;

&lt;p&gt;So, please take a moment to think about it. If you have any opinions or suggestions or believe this is either silly, pointless or very beneficial and want to share your experience, I'd love to talk to you about it. Consider that an invitation to come on my Podcasts.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://peterwitham.com/podcasts/the-power-of-grooming-for-productivity/" rel="noopener noreferrer"&gt;The Power of Grooming: Streamlining Your Workflow for Maximum Productivity&lt;/a&gt; appeared first on &lt;a href="https://peterwitham.com" rel="noopener noreferrer"&gt;Peter Witham&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>podcast</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Don't forget the leaks</title>
      <dc:creator>Peter Witham</dc:creator>
      <pubDate>Thu, 03 Aug 2023 14:56:47 +0000</pubDate>
      <link>https://dev.to/peterwitham/dont-forget-the-leaks-2m4f</link>
      <guid>https://dev.to/peterwitham/dont-forget-the-leaks-2m4f</guid>
      <description>&lt;p&gt;I had spent the best part of a week on and off trying to fix an issue I was having with SpriteKit, one of the gaming frameworks on the Apple platforms.&lt;/p&gt;

&lt;p&gt;This was the last bug between development and shipping the 1.0 release, but it was a big one.&lt;/p&gt;

&lt;p&gt;I was getting repeated audio and animations where I should only be seeing and hearing them once. After all, how many times does a player have to die to indicate they dead?…once right?&lt;/p&gt;

&lt;p&gt;I had re-written, re-architected the code numerous times and was convinced that I had everything right each time. There are only so many ways to change an image and play a sound after all.&lt;/p&gt;

&lt;p&gt;Through out the process I had been live streaming the development at &lt;a href="https://compileswift.com/livestream" rel="noopener noreferrer"&gt;https://compileswift.com/livestream&lt;/a&gt; like I always do. And many more talented folks than I in the chatroom had suggested things that we tried with no solution in sight.&lt;/p&gt;

&lt;p&gt;Then, someone whom I hold in high regard for SpriteKit said they would be happy to take a look at the whole codebase for me. After much defeat and imposter syndrome, I gave in and handed over the code base.&lt;/p&gt;

&lt;p&gt;After a while they got back to me and said “Hey, I think you have a leak and retainer in the game scene”.&lt;/p&gt;

&lt;p&gt;Now, I had looked at this, but did not see what they had seen. Maybe due to lack of observation on my part, or maybe code blindness had set in.&lt;/p&gt;

&lt;p&gt;But sure enough, they were right. Two lines of code changes later everything started to fit into place and away it went happily just taking down the player once.&lt;/p&gt;

&lt;p&gt;So there are two lessons here I want to share.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Always take help when it’s offered&lt;/li&gt;
&lt;li&gt;Don’t forget to check beyond the code structure and see if something unexpected or unplanned is happening outside of the logic it’s self.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For now, I am sending the last version to TestFlight and hoping for a 1.0 release in the coming week or two.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mobile</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
