<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WardNet</title>
	<atom:link href="https://www.wardnet.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.wardnet.co.uk</link>
	<description>Infrastructure, ERP and General Technology Blog</description>
	<lastBuildDate>Fri, 10 Jul 2026 07:13:20 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://i0.wp.com/www.wardnet.co.uk/wp-content/uploads/2026/01/wp-1767387074640.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>WardNet</title>
	<link>https://www.wardnet.co.uk</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">63479081</site>	<item>
		<title>AI Never Sleeps: Extending the Working Day Without Extending the Hours</title>
		<link>https://www.wardnet.co.uk/ai-never-sleeps-extending-the-working-day-without-extending-the-hours/</link>
					<comments>https://www.wardnet.co.uk/ai-never-sleeps-extending-the-working-day-without-extending-the-hours/#respond</comments>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Fri, 10 Jul 2026 07:13:17 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[day job]]></category>
		<category><![CDATA[Global]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[teamwork]]></category>
		<category><![CDATA[Tooling]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=740</guid>

					<description><![CDATA[Managing global teams doesn't have to mean longer hours or more meetings. Discover how ChatGPT's AI and scheduling capabilities streamline handovers, automate updates, and keep work moving across time zones—helping teams achieve more while everyone sticks to a healthy working day.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Managing people across multiple regions used to mean one thing: compromise.</p>



<p class="wp-block-paragraph">Someone was always starting their day while someone else was finishing it. Meetings became awkward. Decisions waited overnight. Questions sat unanswered for hours.</p>



<p class="wp-block-paragraph">The obvious solution was to ask people to work outside their normal hours.</p>



<p class="wp-block-paragraph">The better solution turned out to be AI.</p>



<p class="wp-block-paragraph">Over the past few months I&#8217;ve been experimenting with using ChatGPT as more than just an assistant for writing or coding. It&#8217;s become the coordinator that keeps work moving while people quite rightly aren&#8217;t working.</p>



<p class="wp-block-paragraph">The result hasn&#8217;t been people working longer.</p>



<p class="wp-block-paragraph">It&#8217;s been the team working smarter.</p>



<h2 class="wp-block-heading">Time Zones Aren&#8217;t the Problem</h2>



<p class="wp-block-paragraph">Most organisations see geography as the challenge.</p>



<p class="wp-block-paragraph">I don&#8217;t.</p>



<p class="wp-block-paragraph">The real problem is context.</p>



<p class="wp-block-paragraph">When someone in the UK hands work to someone in Australia, or vice versa, valuable time is often lost explaining where things are, what has changed, what&#8217;s already been tried and what the expected outcome looks like.</p>



<p class="wp-block-paragraph">By the time everyone has caught up, another half day has disappeared.</p>



<p class="wp-block-paragraph">AI removes much of that friction.</p>



<p class="wp-block-paragraph">Instead of writing lengthy handover emails, I can ask ChatGPT to produce concise, structured updates tailored to the recipient.</p>



<p class="wp-block-paragraph">It captures decisions, identifies blockers, highlights risks and creates clear next actions.</p>



<p class="wp-block-paragraph">The receiving engineer starts with understanding instead of detective work.</p>



<h2 class="wp-block-heading">The AI Project Coordinator</h2>



<p class="wp-block-paragraph">One of the biggest mindset shifts I&#8217;ve made is treating ChatGPT as another member of the team.</p>



<p class="wp-block-paragraph">Not because it replaces anyone.</p>



<p class="wp-block-paragraph">Because it remembers everything better than I do.</p>



<p class="wp-block-paragraph">Throughout the day I ask it to:</p>



<ul class="wp-block-list">
<li>summarise meetings</li>



<li>capture decisions</li>



<li>identify outstanding actions</li>



<li>produce status updates</li>



<li>draft communications</li>



<li>highlight dependencies</li>
</ul>



<p class="wp-block-paragraph">By the time another region starts work, I already have a polished handover that would previously have taken twenty minutes to write.</p>



<p class="wp-block-paragraph">Multiply that across an entire week and the time savings become significant.</p>



<h2 class="wp-block-heading">Scheduling the Right Work at the Right Time</h2>



<p class="wp-block-paragraph">One feature that has quietly become invaluable is ChatGPT&#8217;s scheduling capability.</p>



<p class="wp-block-paragraph">Rather than trying to remember to prepare updates, review priorities or check progress, I simply schedule those activities.</p>



<p class="wp-block-paragraph">Every morning I receive a concise briefing.</p>



<p class="wp-block-paragraph">Before key meetings I receive preparation notes.</p>



<p class="wp-block-paragraph">At the end of the day I receive prompts to capture outstanding decisions while they&#8217;re still fresh.</p>



<p class="wp-block-paragraph">These aren&#8217;t reminders in the traditional sense.</p>



<p class="wp-block-paragraph">They&#8217;re intelligent checkpoints that keep work flowing.</p>



<p class="wp-block-paragraph">The important distinction is that AI isn&#8217;t telling me what to do.</p>



<p class="wp-block-paragraph">It&#8217;s reducing the effort required to stay organised.</p>



<h2 class="wp-block-heading">Creating a Longer Working Day</h2>



<p class="wp-block-paragraph">The interesting outcome isn&#8217;t that anyone works more hours.</p>



<p class="wp-block-paragraph">They don&#8217;t.</p>



<p class="wp-block-paragraph">Instead, the effective working day becomes much longer.</p>



<p class="wp-block-paragraph">When my day finishes, someone else&#8217;s begins.</p>



<p class="wp-block-paragraph">Instead of leaving them with incomplete notes, AI helps package everything they need to continue immediately.</p>



<p class="wp-block-paragraph">While they&#8217;re making progress, scheduled summaries and updates keep me informed without interrupting their work.</p>



<p class="wp-block-paragraph">By the time I log back on the following morning, decisions have been made, issues have moved forward and priorities are already clear.</p>



<p class="wp-block-paragraph">The clock never stopped.</p>



<p class="wp-block-paragraph">The people simply maintained healthy working hours.</p>



<h2 class="wp-block-heading">Less Administration, More Leadership</h2>



<p class="wp-block-paragraph">One unexpected benefit has been the amount of management overhead that&#8217;s disappeared.</p>



<p class="wp-block-paragraph">Instead of spending time preparing updates, consolidating notes and chasing status reports, I spend more time solving problems and supporting the team.</p>



<p class="wp-block-paragraph">That&#8217;s where leaders create value.</p>



<p class="wp-block-paragraph">AI is quietly taking care of much of the administrative glue that traditionally filled the gaps between conversations.</p>



<h2 class="wp-block-heading">AI Isn&#8217;t Replacing Teamwork</h2>



<p class="wp-block-paragraph">There&#8217;s a lot of discussion about AI replacing people.</p>



<p class="wp-block-paragraph">That&#8217;s not what I&#8217;m seeing.</p>



<p class="wp-block-paragraph">What I&#8217;m seeing is AI removing the delays that prevent talented people from collaborating effectively.</p>



<p class="wp-block-paragraph">It doesn&#8217;t make better decisions than my engineers.</p>



<p class="wp-block-paragraph">It simply ensures they have the right information at the right time.</p>



<p class="wp-block-paragraph">The human expertise is exactly where it has always been.</p>



<p class="wp-block-paragraph">AI just keeps it moving.</p>



<h2 class="wp-block-heading">Final Thoughts</h2>



<p class="wp-block-paragraph">The biggest productivity gain I&#8217;ve seen from AI hasn&#8217;t come from writing faster or creating documents more quickly.</p>



<p class="wp-block-paragraph">It&#8217;s come from improving the flow of work.</p>



<p class="wp-block-paragraph">When information moves seamlessly between people, across time zones and throughout the working day, the entire team becomes more effective.</p>



<p class="wp-block-paragraph">Nobody works longer.</p>



<p class="wp-block-paragraph">Nobody attends more meetings.</p>



<p class="wp-block-paragraph">Nobody needs another collaboration tool.</p>



<p class="wp-block-paragraph">Instead, AI quietly fills the gaps between conversations, keeping momentum alive long after the office lights have been switched off.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.wardnet.co.uk/ai-never-sleeps-extending-the-working-day-without-extending-the-hours/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">740</post-id>	</item>
		<item>
		<title>Simplifying Work: Ditch the App Overload</title>
		<link>https://www.wardnet.co.uk/simplifying-work-ditch-the-app-overload/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Sun, 17 May 2026 15:28:31 +0000</pubDate>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Epicor]]></category>
		<category><![CDATA[OpenAI]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Teams]]></category>
		<category><![CDATA[Workflow]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=732</guid>

					<description><![CDATA[I’ve ditched 12 “productivity” apps and streamlined my mobile workflow. Now, Outlook, Teams, and ChatGPT handle everything—emails, team updates, and AI-assisted summaries. Less clutter, fewer notifications, more focus. Mobile work is now about staying informed, making decisions, and keeping momentum—simpler, smarter, and truly productive on the go.]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"></h1>



<p class="wp-block-paragraph">There was a time when my phone looked like a showcase for “productivity”.</p>



<p class="wp-block-paragraph">Task managers. Note taking apps. Whiteboard apps. Mind mapping tools. Team dashboards. To-do lists. Habit trackers. Time trackers. Document apps. AI assistants. Collaboration tools. Communication platforms.</p>



<p class="wp-block-paragraph">Twelve apps. Twelve different notifications. Twelve different places where “important” things lived.</p>



<p class="wp-block-paragraph">And honestly? Most of them were just layers between me and actually getting things done.</p>



<p class="wp-block-paragraph">Over the last few months I’ve been quietly simplifying how I work whilst away from my desk, and the result has been surprisingly dramatic. I’ve removed twelve productivity apps from my mobile device and replaced them with just three core tools:</p>



<ul class="wp-block-list">
<li>Outlook</li>



<li>Teams</li>



<li>ChatGPT</li>
</ul>



<p class="wp-block-paragraph">That’s it.</p>



<h2 class="wp-block-heading">The Death of the Mobile Productivity Stack</h2>



<p class="wp-block-paragraph">The original promise of productivity apps was compelling:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">“Capture everything.”<br>“Organise your life.”<br>“Never forget anything.”<br>“Manage work from anywhere.”</p>
</blockquote>



<p class="wp-block-paragraph">The problem is that most apps became destinations rather than assistants.</p>



<p class="wp-block-paragraph">You didn’t just <em>do work</em> anymore — you had to maintain the system that managed the work.</p>



<p class="wp-block-paragraph">Tasks needed tagging.<br>Notes needed organising.<br>Boards needed updating.<br>Projects needed grooming.<br>Templates needed maintaining.</p>



<p class="wp-block-paragraph">At some point, I realised I was spending more time curating productivity than benefiting from it.</p>



<h2 class="wp-block-heading">AI Changed the Equation</h2>



<p class="wp-block-paragraph">The big shift for me was the arrival of genuinely useful AI workflows.</p>



<p class="wp-block-paragraph">Before AI, structure mattered because software was rigid. If information wasn’t in exactly the right place, the tool became ineffective.</p>



<p class="wp-block-paragraph">Now? Context matters more than structure.</p>



<p class="wp-block-paragraph">ChatGPT can summarise.<br>It can extract actions.<br>It can draft responses.<br>It can organise thoughts.<br>It can build plans from unstructured conversations.<br>It can act as the connective tissue between fragmented information sources.</p>



<p class="wp-block-paragraph">That fundamentally changes how many apps you actually need.</p>



<h2 class="wp-block-heading">My Current Mobile Workflow</h2>



<h3 class="wp-block-heading">Outlook Becomes the Command Centre</h3>



<p class="wp-block-paragraph">Outlook handles:</p>



<ul class="wp-block-list">
<li>Email</li>



<li>Calendar</li>



<li>Meeting prep</li>



<li>Quick approvals</li>



<li>Team visibility</li>



<li>Prioritisation</li>
</ul>



<p class="wp-block-paragraph">Instead of exporting information into other systems, I now leave far more information where it naturally originates.</p>



<p class="wp-block-paragraph">An email thread is often the project history.<br>A meeting invite is often the task list.<br>A flagged message is often enough of a reminder.</p>



<p class="wp-block-paragraph">AI helps process information rather than forcing me to relocate it.</p>



<h2 class="wp-block-heading">Teams Handles Operational Awareness</h2>



<p class="wp-block-paragraph">Teams has effectively replaced several standalone collaboration tools for me.</p>



<p class="wp-block-paragraph">I use it for:</p>



<ul class="wp-block-list">
<li>Team communication</li>



<li>Status updates</li>



<li>Quick decision making</li>



<li>File access</li>



<li>Incident coordination</li>
</ul>



<p class="wp-block-paragraph">But more importantly, Teams gives me <em>context</em>.</p>



<p class="wp-block-paragraph">That matters far more than maintaining a perfect task hierarchy on a mobile screen.</p>



<h2 class="wp-block-heading">ChatGPT Is the Workflow Multiplier</h2>



<p class="wp-block-paragraph">This is the real difference maker.</p>



<p class="wp-block-paragraph">ChatGPT has become:</p>



<ul class="wp-block-list">
<li>My mobile thinking partner</li>



<li>My summarisation engine</li>



<li>My drafting assistant</li>



<li>My prioritisation tool</li>



<li>My “turn chaos into clarity” system</li>
</ul>



<p class="wp-block-paragraph">Instead of opening five apps to:</p>



<ul class="wp-block-list">
<li>capture notes,</li>



<li>organise tasks,</li>



<li>draft emails,</li>



<li>create summaries,</li>



<li>and prepare updates…</li>
</ul>



<p class="wp-block-paragraph">…I can now simply describe what I need.</p>



<p class="wp-block-paragraph">For example:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">“Summarise today’s customer escalation thread and produce actions for tomorrow.”</p>
</blockquote>



<p class="wp-block-paragraph">Or:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">“Turn these rough notes into a structured update for leadership.”</p>
</blockquote>



<p class="wp-block-paragraph">Or:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">“What are the key risks emerging from these conversations?”</p>
</blockquote>



<p class="wp-block-paragraph">That workflow reduction is enormous.</p>



<h2 class="wp-block-heading">Fewer Apps = Less Friction</h2>



<p class="wp-block-paragraph">What surprised me most wasn’t just convenience.</p>



<p class="wp-block-paragraph">It was cognitive reduction.</p>



<p class="wp-block-paragraph">Fewer icons.<br>Fewer notifications.<br>Fewer disconnected systems.<br>Fewer decisions about where information belongs.</p>



<p class="wp-block-paragraph">My phone now feels like a communication and decision-making tool again rather than a miniature admin console.</p>



<p class="wp-block-paragraph">There’s also something slightly ironic happening in the productivity software industry:<br>AI is making many productivity apps less necessary.</p>



<p class="wp-block-paragraph">A lot of tools existed primarily because humans had to manually structure information for software to understand it.</p>



<p class="wp-block-paragraph">Now software understands messy human input much better.</p>



<p class="wp-block-paragraph">That changes everything.</p>



<h2 class="wp-block-heading">Mobile Work Should Be Lightweight</h2>



<p class="wp-block-paragraph">I still believe deep work belongs on a proper workstation.</p>



<p class="wp-block-paragraph">But mobile work?<br>That should be:</p>



<ul class="wp-block-list">
<li>responsive,</li>



<li>lightweight,</li>



<li>contextual,</li>



<li>and fast.</li>
</ul>



<p class="wp-block-paragraph">The goal isn’t to recreate your desktop workflow on a six-inch screen.</p>



<p class="wp-block-paragraph">The goal is to stay informed, unblock people, make decisions, and keep momentum moving.</p>



<p class="wp-block-paragraph">Right now, Outlook + Teams + ChatGPT does that better for me than twelve fragmented productivity apps ever did.</p>



<p class="wp-block-paragraph">And honestly, I don’t miss any of them.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">732</post-id>	</item>
		<item>
		<title>From Curiosity to Capability: What My AI Learning Journey Has Actually Delivered</title>
		<link>https://www.wardnet.co.uk/from-curiosity-to-capability-what-my-ai-learning-journey-has-actually-delivered/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 07:55:13 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[AIAssistant]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Codex]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Vibe coding]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=727</guid>

					<description><![CDATA[The exploration of AI in software delivery highlights its role as an enhancer rather than a replacement for developers. AI improves understanding, quality, and efficiency across various stages, especially within legacy systems. Key benefits include higher confidence in changes, accelerated onboarding, and effective modifications to tools, showcasing AI's potential for long-term integration in development processes.]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Introduction</h1>



<p class="wp-block-paragraph">Over the past few weeks, I’ve been deliberately exploring how AI can support real-world software delivery—not as a novelty, but as a practical tool embedded into day-to-day engineering work.</p>



<p class="wp-block-paragraph">This hasn’t been about generating code for the sake of it. Instead, it’s been about applying AI across different types of ownership, complexity, and lifecycle stages of software. What’s emerged is a clearer picture: AI is most valuable not when it replaces development, but when it accelerates understanding, improves quality, and reduces friction.</p>



<p class="wp-block-paragraph">Here’s how that has played out in practice.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. Improving Code I Already Own</h2>



<p class="wp-block-paragraph">The easiest place to start was with code I had written myself—tools that are already in use and solving real problems.</p>



<p class="wp-block-paragraph">Because I understood the intent and behaviour of these applications, AI became a powerful second pair of eyes. I used it to:</p>



<ul class="wp-block-list">
<li>Generate unit tests for areas that had little or no coverage</li>



<li>Identify gaps in build and deployment pipelines</li>



<li>Highlight potential security concerns</li>



<li>Suggest refactoring opportunities for readability and maintainability</li>
</ul>



<p class="wp-block-paragraph">The result wasn’t dramatic rewrites. Instead, it was steady, compounding improvement:</p>



<ul class="wp-block-list">
<li>Higher confidence in changes due to better test coverage</li>



<li>More reliable builds and deployments</li>



<li>Reduced time spent on manual code reviews</li>



<li>Cleaner, more maintainable codebases</li>
</ul>



<p class="wp-block-paragraph">This is where AI felt most immediately productive—augmenting existing knowledge rather than trying to replace it.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2. Making Sense of Legacy Systems</h2>



<p class="wp-block-paragraph">A more interesting challenge came from systems I hadn’t written—particularly those with limited documentation and where historical knowledge had faded over time.</p>



<p class="wp-block-paragraph">Here, AI acted less like a coding assistant and more like a translation layer.</p>



<p class="wp-block-paragraph">I used it to:</p>



<ul class="wp-block-list">
<li>Analyse unfamiliar code and explain intent</li>



<li>Generate technical documentation from existing implementations</li>



<li>Identify outdated dependencies and suggest upgrade paths</li>



<li>Propose test strategies for systems that had none</li>
</ul>



<p class="wp-block-paragraph">What would typically take days of manual exploration could be accelerated significantly. More importantly, it reduced the risk of “guesswork engineering”—making changes without fully understanding the system.</p>



<p class="wp-block-paragraph">Key outcomes included:</p>



<ul class="wp-block-list">
<li>Faster onboarding into legacy systems</li>



<li>Improved stability through better understanding</li>



<li>Reduced reliance on tribal knowledge</li>



<li>A foundation for future modernisation</li>
</ul>



<p class="wp-block-paragraph">This was one of the most valuable use cases: turning unknown systems into known ones.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3. Tailoring the Tools I Use Every Day</h2>



<p class="wp-block-paragraph">Another unexpected benefit came from applying AI to open-source tools I use regularly.</p>



<p class="wp-block-paragraph">Instead of working around limitations or minor frustrations, I was able to:</p>



<ul class="wp-block-list">
<li>Explore the codebase quickly</li>



<li>Identify the root cause of issues</li>



<li>Implement targeted fixes or enhancements</li>
</ul>



<p class="wp-block-paragraph">AI reduced the barrier to entry for modifying third-party code. Tasks that might previously have felt too time-consuming or complex became achievable in a short space of time.</p>



<p class="wp-block-paragraph">The impact here was subtle but meaningful:</p>



<ul class="wp-block-list">
<li>Smoother day-to-day workflows</li>



<li>Faster resolution of small but persistent issues</li>



<li>Greater control over the tools I rely on</li>
</ul>



<p class="wp-block-paragraph">It shifted the mindset from “adapting to tools” to “adapting tools to fit the way I work.”</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4. Reviving Older, Customer-Facing Solutions</h2>



<p class="wp-block-paragraph">Some of the most challenging scenarios involved older solutions that are still in use but no longer actively developed.</p>



<p class="wp-block-paragraph">These tend to surface through support cases or escalations, often requiring rapid understanding and targeted fixes.</p>



<p class="wp-block-paragraph">AI proved particularly useful in:</p>



<ul class="wp-block-list">
<li>Interpreting older coding patterns and structures</li>



<li>Diagnosing issues from limited context</li>



<li>Suggesting safe, minimal changes to resolve problems</li>



<li>Documenting behaviour that had never been formally captured</li>
</ul>



<p class="wp-block-paragraph">This led to:</p>



<ul class="wp-block-list">
<li>Faster resolution times for complex issues</li>



<li>Fewer repeat incidents</li>



<li>Increased confidence when working in fragile codebases</li>
</ul>



<p class="wp-block-paragraph">Rather than treating these systems as untouchable, AI made them accessible again.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5. Enhancing Actively Maintained Solutions</h2>



<p class="wp-block-paragraph">Finally, I applied the same approaches to modern, actively maintained solutions—where expectations around quality, security, and consistency are much higher.</p>



<p class="wp-block-paragraph">In this space, AI supported:</p>



<ul class="wp-block-list">
<li>Continuous improvement of test coverage</li>



<li>Ongoing security reviews</li>



<li>Documentation generation and updates</li>



<li>Ensuring alignment with current platform standards</li>
</ul>



<p class="wp-block-paragraph">The key difference here is that AI becomes part of the development lifecycle, not just a one-off tool.</p>



<p class="wp-block-paragraph">Benefits included:</p>



<ul class="wp-block-list">
<li>More consistent quality across releases</li>



<li>Faster delivery of enhancements</li>



<li>Improved confidence in production changes</li>



<li>Better alignment with evolving standards</li>
</ul>



<p class="wp-block-paragraph">This is where AI starts to feel like a long-term capability rather than a short-term productivity boost.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What I’ve Learned</h2>



<p class="wp-block-paragraph">Across all of these scenarios, a few consistent themes have emerged.</p>



<h3 class="wp-block-heading">1. AI Accelerates Understanding More Than It Replaces Thinking</h3>



<p class="wp-block-paragraph">The biggest gains came from reducing the time it takes to understand code—not from blindly generating it.</p>



<h3 class="wp-block-heading">2. Context Still Matters</h3>



<p class="wp-block-paragraph">AI is most effective when you can validate its output. The better your understanding of the system, the more value you get.</p>



<h3 class="wp-block-heading">3. Small Improvements Compound Quickly</h3>



<p class="wp-block-paragraph">Adding tests, improving pipelines, and tightening security might seem incremental, but together they significantly improve delivery confidence.</p>



<h3 class="wp-block-heading">4. Legacy Work Is Where AI Shines</h3>



<p class="wp-block-paragraph">The less documented and more complex a system is, the more impact AI can have in making it accessible again.</p>



<h3 class="wp-block-heading">5. It Changes What Feels “Worth Doing”</h3>



<p class="wp-block-paragraph">Tasks that previously felt too time-consuming—like fixing minor issues in third-party tools or documenting old systems—suddenly become viable.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Where This Goes Next</h2>



<p class="wp-block-paragraph">This is still early in the journey, but the direction is clear.</p>



<p class="wp-block-paragraph">AI is not just a coding assistant—it’s becoming a core part of how we:</p>



<ul class="wp-block-list">
<li>Understand systems</li>



<li>Maintain quality</li>



<li>Reduce risk</li>



<li>Deliver improvements faster</li>
</ul>



<p class="wp-block-paragraph">The next step is to move from individual use to repeatable patterns—embedding these approaches into team workflows, standards, and expectations.</p>



<p class="wp-block-paragraph">Because the real value isn’t just in what AI can do—it’s in how consistently we can apply it.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">727</post-id>	</item>
		<item>
		<title>From Titanium to Transformation: My 2026 Journey Starts Now</title>
		<link>https://www.wardnet.co.uk/from-titanium-to-transformation-my-2026-journey-starts-now/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Fri, 02 Jan 2026 20:39:39 +0000</pubDate>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[2026]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Health]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=711</guid>

					<description><![CDATA[After 12 months of constant neck pain, my Christmas gift was a life-changing ACDR surgery on Dec 21st. Now home for the holidays, my 2026 resolution is to leverage technology to boost my career and family life while prioritiaing a mindful recovery. Here’s to a high-tech, pain-free new year!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">They say the best Christmas gifts come in small packages. This year, mine came in the form of two small, high-tech implants and a world-class surgical team.<br>On December 21st, I underwent a procedure I had been anticipating for a long time: Anterior Cervical Disc Replacement (ACDR). While I was fortunate that my mobility hadn&#8217;t become severely limited, I had been battling constant, grueling neck pain for the last 12 months. Anyone who has dealt with chronic pain knows how it sits in the background of everything you do, slowly draining your energy and focus.<br>The timing was a bit of a holiday whirlwind, but by Christmas Day, I was back home—resting on the sofa and spending quality time with my family. Being home for the holidays, recovering in the company of the people I love most, was the ultimate gift. It wasn’t your traditional &#8220;unboxing,&#8221; but it’s easily the most valuable present I’ve ever received: the gift of starting a new year with a path toward being pain-free.<br>As I move into 2026, this recovery period has given me a rare commodity: perspective. I’m not just healing my neck; I’m recalibrating my entire approach to life, work, and family.</p>



<p class="wp-block-paragraph"><br><strong>The 2026 Resolution: The &#8220;Tech-Powered&#8221; Human</strong><br>While my new neck discs are a feat of medical engineering, they’ve inspired me to look at how I can use technology in other areas of my life. My resolution for 2026 isn&#8217;t about &#8220;doing more&#8221;—it’s about leveraging technology to be more present.<br>After a year of pushing through pain, I want to use the tools available to me to boost my efficiency while protecting my health. Here is how I’m planning to fuel my comeback:<br>Boosting Family Life: I’m leaning into smart-home automation and shared digital planning to remove the &#8220;mental load&#8221; of household management. By letting tech handle the grocery lists and schedules, I can focus 100% on being present with my family as I recover.</p>



<p class="wp-block-paragraph"><strong>Healing with Intent</strong><br />This year is going to look a little different. There will be physical therapy, plenty of rest, and a steady climb back to full strength. But with 12 months of pain finally behind me and two new discs to support me, I’ve never felt more optimistic.<br />Recovery isn&#8217;t just about getting back to &#8220;normal&#8221;; it&#8217;s about building a life that is more balanced and intentional than before. Here’s to a 2026 that is tech-enabled, family-focused, and—most importantly—moving forward.</p>



<p class="wp-block-paragraph"><br /> &#8220;The goal isn&#8217;t just to heal, but to thrive.&#8221;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">711</post-id>	</item>
		<item>
		<title>2025 a professional summary</title>
		<link>https://www.wardnet.co.uk/2025-a-professional-summary/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Sat, 29 Nov 2025 14:27:35 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Epicor]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[coaching]]></category>
		<category><![CDATA[growth]]></category>
		<category><![CDATA[growth mindset]]></category>
		<category><![CDATA[promotion]]></category>
		<category><![CDATA[security first]]></category>
		<category><![CDATA[solutions]]></category>
		<category><![CDATA[Work]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=705</guid>

					<description><![CDATA[In 2025, I embraced purposeful change as I transitioned from maker to manager. I enhanced team capabilities, focused on smarter shipping practices, and prioritized security and compliance. Through learning to listen and adapting my leadership approach, I aimed for consistent, effective team dynamics, setting the stage for greater achievements in 2026.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">My 2025 Year of Change: From Maker to Manager, and Back Again</h2>



<p class="wp-block-paragraph">If I had to give 2025 a headline, it would be <strong>change with purpose</strong>. This year stretched me in the best ways—stepping into new leadership responsibilities, growing a team, tightening the way we ship, and learning to listen harder than I speak. Here’s the personal version of that story—no brand names, no customer specifics—just what changed in me and how I showed up.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Stepping Up: The Promotion That Changed My Calendar (and Mindset)</h3>



<p class="wp-block-paragraph">Early in the year I moved into a bigger role. The real shift wasn’t the title; it was the lens. I stopped optimising only for “what I can build” and started optimising for <strong>“what the team can deliver repeatedly.”</strong><br>That meant trading some deep maker time for clearer goals, sharper priorities, and better guardrails. I learned that great leadership isn’t louder—it’s more <strong>consistent</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Building the Team: Capability Before Headcount</h3>



<p class="wp-block-paragraph">I focused on <strong>capability first</strong>: the skills we need, the outcomes we own, and the habits that make our work sustainable. Then I hired for those.<br>Recruiting became less about “finding a unicorn” and more about <strong>complementary strengths</strong>: pairing systems thinkers with strong communicators, matching builders with patient debuggers, and balancing speed with steadiness. The win wasn’t filling seats—it was creating a team that could cover for each other and still raise the bar.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Shipping More (and Smarter): Extensions That Reduce Friction</h3>



<p class="wp-block-paragraph">This was a <strong>shipping year</strong>. We delivered and refreshed a number of small-but-mighty <strong>extensions</strong> that simplify everyday workflows—things that make sending, tracking, auditing, and revising feel lighter.<br>My guiding principle was simple: <em>remove one step, add one check.</em> Fewer clicks, clearer states, better logs. The result was a set of releases that felt invisible in the best way: they just worked.</p>



<p class="wp-block-paragraph">How we kept momentum:</p>



<ul class="wp-block-list">
<li><strong>Micro‑sprints:</strong> fifteen‑minute weekly checkpoints to unblock decisions fast.</li>



<li><strong>One‑page runbooks:</strong> enough guidance to get anyone productive, without a wall of text.</li>



<li><strong>“Prove it’s live” checks:</strong> lightweight verification steps built into our deployment flow.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Owning the Plumbing: Pipelines, Permissions, and Environment Boundaries</h3>



<p class="wp-block-paragraph">Shipping more forced me to become a student of the <strong>plumbing</strong>—credentials, pipelines, environments, and deployment rights. When automation faltered, I documented a clear <strong>manual path to production</strong> with artefact verification and rollback notes.<br>I also nudged us toward <strong>true test vs. production separation</strong>, tightened access, and wrote down the things future‑me would otherwise forget. Unsexy work, essential outcomes.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Raising the Floor: Security, Compliance, and Clarity</h3>



<p class="wp-block-paragraph">Trust isn’t a feature you bolt on—it’s a <strong>minimum standard</strong> you live by.<br>This year I helped translate policy into practice: tightening recording rules for sessions, clarifying what AI tools are appropriate in meetings, and setting sensible defaults that make safe behaviour the <strong>path of least resistance</strong>.<br>I learned to treat security as an experience challenge: <strong>make the right thing obvious, quick, and documented.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Listening More: Field Signals, Release Notes, and Community Threads</h3>



<p class="wp-block-paragraph">A big part of my growth was learning to <strong>listen for signal</strong>—especially from upgrade notes and practitioner conversations. Those discussions surfaced tiny changes in behaviour that could become big friction later.<br>By folding that feedback into our defaults and help text, we prevented issues from turning into tickets. Quiet wins are still wins.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">What Changed in Me</h3>



<ul class="wp-block-list">
<li><strong>From fixes to systems:</strong> I stopped “hero‑patching” and started designing <strong>repeatable ways</strong> to prevent the same issues.</li>



<li><strong>From shipping to safeguarding:</strong> I now see deployments as both delivery <em>and</em> defence—<strong>verify, limit blast radius, document.</strong></li>



<li><strong>From speaking to listening:</strong> Feedback isn’t noise; it’s an early warning system if you’re humble enough to hear it.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">The Quiet Wins I’m Proud Of</h3>



<ul class="wp-block-list">
<li>A deployment playbook that works even when automation doesn’t—<strong>with verification built in</strong>.</li>



<li>Extensions that reduce friction and feel intuitive—<strong>less clicking, clearer states, better audit trails</strong>.</li>



<li>Policies translated into practical steps—<strong>not just rules, but workflows anyone can follow</strong>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Looking Ahead to 2026</h3>



<p class="wp-block-paragraph">Next year is about <strong>consistency at scale</strong>: fully automated pipelines, cleaner environment boundaries, and guardrails that make secure, compliant delivery the default. My personal goal is to spend more time <strong>coaching and documenting</strong>, so the team can move faster with fewer surprises.</p>



<p class="wp-block-paragraph">Thanks for reading—and for being part of the change. If this year taught me anything, it’s that growth isn’t about doing more; it’s about <strong>doing the right things, repeatedly, together</strong>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">705</post-id>	</item>
		<item>
		<title>2021-2022 &#8211; What happened?</title>
		<link>https://www.wardnet.co.uk/2021-2022-what-happened/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Fri, 30 Dec 2022 10:54:17 +0000</pubDate>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[day job]]></category>
		<category><![CDATA[update]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=676</guid>

					<description><![CDATA[The last time I blogged on here was to see out the Covid-ridden 2020 and see in 2021, I then forgot to blog for 2 years. Sorry about that. 2021 was more of the same, focus on work and home life balance, getting used to permanent work from home and was overall a pretty quiet [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The last time I blogged on here was to see out the Covid-ridden 2020 and see in 2021, I then forgot to blog for 2 years. Sorry about that. <br><br>2021 was more of the same, focus on work and home life balance, getting used to permanent work from home and was overall a pretty quiet year. 2022 then saw some changes, some adaptations to be made on a personal and professional level, some losses, and some gains. There was emotional turmoil and a big bang to end when finally everyone got together to share stories, and ideas and generate optimism for the future. Some 2021/2022 items made it to my personal blog at <a href="https://johnnyward.me.uk" target="_blank" rel="noreferrer noopener">https://johnnyward.me.uk</a> for those interested!<br><br>So what comes next&#8230;<br><br>Well, 2023 will be a big year, watch this space.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">676</post-id>	</item>
		<item>
		<title>2021 here we come</title>
		<link>https://www.wardnet.co.uk/2021-here-we-come/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Fri, 20 Nov 2020 12:24:38 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[2020]]></category>
		<category><![CDATA[2021]]></category>
		<category><![CDATA[Coronavirus]]></category>
		<category><![CDATA[Covid-19]]></category>
		<category><![CDATA[hope]]></category>
		<category><![CDATA[Western World]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=634</guid>

					<description><![CDATA[For this planet we call Earth, 2020 has been somewhat of an &#8220;odd&#8221; year. Not just because in November 2019 a new coronavirus was discovered with extremely rapid spreading capabilities and lethal tendencies, not just because everyone you know, knows someone who lost someone, and not just because the political turmoil around the world (especially [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For this planet we call Earth, 2020 has been somewhat of an &#8220;odd&#8221; year. Not just because in November 2019 a new coronavirus was discovered with extremely rapid spreading capabilities and lethal tendencies, not just because everyone you know, knows someone who lost someone, and not just because the political turmoil around the world (especially the &#8220;Western World&#8221;) takes us into 2021 with a level of apprehension many of us cannot comprehend. 2020 sucks, that&#8217;s a fact, for 90-something-percent of us. However, even at the end of the darkest tunnels, there is light, even if it&#8217;s just the flicker of a candle, there is light at the end of the tunnel, for all of us.</p>



<p class="wp-block-paragraph">Everyone knows the negatives of 2020, I won&#8217;t list them, there are many. However, we, as a human race, tend to focus on the negatives too much, so I will list some positives to think about as we head towards 2021. Pandora&#8217;s box has opened, now it&#8217;s time to find the glimmer of hope.</p>



<p class="wp-block-paragraph">2020 saw achievements by many, some of these were driven by need and necessity, others were years in the making. And, whilst the year as a whole may have taken the shine off them, we should celebrate them.</p>



<ul class="wp-block-list"><li>We sent people into space, on a reusable rocket and capsule.  &#8211; <a href="https://www.youtube.com/watch?v=E_FIaPBOJgc" target="_blank" rel="noreferrer noopener">https://www.youtube.com/watch?v=E_FIaPBOJgc</a></li><li>Scientists worked at incredible rates to work on a vaccine for Covid-19, resulting (at this point in time) in at least 3 or 4 viable vaccines that could be available to the public before the year ends. &#8211; <a href="https://www.wired.co.uk/article/coronavirus-vaccines" target="_blank" rel="noreferrer noopener">https://www.wired.co.uk/article/coronavirus-vaccines</a></li><li>Innovation and the ability to adapt has meant that whilst some companies folded, and many individuals have sadly lost their jobs or been furloughed, some companies were smart enough to rise to the challenge. Digital Transformation strategies and utilisation of technology have helped lots of companies overcome the challenge, in some cases increase their output, or in other cases adapt their products and services to meet new demands. In the UK, for example, we had many manufacturing companies come together to use their dormant machinery to make ventilators, PPE, girders for temporary hospitals, etc. </li><li>We are still here. The planet hasn&#8217;t been totally destroyed, and whilst our mental health teeters on the edge, many of us have found a new appreciation for those around us whilst learning new techniques and behaviours for getting through the day, week, month, and year. It is these new found skills and attitudes to life that will see us in good stead for the years ahead, whether the next event is closer to home, or on a global scale.</li></ul>



<p class="wp-block-paragraph">Ok, so not going to lie, I struggled to find enough positive stories from this year, but those above are the ones I believe in, the ones that have peaked my interests and allowed me to have some positive vibes to get through. </p>



<p class="wp-block-paragraph">On a personal/career level, 2020 was supposed to be a year of self-discovery and development. Starting a new role in October 2019 with a brand new remit and direction was incredibly scary, but a challenge I relished. Fortunately, that role survived the turmoil around Covid-19 and I&#8217;m still here to tell many tales. I have been able to upskill, adding to my &#8220;jack of all trades&#8221; mantra that sees me now capable of some very interesting and potentially dangerous things, as well as embedding myself into a well established and very experienced team, relatively seamlessly. 2021 will see me continue in this role, with the same people and adding various activities along the way. I am glad for this consistency in my work life as the world around us continues to be so unpredictable.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">634</post-id>	</item>
		<item>
		<title>The Future is Bright&#8230;</title>
		<link>https://www.wardnet.co.uk/the-future-is-bright/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Sun, 06 Sep 2020 19:26:24 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Epicor]]></category>
		<category><![CDATA[Acquisition]]></category>
		<category><![CDATA[Epicor Software Corporation]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=628</guid>

					<description><![CDATA[When news breaks of a large tech company sale, in the midst of a global pandemic, people will sit up and take note. It&#8217;s fair to say this one is huge news, and the future is indeed very bright. https://www.epicor.com/en-uk/press-room/news-releases/clayton-dubilier-rice-to-acquire-epicor-software-corporation-from-kkr/ On a personal note this will be the 4th acquisition/takeover/purchase of a company I work [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When news breaks of a large tech company sale, in the midst of a global pandemic, people will sit up and take note. It&#8217;s fair to say this one is huge news, and the future is indeed very bright.</p>



<p class="wp-block-paragraph"><a href="https://www.epicor.com/en-uk/press-room/news-releases/clayton-dubilier-rice-to-acquire-epicor-software-corporation-from-kkr/">https://www.epicor.com/en-uk/press-room/news-releases/clayton-dubilier-rice-to-acquire-epicor-software-corporation-from-kkr/</a></p>



<p class="wp-block-paragraph">On a personal note this will be the 4th acquisition/takeover/purchase of a company I work for in 5 years, see previous posts for notes on those!</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">628</post-id>	</item>
		<item>
		<title>5 Useful SendGrid Tips</title>
		<link>https://www.wardnet.co.uk/5-useful-sendgrid-tips/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Sat, 09 May 2020 14:59:24 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[SendGrid]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=607</guid>

					<description><![CDATA[I recently started working on a concept of a message list subscription service, to be integrated directly into new product features so that people can add themselves to the list to receive information of updates on specific features. This led me down the path of using Azure Storage and SendGrid, building 2 raw prototype apps [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I recently started working on a concept of a message list subscription service, to be integrated directly into new product features so that people can add themselves to the list to receive information of updates on specific features. This led me down the path of using Azure Storage and SendGrid, building 2 raw prototype apps (in WinForms at this early stage) to achieve both the subscription and the sending out of data to the subscribers. Writing this on.NetFramework 4.8 with C# in a fairly native way has given me a great way to investigate and utilise the SendGrid platform to send emails to multiple subscribers. </p>



<p class="wp-block-paragraph">I wanted to share my findings, rather than my code at this stage, and here are my Top 5 SendGrid tips:</p>



<ol class="wp-block-list"><li>Do review Microsoft&#8217;s guide on how to get started with SendGrid via Azure, this simple article gives you a great base on how to set up the back-end and start writing C# around it: <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/azure/sendgrid-dotnet-how-to-send-email" target="_blank">https://docs.microsoft.com/en-us/azure/sendgrid-dotnet-how-to-send-email</a></li><li>Use Unsubscribe groups &#8211; these allow you to stay within GDPR in Europe, appending an Unsubscribe and Manage Preferences link to the bottom of the emails that are sent. i.e. </li></ol>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" decoding="async" width="332" height="47" data-attachment-id="608" data-permalink="https://www.wardnet.co.uk/5-useful-sendgrid-tips/image/" data-orig-file="https://i0.wp.com/www.wardnet.co.uk/wp-content/uploads/2020/05/image.png?fit=332%2C47&amp;ssl=1" data-orig-size="332,47" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/www.wardnet.co.uk/wp-content/uploads/2020/05/image.png?fit=332%2C47&amp;ssl=1" src="https://i0.wp.com/www.wardnet.co.uk/wp-content/uploads/2020/05/image.png?resize=332%2C47&#038;ssl=1" alt="" class="wp-image-608" srcset="https://i0.wp.com/www.wardnet.co.uk/wp-content/uploads/2020/05/image.png?w=332&amp;ssl=1 332w, https://i0.wp.com/www.wardnet.co.uk/wp-content/uploads/2020/05/image.png?resize=300%2C42&amp;ssl=1 300w" sizes="(max-width: 332px) 100vw, 332px" /><figcaption>Unsubscribe preferences from SendGrid</figcaption></figure></div>



<ol class="wp-block-list" start="3"><li>Write both plain text and HTML content for your email, I ended up creating an HTML builder so I could convert Email addresses to <code><code data-enlighter-language="html" class="EnlighterJSRAW">&lt;a href="mailto:EmailAddress"></code></code> and any HTTP(s):// links to <code><code data-enlighter-language="html" class="EnlighterJSRAW">&lt;a href:"http://link"></code></code> this was a great experiment with regular expressions. Note, I found that not all Email clients auto-convert, e.g. Outlook will convert an Email address but not a URL. I was creating my body text in a Rich Text Box, so it was just one big string!</li><li>Look into Personalisations (<a href="https://sendgrid.com/docs/for-developers/sending-email/personalizations/" target="_blank" rel="noreferrer noopener">https://sendgrid.com/docs/for-developers/sending-email/personalizations/</a>) these are crucial if you want to customise your output (the emails themselves). I created variables to use in subject and body lines so I could pass in <code><code data-enlighter-language="csharp" class="EnlighterJSRAW">{customer}</code></code> and<code> </code><code data-enlighter-language="csharp" class="EnlighterJSRAW">{product}</code>. SendGrid has a substitution capability which comes as part of personalisation. I&#8217;ll share a snippet of code here, as I found a solution on StackOverflow (<a href="https://stackoverflow.com/a/53292550" target="_blank" rel="noreferrer noopener">https://stackoverflow.com/a/53292550</a>) but it needed a slight tweak, changing the <code><code data-enlighter-language="csharp" class="EnlighterJSRAW">Tos.Add</code></code> to a <code><code data-enlighter-language="csharp" class="EnlighterJSRAW">msg.AddTo</code></code> as the To: Email address needs to be a part of the personalisation, I wasn&#8217;t sure if this was to do with API changes or not! Another tip, if you want the subject to be the same, without substitutions you can use the <code><code data-enlighter-language="csharp" class="EnlighterJSRAW">SetGlobalSubject</code></code> method</li></ol>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<pre class="wp-block-code"><code lang="csharp" class="language-csharp line-numbers"><code data-enlighter-language="csharp" class="EnlighterJSRAW">var personalizationIndex = 0;
                foreach (var subscriber in subscriberEntities)
                {
                    msg.AddTo(new EmailAddress(subscriber.RowKey, subscriber.Name), personalizationIndex);
                    msg.AddSubstitution("{product}", product.Description, personalizationIndex);
                    msg.AddSubstitution("{customer}", subscriber.Name, personalizationIndex);
                    personalizationIndex++;
                    
                }</code></code></pre>



<p class="wp-block-paragraph"></p>
</div>
</div>
</div></div>
</div>
</div>
</div>
</div>



<ol class="wp-block-list" start="5"><li>Create a test email method, that uses the same logic as your core one, but only sends to one email address. You don&#8217;t want to be sending bulk emails out without checking them first!</li></ol>



<p class="wp-block-paragraph">I hope this new style of thread has been an interesting read, I hope to do more very soon!</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">607</post-id>	</item>
		<item>
		<title>Q1 FY20 Part 2</title>
		<link>https://www.wardnet.co.uk/q1-fy20-part-2/</link>
		
		<dc:creator><![CDATA[Jonathan Ward]]></dc:creator>
		<pubDate>Sat, 28 Dec 2019 12:07:32 +0000</pubDate>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[project]]></category>
		<guid isPermaLink="false">https://www.wardnet.co.uk/?p=596</guid>

					<description><![CDATA[Welcome to Part 2 of the end of year summary on the career side of things. 2019 ended on a high at work, and the previous post (here) started looking at the new job role and my initial project of migrating systems between domains. This project was effectively a merge of all my previous skills [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Welcome to Part 2 of the end of year summary on the career side of things. 2019 ended on a high at work, and the previous post <a href="https://www.wardnet.co.uk/q1-fy20-part-1/">(here)</a> started looking at the new job role and my initial project of migrating systems between domains. This project was effectively a merge of all my previous skills and a way to develop my new skillset required to take the role forwards into 2020 and beyond.</p>



<p class="wp-block-paragraph">It was mentioned in part one that the infrastructure project effectively became a DevOps implementation project, and I&#8217;ll try to delve into the bits I can discuss in this post. Firstly there&#8217;s the inheritance; over 300 environments, many with specific mods for specific customers, and the remaining with what we call &#8220;Extended Solutions&#8221; &#8211; productized mods effectively. Then there was all the code itself, fortunately, the existing dev team has a fantastic grasp of the deep dark secrets of Git and I have enough of a basic understanding to pick up where others left off, but then, something new to myself came out, and that was the builds of the code. Debug or Release, MSBuild versions, semantic versioning, Git Flow&#8230; you get the idea. All very complicated to me at the time, but now it&#8217;s in my veins!</p>



<p class="wp-block-paragraph">Previously the team used an old, unsupported, broken version of Jenkins to build their code, with definitions for each Git Branch, some with bat files, some hardcoded in the Jenkins config screen, basically a mess, and different rules for different people. Well, I like to standardize, so we scrapped the old, and brought in the new. Cue the amazing concept that is Continuous Integration. Having some basic experience with this in Azure DevOps (<a href="https://www.wardnet.co.uk/code/">remember this post?</a>) the concept was not new, however, implementing with Jenkins was a new experience. I managed to inherit a new blank Jenkins server, but first thing I did was reverse proxy via IIS and get it secured with an internal SSL certificate, as well as connect up to the Corporate Active Directory and restrict to our team only, then we got a service account from Corp IT and locked the server down, only myself and Domain Admins can get into the back end, and now we have a secured build server. Why so secure when it&#8217;s all internal? Well, that&#8217;s because the CTO office allowed us to have the corporate digital cert for code signing so long as it only existed in one, locked-down place. We can call it via the Jenkins application side but not extract, manipulate or otherwise interact with it. With this new updated (and updateable) Jenkins server, plus a couple of useful plugins (<a href="https://jenkins.io/projects/blueocean/">Blue Ocean</a> is a must) we have a fantastic platform to manage and analyze our build process. The main feature we are utilizing is the Multibranch Pipelines via Jenkinsfile. This Jenkinsfile is written in groovy and is basically a set of instructions that define a build, for example, we can say build this solution, sign using that certificate and publish the artifacts so we can download afterward. The huge advantage for us is because we build a solution for multiple ERP versions, we can have up to 8 exes output at the end, and we now have one screen to grab them from, regardless of what Git branch we built for. On the subject of Git branches, due to the multibranch pipeline functionality, once our Jenkinsfile is pulled into Master, it will then filter down to all subsequent branches, and with this feature enabled, Jenkins will detect any new branches that were pushed back to the origin with that Jenkinsfile includes. I&#8217;ve previously written about VS Code and all the wondrous things it does, but we also discovered a Jenkinsfile checker in the form of <a href="https://marketplace.visualstudio.com/items?itemName=janjoerke.jenkins-pipeline-linter-connector">https://marketplace.visualstudio.com/items?itemName=janjoerke.jenkins-pipeline-linter-connector</a>. This tool allows us to check syntax, against our own Jenkins server and therefore ensures an accurate rule definition every time we adjust a build. It&#8217;s time-savers like these that have boosted the team&#8217;s productivity significantly, I recently <a href="https://twitter.com/jaward916/status/1199670272858701824">tweeted</a> about this improvement, as I took hold of an existing codebase and fully integrated it into our new philosophy within an hour or so!</p>



<p class="wp-block-paragraph">A large part of the battle has been documenting the configuration and the overall process as well as educating colleagues (primarily developers) about how we are using these concepts and tools. I&#8217;ve found the majority of developers know the concepts and will have their own experiences with Git and CI/CD but until you document what the process should be in the exact circumstances, they don&#8217;t necessarily see the advantages or understand just how powerful these changes are, and more importantly how it improves consistency and productivity across the team. The improvements are already showing for us, and I fully expect that to continue!</p>



<p class="wp-block-paragraph">Some reference material for a few of the things discussed in the post above:</p>



<ul class="wp-block-list"><li><a href="https://jenkins.io/doc/book/pipeline/multibranch/">Jenkins Multibranch pipelines</a></li><li><a href="https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+IIS">Jenkins behind IIS Reverse Proxy</a></li><li><a href="https://www.c-sharpcorner.com/article/continuous-integration-for-net-projects-with-jenkins/">Jenkins CI for .Net </a></li><li><a href="https://blog.dangl.me/archive/basic-jenkins-configuration-for-dotnet-continuous-integration/">Basic Jenkins for .Net CI</a></li><li><a href="https://git-scm.com/about">Git Intro</a></li><li><a href="https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow">Git Flow</a></li><li><a href="https://www.atlassian.com/software/bitbucket/download">Bitbucket Server</a> (incumbent Git server)</li><li><a href="https://sourcetreeapp.com/?v=win">Sourcetree </a>(preferred Git UI tool)</li><li><a href="https://git-fork.com/">Fork </a>(alternate Git UI tool)</li></ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">596</post-id>	</item>
	</channel>
</rss>
