<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tony Edwards</title>
    <description>A curation of learnings, musings and similarly captured day dreams.</description>
    <link>https://tonyedwardspz.co.uk</link>
    <atom:link href="https://tonyedwardspz.co.uk/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>MAUI Day and the stowaway ladybird</title>
        <description>&lt;p&gt;7 Talks + 2 nights away + a stowaway ladybird = another successful MAUI Day!&lt;/p&gt;

&lt;p&gt;With almost 100 attendees in the room, how could it not be?&lt;/p&gt;

&lt;p&gt;The gaggle of .NET MAUI developers had descended from around the globe on central London for a day of cross-platform knowledge sharing. Not only did we learn a whole bunch, but we also got to meet and mingle with the faces behind the avatars that we chat with day in and out.&lt;/p&gt;

&lt;p&gt;Between Syncfusion providing the food, NewDay providing the venue, and the community providing the conversations, the room was in exceptionally high spirits.&lt;/p&gt;

&lt;p&gt;Was it fun?&lt;/p&gt;

&lt;p&gt;It sure was.&lt;/p&gt;

&lt;p&gt;Did it run on time?&lt;/p&gt;

&lt;p&gt;Hell no!&lt;/p&gt;

&lt;p&gt;Will we do it again?&lt;/p&gt;

&lt;p&gt;For sure!&lt;/p&gt;

&lt;p&gt;Where?&lt;/p&gt;

&lt;p&gt;Everywhere!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2026/maui-day-shriram.jpg&quot; alt=&quot;Photo of Shriram at MAUI Day&quot; title=&quot;Photo of Shriram at MAUI Day&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For as long as another group of speakers are willing to assemble to provide an excuse to get together, then we’ve got no excuse not to. Massive thanks to David, Stéphane, Mark, Matt, Shriram, and Clifford for giving the days conversations a focal point, plus allowing the conf to ✅ the 5 continents box.&lt;/p&gt;

&lt;p&gt;Not sure how we’ll reach six!&lt;/p&gt;

&lt;p&gt;In a distributed sector, within a distributed world, opportunities to connect in person and deepen the rapport built on top of hundreds of online chats is important. Both to the individual and the whole. Communities thrive based on the value of conversations, and judging by the buzz in the room last week the hashtag#dotnetMAUI community has never been so alive.&lt;/p&gt;

&lt;p&gt;Just like the ladybird.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2026/maui-day-ladybird.jpg&quot; alt=&quot;The Ladybird packed into a suitcase&quot; title=&quot;The Ladybird packed into a suitcase&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;She’s part of the colony hibernating in the bedroom back home, although one of the family decided to come on the 580 mile round train trip.&lt;/p&gt;

&lt;p&gt;Thankfully, Premier Inn rooms are hermetically sealed. . . meaning she could fly around the room in the evening without me having to worry about her escaping. Countryside bugs don’t deserve city life, although I’m sure she has some stories to tell the others!&lt;/p&gt;

&lt;p&gt;We both have to be fair.&lt;/p&gt;

&lt;p&gt;Overall, it was another successful trip to the UK capital for the hashtag#MAUIDay crew.&lt;/p&gt;

&lt;p&gt;But multiple attendees on the day gave me feedback that there should be more focus on performance amongst the sessions.&lt;/p&gt;

&lt;p&gt;Hopefully we’ll be able to arrange that for London 2027, and maybe even add a little performance to the panel 🤞&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2026/maui-day-panel.jpg&quot; alt=&quot;The MAUI Day closing pannel&quot; title=&quot;The Ladybird packed into a suitcase&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/maui-day-and-the-stowaway-ladybird/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/maui-day-and-the-stowaway-ladybird/</guid>
      </item>
    
      <item>
        <title>3 minutes to go. Stuck in the toilet 🤦‍♂️</title>
        <description>&lt;p&gt;3 mins left and I was stuck in the toilet&lt;/p&gt;

&lt;p&gt;It was broadcast time.&lt;/p&gt;

&lt;p&gt;Eat a Banana. Drink some water. Go to the bathroom.&lt;/p&gt;

&lt;p&gt;Gran always said to never miss an opportunity, and this wasn’t the moment to defy such hefty wisdom.&lt;/p&gt;

&lt;p&gt;Hearing the click of the door behind me, it didn’t cross my mind that this is the high security HQ of Microsoft. Doors have locks. A few minutes later I soon realised the consequences of this lapse in concentration.&lt;/p&gt;

&lt;p&gt;The call was made.&lt;/p&gt;

&lt;p&gt;I was rescued.&lt;/p&gt;

&lt;p&gt;Everything worked out in the end. But it wasn’t the warm-up I’d imagined for my guest appearance on the &lt;a href=&quot;https://www.youtube.com/watch?v=8X03ksPKX6A&quot;&gt;dotnet YouTube channel&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I wouldn’t worry about watching.&lt;/p&gt;

&lt;p&gt;My appearance amounts to just babbling about chocolate salty balls.&lt;/p&gt;

&lt;p&gt;They are tasty tho.&lt;/p&gt;
</description>
        <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/3-minuts-to-go/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/3-minuts-to-go/</guid>
      </item>
    
      <item>
        <title>Life - All about the bounce back</title>
        <description>
</description>
        <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/life-all-about-the-bounce-back/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/life-all-about-the-bounce-back/</guid>
      </item>
    
      <item>
        <title>.NET MAUI - Toggle fullscreen for MacCatalyst desktop app</title>
        <description>&lt;p&gt;.NET MAUI Mac Catalyst apps run on macOS, but use UIKit (iOS frameworks) rather than AppKit (native macOS frameworks). To toggle full screen, the same behavior as clicking the green ”zoom” button in the window chrome, we need to bridge into AppKit’s NSApplication and NSWindow using the Objective-C runtime.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#if MACCATALYST

    var nsAppClass = ObjCRuntime.Class.GetHandle(&quot;NSApplication&quot;);
    var nsApp = ObjCRuntime.Runtime.GetNSObject(nsAppClass);
    var sharedApp = nsApp?.PerformSelector(new ObjCRuntime.Selector(&quot;sharedApplication&quot;));
    var keyWindow = sharedApp?.PerformSelector(new ObjCRuntime.Selector(&quot;keyWindow&quot;));
    keyWindow?.PerformSelector(new ObjCRuntime.Selector(&quot;toggleFullScreen:&quot;), keyWindow);

#endif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you want to see it in action, check out &lt;a href=&quot;https://github.com/tonyedwardspz/MAUI-full-screen-mac-demo-project&quot;&gt;this demo project&lt;/a&gt; containing a Mac App.&lt;/p&gt;

&lt;p&gt;Here’s how it works.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var nsAppClass = ObjCRuntime.Class.GetHandle(&quot;NSApplication&quot;);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Gets a handle (pointer) to the Objective-C class &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NSApplication&lt;/code&gt;. This is AppKit’s application singleton class that manages the macOS app lifecycle. Since Mac Catalyst doesn’t directly expose AppKit types to C#, we access it dynamically through the Objective-C runtime.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var nsApp = ObjCRuntime.Runtime.GetNSObject(nsAppClass);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Wraps the raw class handle in an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NSObject&lt;/code&gt; that we can interact with from C#. This gives us a managed object representing the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NSApplication&lt;/code&gt; class itself, which we get with the next line.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var sharedApp = nsApp?.PerformSelector(new ObjCRuntime.Selector(&quot;sharedApplication&quot;));&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This calls the sharedApplication class method on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NSApplication&lt;/code&gt;, which returns the singleton instance of the running application.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;var keyWindow = sharedApp?.PerformSelector(new ObjCRuntime.Selector(&quot;keyWindow&quot;));&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This retrieves the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keyWindow property&lt;/code&gt; from the shared application, i.e. the window that will receive any keypresses. This returns an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NSWindow&lt;/code&gt; instance. Then. . . finally. . .&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keyWindow?.PerformSelector(new ObjCRuntime.Selector(&quot;toggleFullScreen:&quot;), keyWindow);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Calls toggleFullScreen: on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NSWindow&lt;/code&gt;. This is the same method macOS invokes when you click the green full screen button. The method takes a sender parameter (we pass the window itself), and toggles between full screen and windowed mode. This mean you can call it again to revert the full screen.&lt;/p&gt;

&lt;p&gt;And with that, you now have a fullscreen Mac app using .NET MAUI.&lt;/p&gt;

&lt;h3 id=&quot;what-about-windows&quot;&gt;What about Windows?&lt;/h3&gt;

&lt;p&gt;If you want to implement the same functionality within MAUI for Windows, I highly recommend this &lt;a href=&quot;https://blog.verslu.is/maui/full-screen-disable-minimize-maximize-for-net-maui-windows-apps/&quot;&gt;blog post&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/muai-toggle-fullscreen-on-maccatalyst/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/muai-toggle-fullscreen-on-maccatalyst/</guid>
      </item>
    
      <item>
        <title>A MAUI example starter project</title>
        <description>&lt;p&gt;Setting a project up in the right way from day one is key to long term success. But with a myriad of different ways to achieve the same goal, it’s fairly easy to go down the wrong path. Especially as a learner. This is even more true with MAUI, given how much it’s changed in recent years.&lt;/p&gt;

&lt;p&gt;Quite often example projects are created by experts in software engineering, who’ve internalised abstractions and know the APIs inside out. These abstractions and helper libraries might make complete sense to someone with years of experience in a field, but to a learner, they’re can be plain confusing.&lt;/p&gt;

&lt;p&gt;To AI as well.&lt;/p&gt;

&lt;p&gt;By setting up the basics of a project, and then handing off to AI to fill in the gaps, the end result is much better and quicker to get to. With a little prompting, an AI coding assistant will scan a project and pattern match what exists already, making the right setup even more foundational and key.&lt;/p&gt;

&lt;p&gt;At the outset of a recent vibe Mac app, I created &lt;a href=&quot;https://github.com/tonyedwardspz/maui-di-vm-settings-example&quot;&gt;a boilerplate project&lt;/a&gt; to act as an example of a good starting point for a .NET MAUI app to grow from. It:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Uses view models via the community toolkit to allow for a clean separation of UI and business logic&lt;/li&gt;
  &lt;li&gt;Sets up dependency injection for services, and consumes them in the view models&lt;/li&gt;
  &lt;li&gt;Uses app settings to pull config from&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It achieves these things in the simplest way possible, without abstracting the reader of the code from how it fits together. It also offers a great starting point to experiment with using something more fancy to achieve the same goals, and will work on any platform if you alter the platform identifiers.&lt;/p&gt;

&lt;p&gt;Hopefully you’ll find it useful on your MAUI journey.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/tonyedwardspz/maui-di-vm-settings-example&quot;&gt;https://github.com/tonyedwardspz/maui-di-vm-settings-example&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/maui-starter-project/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/maui-starter-project/</guid>
      </item>
    
      <item>
        <title>Festive friday at Sapphire House</title>
        <description>&lt;p&gt;34 people, 23 dishes, (only) 4 bottles of Prosecco, and 1 happy chef *.&lt;/p&gt;

&lt;p&gt;That’s a festive Friday at Sapphire House.&lt;/p&gt;

&lt;p&gt;To bring the team together before we start disappearing ahead of Christmas, the Sapphire Holidays IT team, joined up with parts of the Aspects Holidays and Classic Cottages teams to craft the ultimate office roast. Of course, this came shortly after giving out the presents.&lt;/p&gt;

&lt;p&gt;The meal itself was both a success and tasty!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/ff-people.jpg&quot; alt=&quot;People enjoying the Festive food&quot; title=&quot;The festive friday food spread&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Honey glazed parsnips met crispy roast potatoes. Succulent beef collided with terrific turkey. Cute little piggies nestled in their blankets, with a trio of gravies smothering them all. It’s was one of those moments that having multiple full kitchens in the building became a major highlight of office life.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/ff-beef.jpg&quot; alt=&quot;Festive friday beef&quot; title=&quot;The festive friday food spread&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/ff-parsnips.jpg&quot; alt=&quot;Festive friday parsnips&quot; title=&quot;The festive friday food spread&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/ff-cabbage.jpg&quot; alt=&quot;Festive friday cabbage&quot; title=&quot;The festive friday food spread&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, expectations for 2026 are now super high.&lt;/p&gt;

&lt;p&gt;I suspect we’ll only top 2025 by getting a visit from Santa himself. . . although Dan was a adequate stand-in come time for secret Santa.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/ff-santa-dan.jpg&quot; alt=&quot;Santa Dan&quot; title=&quot;Santa Dan giving out presents&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Ok. There were actually two chefs. . . but only one of them regularly makes me bacon sandwiches so he’s getting all the credit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/ff-happy-chef.jpg&quot; alt=&quot;Happy chef&quot; title=&quot;Happy Chef after the meal&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/festive-friday/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/festive-friday/</guid>
      </item>
    
      <item>
        <title>10 years of Digital Plymouth</title>
        <description>&lt;p&gt;10 year of bringing Plymouth’s digital community together!&lt;/p&gt;

&lt;p&gt;Getting to come along for the journey has been an honor.&lt;/p&gt;

&lt;p&gt;We’re too quick to say that something is life changing nowadays. So much so that its become a cliché. But for this meetup, the people around it, and those that attend, it is often true in the truest sense of the word.&lt;/p&gt;

&lt;p&gt;Whenever I’m doing something amazingly fun professionally, in the farthest corners of Europe, I can ALWAYS trace the origin back to the encouragement and support that came from being a part of the Digital Plymouth / Plymouth Web / PlymouthJS communities 🙏&lt;/p&gt;

&lt;p&gt;It been great to watch it grow over the past decade into something bigger, more diverse, and even more impactful to the city.&lt;/p&gt;

&lt;p&gt;Here’s to 10 more years of the same 🥂&lt;/p&gt;

&lt;p&gt;A response to &lt;a href=&quot;This LinkedIn post&quot;&gt;https://www.linkedin.com/feed/update/urn:li:activity:7402436542780305408/&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/10-years-of-digital-plymouth/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/10-years-of-digital-plymouth/</guid>
      </item>
    
      <item>
        <title>Hanging up the wigs</title>
        <description>&lt;p&gt;I’ve hung up the wigs for 2025.&lt;/p&gt;

&lt;p&gt;But be warned. . . they’ll be back on occasion in 2026.&lt;/p&gt;

&lt;p&gt;In recent years, the two talks I’ve delivered the most have both had a gimmick. Something to create a photo opportunity as part of an event, and hopefully to put a smile on the audiences face.&lt;/p&gt;

&lt;p&gt;It worked!&lt;/p&gt;

&lt;p&gt;Well. . . most of the time.&lt;/p&gt;

&lt;p&gt;Without giving away the moment, the wigs and hats were both an integral part of the talks. But you (or even the organiser) can only play the fool so often, and it’s time to be a little more serious with the content I deliver. So whilst they’ll both be back, they’ll be used mainly for meetups where things are a little more informal and expectations on takeaway learnings are a little lower.&lt;/p&gt;

&lt;p&gt;But one of the projects behind the talk has changed a huge amount over the years. Plus it’s super fun to work on.&lt;/p&gt;

&lt;p&gt;Back then it was little more that a clone of a platform demo with a changed h1 tag, a ton of showmanship, and a dash of hot bars. Today, it’s grown into a multi API backend encompassing locally hosted speech recognition, LLMs, and image recognition paired with either a website or .NET tMAUI desktop app as the interface. It’s even binging in the hot newness that is Aspire to both the web and .NET stacks.&lt;/p&gt;

&lt;p&gt;Naturally, the software is a bit shaky. That’s part of the fun. However the learnings are solid and it keeps a mechanism for growing my hat collection a little more.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/hats.jpg&quot; alt=&quot;Hat collection&quot; title=&quot;Hat collection&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The trickiest part?&lt;/p&gt;

&lt;p&gt;Fitting the details into a paragraph or two so I can submit to conferences!&lt;/p&gt;

&lt;p&gt;Wish me luck 🤞&lt;/p&gt;
</description>
        <pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/hanging-up-the-wigs/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/hanging-up-the-wigs/</guid>
      </item>
    
      <item>
        <title>The value of user testing</title>
        <description>&lt;p&gt;At work, the project I head up is entering its final phase of development before release. To make sure that we’re making guests life easier, I’ve hosted a user testing session in recent days. The results are surprisingly unsurprising. Bugs have been flagged up, paths through the app were broken, and features were not used as expected.&lt;/p&gt;

&lt;p&gt;It was enlightening!&lt;/p&gt;

&lt;p&gt;Whilst we’re well past the prototyping phase, the &lt;a href=&quot;https://www.sitepoint.com/premium/books/designing-ux-prototyping/&quot;&gt;Designing UX: Prototyping&lt;/a&gt; book by &lt;a href=&quot;https://bsky.app/profile/bouncingdan.bsky.social&quot;&gt;Dan Goodwin&lt;/a&gt; and Ben has been super useful in setting up this activity. It pushed me into the right mindset for testing in a high fidelity context, giving a great framework for asking the right questions and setting the right tasks for users to work though. Although some of the tooling in the book in out dated, the concepts are solid and will never not be relevant. It’s also a super easy read, and pairs up well with lessons withing ‘The Mum Test’. Both are highly recommended if you’re about to perform this type of task.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/testing-book.jpg&quot; alt=&quot;Designing UX: Prototyping book&quot; title=&quot;Designing UX: Prototyping&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On the day, test users were provided with four groups of related tasks, the kind of things that guests will over the lifecycle of their stay. Feedback was gathered via both a form and conversation, plus observational notes to pair with screen and audio recordings. The perspective afforded by looking over a shoulder instead of testing yourself allows different elements of the product to jump out. E.g,&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I never miss the hit box to open the account edit screen, but every single tester did.&lt;/li&gt;
  &lt;li&gt;Users consistently look for X as part of the search interface.&lt;/li&gt;
  &lt;li&gt;I think feature X is complete, but the people from within the brand think Y and Z are missing from it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/testing-user2.jpg&quot; alt=&quot;Testing MAUI apps with users&quot; title=&quot;Testing MAUI apps with users&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Talking with frontline staff, those on the end of the phone during both the booking process and during the stay, uncovered a bunch of easy wins for the product.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“20% of our calls are about X”&lt;/li&gt;
  &lt;li&gt;“Our life would be easier if guests had Y when they called up”&lt;/li&gt;
  &lt;li&gt;“99% of guests only have one booking at a time”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The process also threw me back to a conversation at the &lt;a href=&quot;https://tonyedwardspz.co.uk/blog/product-tank-cologne/&quot;&gt;Product Task meetup in Köln&lt;/a&gt;. I was talking about testing with a fellow attendee, with the conversation continuing afterwards digitally. I highlighted that my test group will come from within the company. It was suggested that they’d use the product differently to actual guests due to institutional knowledge, whilst I exibited an undeserved level of hubris that they wouldn’t.&lt;/p&gt;

&lt;p&gt;Surprise surprise. . . they did.&lt;/p&gt;

&lt;p&gt;One of the tasks was to navigate to a booked property, effectivly the stay starting tomorrow. Everyone within the business checked to see if the textual directions were present in the app. Everyone outside of the business simply clicked the map to start navigation within their maps app. This really highlighted how institutional knowledge affects the was a user performs a task. Martin. You were right. . . but only one of us knew that at the time! To paraphrase Tim Herberg, the speaker on the night:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Gut feeling has a place in the discovery process. It can inform the direction in the early days, but should quickly be backed up or discarded due to data.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unfortunatly, I’d forgotten that point in the sime since and neglected to get the data to back up my assumptions.&lt;/p&gt;

&lt;p&gt;Overall this was an enlightening process, and one that reminded me of the value that the rapid feedback loop that often comes with an agile-esque development process. Whilst some of the things that were flagged up are solid suggestions, there’s not really enough time to both polish what exists and introduce the refined features before launch day.&lt;/p&gt;

&lt;p&gt;Lesson learned.&lt;/p&gt;

&lt;p&gt;This was a fun and very useful process to go through as a product developer. I’m now sitting on a pile of actionable feedback, insights from different levels of the business, and even a few ideas that can help make the wider teams life easier via minimal changes to existing products or a quickly vibed prototype.&lt;/p&gt;

&lt;p&gt;Oh. . . and biscuits. We ate a lot of biscuits.&lt;/p&gt;
</description>
        <pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/the-value-of-testing/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/the-value-of-testing/</guid>
      </item>
    
      <item>
        <title>Looking around @ HalfStack London</title>
        <description>
</description>
        <pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/looking-around-at-halfstack/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/looking-around-at-halfstack/</guid>
      </item>
    
      <item>
        <title>Rings - Aesop Rock</title>
        <description>&lt;p&gt;Used to draw&lt;br /&gt;
Hard to admit that I used to draw&lt;br /&gt;
Portraiture and the human form&lt;br /&gt;
Doodle of a two-headed unicorn&lt;br /&gt;
It was soothin’, movin’ his arm in a fusion&lt;br /&gt;
Of man-made tools and a muse from beyond&lt;br /&gt;
Even if it went beautifully wrong&lt;br /&gt;
It was tangible truth for a youth who refused to belong&lt;br /&gt;
No name nuisance, stews in a bedroom&lt;br /&gt;
Oozing a brand new cuneiform&lt;br /&gt;
Barely commune with the horde&lt;br /&gt;
Got a whole gray scale ungluing his world&lt;/p&gt;

&lt;p&gt;Might zone out to the yap of the magpie&lt;br /&gt;
Unseen hand dragging his graphite&lt;br /&gt;
Cross contour, little bit of backlight&lt;br /&gt;
Black ink after a Bristol to baptize&lt;br /&gt;
You can’t imagine the rush that ensue&lt;br /&gt;
When you get three dimensions stuffed into two&lt;br /&gt;
Then it’s off to a school where it’s all that you do&lt;br /&gt;
Being trained and observed by a capable few&lt;br /&gt;
Back in New York, five peeps and a dog&lt;br /&gt;
In a two-bedroom doing menial jobs&lt;br /&gt;
Plus, rhymin’ and stealin’ and being a clod&lt;br /&gt;
Distractions free to maraud&lt;/p&gt;

&lt;p&gt;I left some years a deer in the light&lt;br /&gt;
I left some will to spirit away&lt;br /&gt;
I let my fears materialize&lt;br /&gt;
I let my skills deteriorate&lt;br /&gt;
Haunted by the thought of what I should have been continuing&lt;br /&gt;
A mission that was rooted in a 20-year affinity&lt;br /&gt;
In rickety condition with an ID crisis&lt;br /&gt;
Nap on the front lawn, look up in the sky, it’s…&lt;/p&gt;

&lt;p&gt;Shapes falling out of the fringe&lt;br /&gt;
All heart, though we would’ve made cowardly kings&lt;br /&gt;
They will chop you down just to count your rings&lt;br /&gt;
Just to count your rings, just to count your rings&lt;br /&gt;
And there were colors pouring out of the fringe&lt;br /&gt;
All heart, though we would’ve made cowardly kings&lt;br /&gt;
They will chop you down just to count your rings&lt;br /&gt;
Just to count your rings, just to count your rings&lt;/p&gt;

&lt;p&gt;Used to paint&lt;br /&gt;
Hard to admit that I used to paint&lt;br /&gt;
Natural light on a human face&lt;br /&gt;
Stenciled fire on his roommate’s bass&lt;br /&gt;
It was blooming addiction&lt;br /&gt;
Amiss in the pushing of pigment&lt;br /&gt;
Book like a tattooed pigskin, look&lt;br /&gt;
Pinhead kids of the minute&lt;br /&gt;
Drank Kool-Aid from a tube of acrylic&lt;br /&gt;
And it grew up into linseed oil over linen&lt;br /&gt;
Joy to the poison, voice of the resin&lt;br /&gt;
Capture a map of the gesture&lt;br /&gt;
Back up, add a little accurate fat to the figure&lt;/p&gt;

&lt;p&gt;Redo that, move that inward&lt;br /&gt;
Zinc white lightning shoots from his fingers&lt;br /&gt;
Studio strewn with illusion and tinctures&lt;br /&gt;
Stay tuned for the spooky adventures&lt;br /&gt;
You can’t imagine the stars that align&lt;br /&gt;
When a forearm starts foreshortening right&lt;br /&gt;
Or a torso hung on a warping spine&lt;br /&gt;
In proportion reads as warm and alive&lt;br /&gt;
Routine day with a dirt cheap brush&lt;br /&gt;
Then a week goes by and it goes untouched&lt;br /&gt;
Then two, then three, then a month&lt;br /&gt;
And the rest of your life, you beat yourself up&lt;/p&gt;

&lt;p&gt;I left some seasons eager to fall&lt;br /&gt;
I left some work to bury alive&lt;br /&gt;
I let my means of being dissolve&lt;br /&gt;
I let my person curl up and die&lt;br /&gt;
Eating up his innards, an unfeasible anxiety&lt;br /&gt;
Has brutally committed to relinquishing his privacy&lt;br /&gt;
Aligning with the trials of the anti-Midas&lt;br /&gt;
Nap on the back lawn, look up in the sky, it’s…&lt;/p&gt;

&lt;p&gt;Shapes falling out of the fringe&lt;br /&gt;
All heart, though we would’ve made cowardly kings&lt;br /&gt;
They will chop you down just to count your rings&lt;br /&gt;
Just to count your rings, just to count your rings&lt;br /&gt;
And there were colors pouring out of the fringe&lt;br /&gt;
All heart, though we would’ve made cowardly kings&lt;br /&gt;
They will chop you down just to count your rings&lt;br /&gt;
Just to count your rings, just to count your rings&lt;/p&gt;
</description>
        <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/rings/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/rings/</guid>
      </item>
    
      <item>
        <title>Environment dictates performance</title>
        <description>&lt;p&gt;A recent conversation with a mentee who is stepping out of education into the world reminded me of this well known phrase. It’s one that makes logical sense.&lt;/p&gt;

&lt;p&gt;If you’re in a high performing environment, your much more likely to perform to a high level.&lt;/p&gt;

&lt;p&gt;If you’re in a creative environment, you’re much more likely to be creative.&lt;/p&gt;

&lt;p&gt;If you’re surrounded by people who are learning, incrementing skills upwards, and pushing boundaries. . . you will as well.&lt;/p&gt;

&lt;p&gt;The world around us is a normalising factor.&lt;/p&gt;

&lt;p&gt;My advice to them at the outset of their career. . . be eternally careful about the world you choose to inhabit.&lt;/p&gt;
</description>
        <pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/environment-dictates-performance/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/environment-dictates-performance/</guid>
      </item>
    
      <item>
        <title>Tech Mids community conference</title>
        <description>&lt;p&gt;Woah.&lt;/p&gt;

&lt;p&gt;That’s how you bring a community together!&lt;/p&gt;

&lt;p&gt;230 of the Midlands best and brightest descended on the Mailbox in Birmingham for the &lt;a href=&quot;https://conf.techmids.org&quot;&gt;TechMids conference&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/techmids-bull.jpg&quot; alt=&quot;Big Bull at Tech Mids Conference&quot; title=&quot;Big Bull at Tech Mids Conference&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Did we have fun? We sure did 😎&lt;/p&gt;

&lt;p&gt;The sessions across the day covered an extremely broad range of topics. Whilst every single one deserves a mention, there are a few highlights that provided value that is being taken back to the Sapphire Holidays dev team.&lt;/p&gt;

&lt;p&gt;Becki Floyd dropped a UX bomb, showing the audience the inner awesomeness of the Voxpopme, a tool to validate ideas and garner feedback at a humungous scale.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/techmids-becki.jpg&quot; alt=&quot;Becki Floyd at Tech Mids Conference&quot; title=&quot;Becki Floyd at Tech Mids Conference&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Guy Barker shared a11y insights drawn from his dotnetMAUI Accessible Solitaire app, backed by a lifetime of experience in the field. What the talk lacked in chanting (this time), it made up for in actionable insights 🙌&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/techmids-guy-barker.jpg&quot; alt=&quot;Guy Barker at Tech Mids Conference&quot; title=&quot;Guy Barker at Tech Mids Conference&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Si Jobling dispensed psychological safety from the stage, thanks to the PETALS framework. It’s a simple framework for continuously improve a tech team’s health. Don’t worry Si. . . I refused to do the exercise with Toby as suggested. . . instead having a useful topic adjacent conversation during that part of the proceedings 💬&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/techmids-si-jobling.jpg&quot; alt=&quot;Si Jobling at Tech Mids Conference&quot; title=&quot;Si Jobling at Tech Mids Conference&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wrapping up the day was a wonderful talk from Shaun Lawrence which perfectly walked the tightrope of informative, fun, and inspirational. I’ve not yet managed to convince the team to set up a IoT brewing operation in the corner of the office, but I suspect it won’t take much more persuasion.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/techmids-shawn-lawrence.jpg&quot; alt=&quot;Shawn Lawrence at Tech Mids Conference&quot; title=&quot;Shawn Lawrence at Tech Mids Conference&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Overall, this is tied with WhatTheStack Conference as my favourite community led event to be a part of in 2025.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;As a speaker, you know you’re part of a great line-up when you don’t want to be in your own talk!&lt;/li&gt;
  &lt;li&gt;You also know you’re in safe hands when the track host, conf team, and audience join forces to fix show stopping problems in the moments before your talk starts (thanks Bruce 🙏)&lt;/li&gt;
  &lt;li&gt;You know your witnessing a thriving community when the conversations carry on LAAAAATE into the night.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With TechMids over, my speaking engagements for 2025 are complete. There is no other conference on the earth that would have provided a juicier cherry to top this years conf cake.&lt;/p&gt;

&lt;p&gt;It. Was. Perfect.&lt;/p&gt;

&lt;p&gt;Let’s make this a tradition and do it again next year.&lt;/p&gt;

&lt;p&gt;It’s lovely to finish the year with a short-long trip home 🚗&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/techmids-cornwall.jpg&quot; alt=&quot;Coming home from Tech Mids Conference&quot; title=&quot;Coming home from Tech Mids Conference&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;P.S - If anyone knows how to take good a selfie whilst facing the camera into a cinema projector. . . please let me know. It’s turning into a recurring problem 😂&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/techmids-beats-talk.jpg&quot; alt=&quot;Tony Edwards at Tech Mids Conference&quot; title=&quot;Tony Edwards at Tech Mids Conference&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/tech-mids-is-fin/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/tech-mids-is-fin/</guid>
      </item>
    
      <item>
        <title>The end of the HalfStack era</title>
        <description>&lt;p&gt;I’ve never been so sad to have a day watching fun talks, have conversations with friends, all whilst munching tasty pizza and late night bagels.&lt;/p&gt;

&lt;p&gt;Why???&lt;/p&gt;

&lt;p&gt;HalfStack London is fin. . . but it went out with the creative flair that I’ve come to love about Londons Tech Community. Over the past nine years, this conference has been a highlight of each and every year for a multitude of reasons.&lt;/p&gt;

&lt;p&gt;Every talk added something to the event, with a few highlights coming via Jo Francetti, Eduardo Cardenes, Leo Rivera, Carly Richmond and Steve Goodwin. Combined, they served up sessions based around LLM assisted procedural generation, cutting edge APIs, Star Wars themed vector databases, advice on progressing through a company, with a dash of midi madness thrown in for good luck.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/hs-jo.jpg&quot; alt=&quot;Jo Francetti speaking at HalfStack&quot; title=&quot;Jo Francetti speaking at HalfStack&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/hs-eduardo.jpg&quot; alt=&quot;Eduardo Cardenes at HalfStack&quot; title=&quot;Eduardo Cardenes at HalfStack&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/hs-leo.jpg&quot; alt=&quot;Leo Rivera at HalfStack&quot; title=&quot;Leo Rivera at HalfStack&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/hs-steve.jpg&quot; alt=&quot;Steve Goodwin talking MIDI&quot; title=&quot;Steve Goodwin talking MIDI&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In all honesty, these were the standout sessions because they were the ones I caught. Every other talk would have made the list, but with so many interesting attendees to chat with, the hallway track was as popular as ever. Plans for 2026 were hatched, ideas for talks bounced around, and musical collaborations planned.&lt;/p&gt;

&lt;p&gt;So why is this conference so special to me?&lt;/p&gt;

&lt;p&gt;As a student, it was the first one I attended outside of the southwest and got to meet the people whose tutorials I was following. It was the conference that really sparked my love of tech events. It was a place where I got to meet future friends, collaborators, and speakers for my events. It’s the gathering that I wrote my most popular talk for, one which is still paying dividends all these years later.&lt;/p&gt;

&lt;p&gt;It’s the event that opened my eyes to the broader tech industry beyond bashing out code.&lt;/p&gt;

&lt;p&gt;Whilst the London outing of the conference is coming to a close. . . for now at least. . . the things it’s added to my life will remain until the end of time.&lt;/p&gt;

&lt;p&gt;A massive thank you to Dylan for putting on the jewel in the conf crown, and for the support with various adventures over the years.&lt;/p&gt;
</description>
        <pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/end-of-the-halfstack-era/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/end-of-the-halfstack-era/</guid>
      </item>
    
      <item>
        <title>WhatTheStack Community Conference, Skopje</title>
        <description>&lt;p&gt;WTF was that WTS!?!&lt;/p&gt;

&lt;p&gt;To call &lt;a href=&quot;https://wts.sh/&quot;&gt;WhatTheStack&lt;/a&gt; a conference would be doing it a disservice.&lt;/p&gt;

&lt;p&gt;Community conference comes closer. But still not quite right. Even amongst the best grassroots tech events in Europe(ish) , this one stood out amongst them all. And not just for the conference itself.&lt;/p&gt;

&lt;p&gt;Skopje offered the perfect location for a late summer tech event. Clear blue skies provided the backdrop for a architecturally interesting city. Vienna-esque grandeur blended with Soviet style buildings to offer one of the most interesting walks to an event venue ever, with the venue itself offering a peek inside a great example of the brutalist style.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/whatthestackconf-statue.jpg&quot; alt=&quot;Not Alexander The Great&quot; title=&quot;Not Alexander The Great&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But 30+ speakers didn’t descend on Macedonia from around the globe to take in the buildings, weather, and the THOUSANDS of statues. We were there to share our love of the web through our talks.&lt;/p&gt;

&lt;p&gt;We certainly did that!&lt;/p&gt;

&lt;p&gt;The big event on Saturday was preceded by a week of smaller events at &lt;a href=&quot;https://base42.mk/&quot;&gt;Base42&lt;/a&gt;, a hackerspace in the heart of the city. As part of it, I dropped some Beats, Rhymes, and Neural Nets on the audience. Thankfully, the audience were right into it. I’m always hesitant with this talk in far flung places, as not all cultures appreciate talks at the fun end of the spectrum. This lot. . . they appreciated it more than most 💪&lt;/p&gt;

&lt;p&gt;For the main conference, the speakers brought their A++ game. Despite the demo-gods not being on the side of everyone, the sessions were clearly a hit with audience. Whether you wanted to deep dive into React, Angular, (software) architecture, hear case studies, or be made to think, there was something for everyone. Whilst I didn’t get to see a whole host of the sessions, one of the ones I did really shone a light on how useful Supabase would be when prototyping software. Thanks &lt;a href=&quot;https://www.linkedin.com/in/prodromouf/&quot;&gt;Fanis&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/whatthestackconf-fanis.jpg&quot; alt=&quot;Fanis talking about Supabase&quot; title=&quot;Fanis talking about Supabase&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once the audience had filtered away after the event, the awesomeness of the gathering really shone through. After comparing notes amongst the speaker group, the consensus is that attendees were proactive in seeking out speakers to talk to. Whilst this might not sound like much, typically you’d get a couple of “thanks, that was great” comments and maybe a question or two.&lt;/p&gt;

&lt;p&gt;Not at What the Stack.&lt;/p&gt;

&lt;p&gt;The community were keen to talk. Very keen in fact. And this is a great sign of a thriving, safe, and engaged community that you don’t get at many events, and one of the things a community conferences should be. Rough around the edges, but polished in the places that matter. Informal, but without becoming a collection of cliques. Honest to what it is, whilst trying to grow into something greater.&lt;/p&gt;

&lt;p&gt;This is a direct reflection of the team behind the event, and the communities in the city. To say the speakers were given a personal touch is an understatement. It was more of a concierge service. Want a table at a restaurant booked? Sure. Need a taxi? No problem. Want a day trip to Kosovo? Be ready at 9am. EVERY single tech event organiser, regardless of the scale of the gathering, could learn a thing or two from the team here.&lt;/p&gt;

&lt;p&gt;Overall, this has been my favorite conference in a very long time, with Skopje rocketing to the top three of my favorite cities. If you are a speaker in the web world, follow the conf page and keep an eye out for next years CFP. You won’t regret it.&lt;/p&gt;

&lt;p&gt;If you are lucky enough to be selected, and you ask nicely, &lt;a href=&quot;https://www.faziz-dev.com/&quot;&gt;Faris&lt;/a&gt; might even buy you a post-event ice cream as well 🙏&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/whatthestackconf-icecream.jpg&quot; alt=&quot;Faris treating us to Ice Cream&quot; title=&quot;Faris treating us to Ice Cream&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Hope to see you there in 2026!&lt;/p&gt;
</description>
        <pubDate>Sat, 20 Sep 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/what-the-stack-conference/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/what-the-stack-conference/</guid>
      </item>
    
      <item>
        <title>Putting it to the test</title>
        <description>&lt;p&gt;For the past few years I’ve been learning German on and off. Today the is the day my approach is to be put to the test.&lt;/p&gt;

&lt;p&gt;Instead of spending an extortionate amount of time with apps, books, and AI tools the method has essentially been to overwhelm my brain with the language without worrying what is being said. Almost without exception, every audio book, podcast, book, TV show, song, and Formula 1 race has been purposely undecipherable. The theory. . . no German word will ever take me by surprise.&lt;/p&gt;

&lt;p&gt;It’s been a weird experience.&lt;/p&gt;

&lt;p&gt;Whilst I only know the very basics of the language off by heart, I can recognise and say hundreds of words without knowing what they mean. Reading basic text out loud is no problem. And, hopefully, being a host of Europe’s largest software development conference in Berlin won’t present too many linguistic challenges.&lt;/p&gt;

&lt;p&gt;If all else fails, they’ll be treated to a few raps to fill the time.&lt;/p&gt;

&lt;p&gt;Whilst I might struggle to order a meal in German, I’m fully prepped to rock the karaoke stage 🎤&lt;/p&gt;

&lt;p&gt;Gotta have your priorities right 😎&lt;/p&gt;
</description>
        <pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/put-it-to-the-test/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/put-it-to-the-test/</guid>
      </item>
    
      <item>
        <title>York Gooose Attack</title>
        <description>&lt;p&gt;How does one celebrate the final few days of a business trip?&lt;/p&gt;

&lt;p&gt;Well. . . I got attacked 🙀&lt;/p&gt;

&lt;p&gt;The last leg of the summer business bumble saw me return to the North of England, taking in the sights of Sheffield, Nottingham, and York. Whilst each city had their charms, and brought something different to events within them, it was York that will leave a lasting impression.&lt;/p&gt;

&lt;p&gt;The first night saw me pop to Nottingham to take in the &lt;a href=&quot;https://www.meetup.com/dotnetnotts/&quot;&gt;.NET Notts meetup&lt;/a&gt;. The subject for the evening was MongoDB and how to effectively incorporate it into a .NET app. I was super happy to find out that EF works nicely with it, blending platforms tooling with document based storage flawlessly. In hindsight, I shouldn’t have skipped this one after only 2 hours sleep.&lt;/p&gt;

&lt;p&gt;The next night I spoke at the &lt;a href=&quot;https://www.meetup.com/dotnetsheff/&quot;&gt;.NET Sheffield meetup&lt;/a&gt;, sharing the tale of the flock and the games that resulted from my bird catching hobby. The talk went well it seemed, with lots of positive comments and the typical “more code” request. For this outing, I focused on an updated story arc, shortening the non-code section, ahead of an upcoming rejig of the talk. It felt like the story still came across.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/tony-net-sheff.jpg&quot; alt=&quot;Tony Edwards Speaking at .NET Sheffield&quot; title=&quot;Tony Edwards Speaking at .NET Sheffield&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next up was attending the &lt;a href=&quot;https://www.meetup.com/accu-york/&quot;&gt;ACCU York meetup&lt;/a&gt; in the patch office. This was a really useful event, with the focus of the group being to deepen knowledge of software development. The topic for the night was Code reviews, with Graham sharing lot’s of useful tidbits. One in particular was the playing card framework for feedback during them, which was super useful and will be introduced to the team back at work.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/accu-york.jpg&quot; alt=&quot;ACCU York&quot; title=&quot;ACCU York .NET York&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For the final night, I spoke at the &lt;a href=&quot;https://www.meetup.com/dotnetyork/&quot;&gt;.NET York meetup&lt;/a&gt;. As the last talk of the tour, the session was at the forefront of my mind and I could focus my efforts more on the delivery style. In this regard, I wish this outing was how well it went at the conference the week before. . . but we learn 🤷‍♀️&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/dotnet-york.jpg&quot; alt=&quot;Dotnet York&quot; title=&quot;Kevin at .NET York&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;York was also the last time I’ll probably see Kevin after tracking him across all four of these events. I’m not sure what he did in a previous life to deserve two nights as a clown and one night as Bruce Forsythe. . . but it must’ve been bad! I promise I wasn’t actually stalking you Kevin! 😇&lt;/p&gt;

&lt;p&gt;York, however, got it’s revenge on his behalf. I guess it was Karma trying to rebalance the universe.&lt;/p&gt;

&lt;p&gt;I was attacked by a Goose.&lt;/p&gt;

&lt;p&gt;Unfortunately, I didn’t manage to record the sound of the attack for a future iteration of the Midi Birds talk, but did get the offender on camera before they pounced. The noise is seared into my brain, alongside the lesson to be learned:&lt;/p&gt;

&lt;p&gt;Don’t stroke Geese.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/goose.jpg&quot; alt=&quot;Geese before an attack&quot; title=&quot;Geese before an attack&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Jun 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/goose-attack/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/goose-attack/</guid>
      </item>
    
      <item>
        <title>Something special happened at CityJS Athens</title>
        <description>&lt;p&gt;Something special happened last week at &lt;a href=&quot;https://cityjsconf.org/&quot;&gt;CityJS Athens&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;🏛️ But it started at the seat of civilisation ~4000 years ago. Location. . . Greece’s first theatre.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/greece-first-theatre.jpg&quot; alt=&quot;Greeces First Theatre&quot; title=&quot;Greeces First Theatre&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That was the beginning point from which every modern conference can trace it’s heritage back to. A group of people came together to share theories, dispense wisdom, and tell stories to each other. In essence these were the first meetups. Whilst there would’ve been far more himations back then than were seen at the City JS conference, the thread between the two points in time is strong nonetheless.&lt;/p&gt;

&lt;p&gt;For two days, just shy of 200 attendees, speakers, and sponsors joined forces to celebrate the world of #JavaScript in the heart of Athens, continuing that ancient tradition. Taking over a community centre, we discussed every facet of JS conceivable, from dawn until dusk was a distant memory.&lt;/p&gt;

&lt;p&gt;There are too many great talks to mention them all, however the three that stuck with me are:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://bsky.app/profile/hola-soy-milk.online&quot;&gt;Carmen’s&lt;/a&gt; upbeat look at dependency management, and the real world equivalent of our cable draws. Lots of nuggets of wisdom, plenty of memes, and the perfect pick me up in the morning.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/carmen-cityjs.jpg&quot; alt=&quot;Carmen discussing our node modules folder&quot; title=&quot;Carmen discussing our node modules folder&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://bsky.app/profile/ealush.bsky.social&quot;&gt;Evyatar&lt;/a&gt; speed ran the creation of a unit testing library for form validation. This talk really made me question the approach I take to testing web front ends, and also inspired the room to follow our ideas  through to completion. Naturally, I’ll just reach for his framework, &lt;a href=&quot;https://vestjs.dev/&quot;&gt;VestJS&lt;/a&gt;, to do this task.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/evyatar-cityjs.jpg&quot; alt=&quot;Evyatar Alush building an MVP of Vest&quot; title=&quot;Evyatar Alush building an MVP of Vest&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://bsky.app/profile/sumyerradi.bsky.social&quot;&gt;Soumaya&lt;/a&gt; continued the testing vibes, and gave a high level comparison of three popular frameworks for testing web applications. Which one won the battle I hear you cry! Well. . . it depends. . . as it does with most things in the world of development.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/soumaya-cityjs.jpg&quot; alt=&quot;Soumaya Erradi disecting testing frameworks&quot; title=&quot;Soumaya Radi disecting testing frameworks&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The conference overall was on par with what I’ve come to expect from CityJS Conferences. Friendly people, getting geeky, eating tasty food, and sharing their love of the web. The tech wizards who shared their skills and knowledge from the stage were a special bunch, and they dove even deeper at the speaker gathering. So many nuggets were learned from this group of people, and it was really fun getting to hang out for a few days.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/city-js-speakers-group.jpg&quot; alt=&quot;Speaker dinner day 1&quot; title=&quot;Speaker dinner day 1&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As the closing speaker of the second day, I was afforded the luxury of some last minute tweaks to the slides after experiencing day one. Sometimes you need to get the vibe of the location and audience in order to make this effective. As a city that has clearly had brighter days, and knowing that hip-hop is often the voice of the people, I was sure I’d find some great local hip-hop to slide into the talk. Sure enough I did, slotting a clip from &lt;a href=&quot;https://www.youtube.com/watch?v=u9HVvfQOJ20&quot;&gt;Sara ATH&lt;/a&gt; into the talk whist enjoying the vistas of the Athens skyline at night.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/athens-night-skyline.jpg&quot; alt=&quot;Athens night skyline&quot; title=&quot;Athens night skiline&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Beats, Rhymes, And Neural Nets, my session exploring the intersection of hip-hop and speech recognition seemed to go down well, and the event finished with the group delivering the ultimate energy needed for the moment. I knew y’all had it in you. Nice work folks 🙌&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/beats-cityjs-athens.jpg&quot; alt=&quot;The CityJS battle rap ready audience&quot; title=&quot;The CityJS battle rap ready audience&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I do have a bone to pick tho.&lt;/p&gt;

&lt;p&gt;The quiz team I was on won the JS quiz with a decisive lead. &lt;a href=&quot;https://bsky.app/profile/salihgueler.dev/post/3lqprpfo5o22x&quot;&gt;Regardless of what clips&lt;/a&gt; of &lt;a href=&quot;https://www.linkedin.com/in/farisaziz12/&quot;&gt;Faris&lt;/a&gt; and myself that &lt;a href=&quot;https://bsky.app/profile/salihgueler.dev&quot;&gt;Muhammed&lt;/a&gt; might show you. . . we won fair and square.&lt;/p&gt;

&lt;p&gt;Honest 😬&lt;/p&gt;

&lt;p&gt;It’s amazing how real AI generated videos are nowadays 🤣&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/city-js-quiz-team.jpg&quot; alt=&quot;The City JS Athens winning quiz team&quot; title=&quot;The CityJS Athens winning Quiz team&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Despite having victory ripped from our hands at the last moment, the event is sure to be the conf highlight of the year. I’ve made friends, fallen in love with a new city, and added another country to the list of those I’ve rapped in.&lt;/p&gt;

&lt;p&gt;The only thing missing was a conf branded himation. Perhaps a chiton too. It’s alway good for event teams to have targets to aim for tho 🎯&lt;/p&gt;

&lt;p&gt;The day after the conference, the speakers and a select group of attendees were treated to a short guided tour around the wider athens area.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/cityjs-temple.jpg&quot; alt=&quot;The Temple of Posiden, near athens&quot; title=&quot;The Temple of Posiden, near athens&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We took in an ancient theatre plus the temple of Poseiden en-route to a beach front restaurant that felt like a little hideaway. This is where the locals come when the Athens beaches are flooded with tourists in the summer months.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/cityjs-beach-view.jpg&quot; alt=&quot;The goodbye dinner view&quot; title=&quot;The goodbye dinner view&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It was on this trip that the aquaintances we made amongst the group turned into friends. Whilst many of us had fuzzy heads from the night before, it was the PERFECT end to the conference trip. Laid back, relaxed, and leasurly.&lt;/p&gt;

&lt;p&gt;Can’t wait to head back to Athens for either a visit, or the conference.&lt;/p&gt;
</description>
        <pubDate>Mon, 02 Jun 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/something-special-happened-in-athens/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/something-special-happened-in-athens/</guid>
      </item>
    
      <item>
        <title>A Robin of Points</title>
        <description>&lt;p&gt;Four days. Three meetups. Two talks. One Robins worth of points.&lt;/p&gt;

&lt;p&gt;Only a couple days left to fix it.&lt;/p&gt;

&lt;p&gt;The first leg of the 2025 business bumble is complete. After reaching escape velocity from Cornwall, I’ve touched down in Manchester and Leeds so far. They’re both lovely cities, and as the first time in the region I already can’t wait to come back. The location and friendly people weren’t the problem.&lt;/p&gt;

&lt;p&gt;Nor was the Dot Net North meetup. The folks there were welcoming and played their part in the talk. Amongst all the people that have donned the protective equipment, some how Aiden seemed the most comfortable. Is it time for him to pack up the keyboard, give up the meetup life, and start a new career as a children’s entertainer?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/dotnetnorth.jpg&quot; alt=&quot;Fooling around at Dotnet North&quot; title=&quot;Fooling around at Dotnet North&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The amazing folks at Leeds JS wasn’t my issue either. In fact they were the pick me up between problems. Together we pitted the browser SpeechRecognitionAPI against Whisper to find the true transcription champion. I’m not sure we came to a decisive conclusion, but one edged the other in this battle of the ages. The group seemed happy about it judging by the photo!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/leedsjs.jpg&quot; alt=&quot;Sharing beats at Leeds JS&quot; title=&quot;Sharing beats at leeds js&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Leeds Sharp community are far from a problem, but this is where it emerged. Trying out a few new bits for the #MidiBirds talk, the group offered the perfect feedback mechanism. Drop this bit, shape this bit, cry about that bit. Tons of great comments during and after the meet. When dressed up, John’s resignation to the reality of the situation was inverse of Aiden comfort.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/leedssharp.jpg&quot; alt=&quot;John Stateley as a human scoreboard&quot; title=&quot;John Stateley as a human scoreboard&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And it was after when the problem emerged.&lt;/p&gt;

&lt;p&gt;Picture the scene. We’re sat in a bar. The group are in wigs. I’ve got my sparkly game show jacket on. Then it hit.&lt;/p&gt;

&lt;p&gt;Team Null!&lt;/p&gt;

&lt;p&gt;There shouldn’t be a team null!&lt;/p&gt;

&lt;p&gt;You certainly shouldn’t be able to win a Robins worth of points from the spin!&lt;/p&gt;

&lt;p&gt;We were trying Wheel of Fortune, the latest game to be added into the talks #dotnetMAUI games app. It is seriously broken.&lt;/p&gt;

&lt;p&gt;Shoehorning a three player game into a two player setup wasn’t such a good idea it seems.&lt;/p&gt;

&lt;p&gt;So now the race is on.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Will I be able to fix this ahead of Techorama next week?&lt;/li&gt;
  &lt;li&gt;What 15 mins of the session will get dropped?&lt;/li&gt;
  &lt;li&gt;Is a Robins worth of points worth more or less than the top answer in Family Fortunes?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Big problems, I’m sure you’ll agree.&lt;/p&gt;

&lt;p&gt;Thankfully, theres a coding lodge en-suite to my London bolthole. You’ll find me hunkered down here for the next few days.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://tonyedwardspz.co.uk/assets/images/2025/coding-lodge.jpg&quot; alt=&quot;The coding lodge&quot; title=&quot;The coding lodge&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/a-robin-of-points/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/a-robin-of-points/</guid>
      </item>
    
      <item>
        <title>Hold the mace. I'm sweet enough.</title>
        <description>&lt;p&gt;💎 This is a gem of an opportunity.&lt;/p&gt;

&lt;p&gt;So much so it couldn’t be passed up.&lt;/p&gt;

&lt;p&gt;This week I’ve joined the developer team at Sapphire Holidays. It’s Cornwall’s best kept dev secret, and chances are you’ve not heard of us. So what do we do??&lt;/p&gt;

&lt;p&gt;Last year, the team helped to create happy memories for almost 50,000 families, couples, and solo travellers across Britain. Whilst the dev team hide their light under a bushel, the companies they power are probably more familiar names. Particularly if you’re in Cornwall and the South West.&lt;/p&gt;

&lt;p&gt;Maintaining the software underpinning Boutique Retreats, Aspects Holidays, Classic Cottages, plus a handful of other brands is a 9 on the Mohs scale of task hardnessgit push –force. There’s a mix of codebases, ranging from 20 days old to 20 plus years, representing multiple generations of the broad Microsoft tech stack. It’s a lot to keep running and growing.&lt;/p&gt;

&lt;p&gt;But that’s the fun bit.&lt;/p&gt;

&lt;p&gt;🧑‍🍳 If variety is the spice of life, then the range of projects here offers an abundance of flavor to cook up some software with. HTML, CSS, and JavaScript mix with Blazor and ASP to provide the mirepoix for our tasty tech sauce. Add in a dash of chilli via a hashtag#dotnetMAUI project or two for a little heat. SQL server brings the mixed herb vibes. . . foundational but not really that fun. And when the palette demands, a sprinkle of Visual Basic can add in the sweetness of mace.&lt;/p&gt;

&lt;p&gt;OK.&lt;/p&gt;

&lt;p&gt;That last one is stretching the metaphor a bit far. Visual Basic is far from sweet, but that code’s been running for half my life which is very sweet!&lt;/p&gt;

&lt;p&gt;With a significant bump in holiday numbers inevitable in the years ahead, it’s an exciting time for the team and the perfect moment to introduce a little bit of Tony into the recipe. With 3 apps to maintain and grow in the years ahead, and a whole bunch to learn about the tech we use, I think I’m the most excited in the office.&lt;/p&gt;

&lt;p&gt;Although the might be because it’s pasty Friday 🎉&lt;/p&gt;

&lt;p&gt;Steak for me. Hot and peppery preferably.&lt;/p&gt;

&lt;p&gt;Hold the Mace. I’m sweet enough 🤣&lt;/p&gt;
</description>
        <pubDate>Fri, 09 May 2025 00:00:00 +0000</pubDate>
        <link>https://tonyedwardspz.co.uk/blog/hold-the-mace/</link>
        <guid isPermaLink="true">https://tonyedwardspz.co.uk/blog/hold-the-mace/</guid>
      </item>
    
  </channel>
</rss>
