﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Blyth's Blog - Andy Blyth - Technical Dogsbody</title><link>https://www.technicaldogsbody.com/blog</link><description>Blog posts about this and that, mainly focused on C#, web development, cms development, etc...</description><language>en-gb</language><a10:link rel="self" type="application/rss+xml" href="https://www.technicaldogsbody.com/rss" /><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/optimizely-opal-burning-carbon-it-doesnt-need-to</guid><link>https://www.technicaldogsbody.com/blog/optimizely-opal-burning-carbon-it-doesnt-need-to</link><category>Development</category><category>white paper</category><category>optimizely</category><category>optimizely opal</category><category>ai</category><category>low carbon</category><title>Your Optimizely Opal Is Probably Burning Carbon It Doesn't Need To</title><description>Four patterns Optimizely practitioners could be getting wrong with Opal agents: inference levels, oversized tool responses, missing output constraints, and no agent response caching.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/when-to-choose-a-lightweight-mediator</guid><link>https://www.technicaldogsbody.com/blog/when-to-choose-a-lightweight-mediator</link><category>Development</category><category>.net</category><category>micromediator</category><category>mediatr</category><category>performance</category><category>cqrs</category><category>benchmarks</category><category>c#</category><title>When to Choose a Lightweight Mediator</title><description>MicroMediator vs MediatR: real benchmark data across dispatch, memory, throughput, and cold start to help you choose the right tool for your workload.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/streaming-large-datasets-with-iasyncenumerable-in-micromediator</guid><link>https://www.technicaldogsbody.com/blog/streaming-large-datasets-with-iasyncenumerable-in-micromediator</link><category>Development</category><category>.net</category><category>micromediator</category><category>iasyncenumerable</category><category>streaming</category><category>performance</category><category>c#</category><category>cqrs</category><title>Streaming Large Datasets with IAsyncEnumerable in MicroMediator</title><description>Streaming is not always faster. Learn when IAsyncEnumerable saves memory, when it costs you, and what early exit looks like at 1,000,000 items.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/cms-implementations-changes-for-geo-and-aeo</guid><link>https://www.technicaldogsbody.com/blog/cms-implementations-changes-for-geo-and-aeo</link><category>Development</category><category>ai</category><category>aeo</category><category>geo</category><category>cms</category><category>optimizely</category><category>contentful</category><title>How CMS Implementations Need to Change for GEO and AEO</title><description>Search is changing. AI systems are increasingly the first point of contact between your content and your audience, and they don't behave like traditional search crawlers. If your CMS implementation was built purely with SEO in mind, it probably isn't ready for what's coming.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/handler-lifetimes-in-micromediator</guid><link>https://www.technicaldogsbody.com/blog/handler-lifetimes-in-micromediator</link><category>Development</category><category>.net</category><category>micromediator</category><category>dependency injection</category><category>cqrs</category><category>performance</category><category>c#</category><title>Handler Lifetimes in MicroMediator: Why Your Choice Matters</title><description>MicroMediator makes handler lifetime explicit. Learn when to use Singleton, Scoped, or Transient and what the real performance difference looks like.
</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/introducing-micromediator-a-lightweight-high-performance-mediator-for-net</guid><link>https://www.technicaldogsbody.com/blog/introducing-micromediator-a-lightweight-high-performance-mediator-for-net</link><category>Development</category><category>mediator</category><category>mediator pattern</category><category>optimizely</category><category>software architecture</category><category>clean architecture</category><category>nuget</category><title>Introducing MicroMediator: A Lightweight High-Performance Mediator for .NET</title><description>A lightweight, high-performance mediator pattern library for .NET. Learn why MicroMediator exists, how it compares, and how it fits cleanly into many projects, including Optimizely CMS builds.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/looking-back-at-optimizely-in-2025</guid><link>https://www.technicaldogsbody.com/blog/looking-back-at-optimizely-in-2025</link><category>Development</category><category>optimizely</category><category>cms</category><category>opal</category><title>Looking back at Optimizely in 2025</title><description>Explore Optimizely's architectural shift in 2025, which removed coordination cost through a unified execution loop. Learn how agentic Opal AI and integrated data systems drive learning velocity for developers and marketing teams.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/building-faster-feedback-loops-with-opal-two-hackathon-projects</guid><link>https://www.technicaldogsbody.com/blog/building-faster-feedback-loops-with-opal-two-hackathon-projects</link><category>Development</category><category>optimizely</category><category>optimizely opal</category><category>ai</category><category>opal ai</category><category>opal tool</category><title>Building Faster Feedback Loops with Opal: Two Hackathon Projects</title><description>Two Opal Hackathon projects explored how to bridge data and action. Using the Optimizely.Opal.Tools SDK, we extended Opal with new tools, showing how it acts as an enablement layer for developers and marketers.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/open-optimizely-cms-in-a-new-tab-instantly</guid><link>https://www.technicaldogsbody.com/blog/open-optimizely-cms-in-a-new-tab-instantly</link><category>Development</category><category>chrome extension</category><category>optimizely</category><category>episerver</category><category>cms</category><category>editor interface</category><title>Open Optimizely CMS in a New Tab – Instantly</title><description>Speed up your Optimizely CMS workflow with this free Chrome Extension. Instantly open the live view of the page you're editing – no right click, open in new tab, no faff.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/using-optimizely-opals-instructions</guid><link>https://www.technicaldogsbody.com/blog/using-optimizely-opals-instructions</link><category>Development</category><category>optimizely</category><category>optimizely opal</category><category>ai content generation</category><category>instruction agents</category><category>prompt engineering</category><category>agentic ai</category><category>behaviour engineering</category><title>From Agentic Theory to Practicality: Using Optimizely Opal’s Instructions Feature</title><description>A practical look at Optimizely Opal’s Instructions feature — from built-in agents to creating and managing custom instruction workflows. Ideal for teams scaling AI-powered content with structure and intent.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blogs/the-fragment-conundrum</guid><link>https://www.technicaldogsbody.com/blogs/the-fragment-conundrum</link><category>Development</category><category>optimizely saas</category><category>graphql</category><category>backend-for-frontend (bff)</category><category>visual builder</category><category>headless cms</category><category>content management</category><category>digital experience platforms (dxp)</category><category>optimizely</category><title>The Fragment Conundrum</title><description>Explore the challenges and opportunities of working with Optimizely SaaS, GraphQL fragments, and headless CMS architectures. Learn practical solutions with .NET BFF APIs, GraphQL.NET, and modular content strategies for modern front-end frameworks.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/optimizely-ai-agents-agentic-future</guid><link>https://www.technicaldogsbody.com/blog/optimizely-ai-agents-agentic-future</link><category>Development</category><category>optimizely</category><category>ai agents</category><category>agentic ai</category><category>artificial intelligence</category><category>technical architecture</category><category>digital transformation</category><category>automation</category><category>technology strategy</category><title>Leveraging Optimizely’s AI Agents: Embracing the Agentic Future</title><description>Discover how Optimizely’s AI Agents leverage agentic AI to autonomously execute complex tasks, enhancing digital workflows and driving innovation for technical leaders.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/adding-geolocation-personalisation-to-optimizely-cms-with-cloudflare</guid><link>https://www.technicaldogsbody.com/blog/adding-geolocation-personalisation-to-optimizely-cms-with-cloudflare</link><category>Development</category><category>optimizely</category><category>optimizely visitor groups</category><category>personalisation</category><title>Adding Geolocation Personalisation to Optimizely CMS with Cloudflare</title><description>Enhance your Optimizely CMS personalisation by integrating Cloudflare's geolocation headers. Learn how my Cloudflare Geo-location Criteria package simplifies visitor group targeting.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/interim-optimizely-saas-cms-dam-picker</guid><link>https://www.technicaldogsbody.com/blog/interim-optimizely-saas-cms-dam-picker</link><category>Development</category><category>optimizely</category><category>optimizely cms</category><category>optimizely saas cms</category><category>optimizely dam</category><category>chrome extension</category><title>Optimizely SaaS CMS DAM Picker (Interim)</title><description>Simplify your Optimizely SaaS CMS workflow with the Interim DAM Picker Chrome extension. Seamlessly integrate your DAM system, streamlining asset selection and insertion. Enhance content creation efficiency and ensure brand consistency. Try it today!</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/optimizely-cms-roadmap</guid><link>https://www.technicaldogsbody.com/blog/optimizely-cms-roadmap</link><category>Development</category><category>optimizely</category><category>roadmap</category><category>cms</category><category>visual builder</category><title>Optimizely CMS Roadmap</title><description>Explore Optimizely CMS's latest roadmap, packed with developer-focused updates. From SaaS speed to Visual Builder enhancements, developer tooling upgrades, and Graph-first architecture in CMS 13, see how these innovations empower modern content delivery.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/andy-blyth-becomes-optimizely-omvp</guid><link>https://www.technicaldogsbody.com/blog/andy-blyth-becomes-optimizely-omvp</link><category>Work</category><category>optimizely</category><category>omvp</category><title>Joining the Optimizely MVP Program</title><description>Andy Blyth has been honoured as an Optimizely MVP, recognising his contributions to the Optimizely community. Learn how this achievement will enhance 26 DX’s ability to deliver cutting-edge digital solutions.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/optimizely-release-saas-cms</guid><link>https://www.technicaldogsbody.com/blog/optimizely-release-saas-cms</link><category>Development</category><category>optimizely</category><category>cms</category><category>saas</category><title>Optimizely release SaaS CMS</title><description>Discover the future of content management with Optimizely SaaS CMS. Enjoy seamless updates, reduced costs, and enhanced flexibility for developers and business practitioners. Boost your digital strategy with enterprise-grade security and an improved editorial experience. Learn more about Optimizely's innovative CMS solution today.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/is-optimizely-cms-paas-the-preferred-choice</guid><link>https://www.technicaldogsbody.com/blog/is-optimizely-cms-paas-the-preferred-choice</link><category>Development</category><category>optimizely</category><category>paas</category><category>saas</category><category>cms selection</category><title>Is Optimizely CMS PaaS the Preferred Choice?</title><description>As always, it depends. With it's comprehensive and proven support for complex business needs across various deployment scenarios, it fits very well to enterprise needs. And you should always choose based on your needs, not on hype or buzzwords. If you know you are going to need a back-end-for-frontend layer, or your own custom APIs, you can do this with PaaS without having to involve yet another tech vendor. If you have this already, or require a completely segregated services approach, mixing...</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/why-c-developers-should-embrace-node-js</guid><link>https://www.technicaldogsbody.com/blog/why-c-developers-should-embrace-node-js</link><category>Development</category><category>nodejs</category><category>optimizely</category><category>c#</category><category>saas</category><category>paas</category><title>Why C# Developers Should Embrace Node.js</title><description>Explore why C# developers should embrace Node.js especially with Optimizely's SaaS CMS on the horizon. Understand the shift towards agile web development and how mastering Node.js can open up new opportunities in the evolving digital landscape.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/embarking-on-a-new-chapter</guid><link>https://www.technicaldogsbody.com/blog/embarking-on-a-new-chapter</link><category>Work</category><category>dept®</category><category>26</category><category>career</category><category>new job</category><title>Embarking on a New Chapter: Andy's Journey to 26</title><description>Join me as I transition from DEPT® to a new role as Technical Architect at 26, celebrating an 8-year journey of growth and looking forward to innovative challenges ahead.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/mastering-the-7-second-rule-in-collaborative-problem-solving</guid><link>https://www.technicaldogsbody.com/blog/mastering-the-7-second-rule-in-collaborative-problem-solving</link><category>Work</category><category>leadership</category><category>management</category><title>Mastering the 7-Second Rule in Collaborative Problem-Solving</title><description>Explore the 7-second rule's transformative impact on group discussions and brainstorming sessions in digital agencies, promoting inclusivity, creativity, and thoughtful participation.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/the-iron-triangle-a-developers-guide-to-navigating-constraints</guid><link>https://www.technicaldogsbody.com/blog/the-iron-triangle-a-developers-guide-to-navigating-constraints</link><category>Work</category><category>project management</category><title>The Iron Triangle: A Developer's Guide to Navigating Constraints</title><description>In the world of software development, the Iron Triangle (also known as the Project Management Triangle) serves as a visual metaphor to understand the constraints of project management: scope, time, and cost. For developers, working within these constraints can often feel like trying to solve a puzzle where every piece affects the others.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/mastering-the-four-ds-in-a-digital-agency</guid><link>https://www.technicaldogsbody.com/blog/mastering-the-four-ds-in-a-digital-agency</link><category>Work</category><category>time management</category><category>digital agency</category><category>development</category><category>prioritisation</category><title>The Developer's Guide to Time Management: Mastering the "Four Ds" in a Digital Agency</title><description>Discover the power of the 'Four Ds' of time management — Do, Delegate, Defer, Delete — tailored for developers at all levels in digital agencies. From junior coders to senior architects, learn how to enhance productivity, streamline projects, and foster team collaboration for maximum efficiency and innovation at a digital agency.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/setting-up-optimizely-on-aspire-a-developers-walkthrough</guid><link>https://www.technicaldogsbody.com/blog/setting-up-optimizely-on-aspire-a-developers-walkthrough</link><category>Development</category><category>optimizely</category><category>dotnet</category><category>dotnet aspire</category><category>c#</category><title>Setting Up Optimizely on Aspire: A Developer's Walkthrough</title><description>Explore the step-by-step guide to setting up Optimizely with dotnet aspire and C# 8.0, tailored for developers seeking to enhance their digital projects. Dive into my comprehensive walkthrough on the Optimizely Aspire GitHub repository.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/computer-science-education</guid><link>https://www.technicaldogsbody.com/blog/computer-science-education</link><category>Family</category><category>computer science</category><category>education</category><category>python</category><title>Bridging the Gap in Computer Science Education: Teaching My Son Python</title><description>Explore how I'm helping my son learn Python to bridge the gap in computer science education. As the head of .NET development at DEPT® and a concerned parent, I understand the importance of equipping our children with essential skills for the future. Join me on this journey to empower the next generation with programming fundamentals, problem-solving abilities, and a growth mindset. Together, we can ensure they thrive in a technology-driven world.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/unlocking-your-potential-my-tips-on-how-developers-can-become-the-best-they</guid><link>https://www.technicaldogsbody.com/blog/unlocking-your-potential-my-tips-on-how-developers-can-become-the-best-they</link><category>Work</category><category>self improvement</category><category>development</category><category>personal development</category><title>Unlocking Your Potential: My Tips on How Developers Can Become the Best They Can Be</title><description>As the head of development at DEPT®, I've seen firsthand that being a great developer means more than just writing clean and efficient code. To truly excel in this field, you must adopt a mindset of continuous improvement, be open to learning new skills and technologies, and develop a deep understanding of the underlying infrastructure and engineering aspects. In this blog post, I will share some key strategies that have helped my team and me unlock our full potential and become the best...</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/my-journey-to-sandan-reflections-on-passing-my-3rd-dan-grading-in-japanese</guid><link>https://www.technicaldogsbody.com/blog/my-journey-to-sandan-reflections-on-passing-my-3rd-dan-grading-in-japanese</link><category>Martial Arts</category><category>sandan</category><category>3rd dan</category><category>jiu-jitsu</category><category>martial arts</category><title>My Journey to Sandan: Reflections on Passing my 3rd Dan Grading in Japanese Jiu-Jitsu</title><description>I recently passed my Sandan (3rd Dan) grading in Japanese Jiu-Jitsu, and it was an experience I will never forget. The journey to this point has been a long and challenging one, filled with ups and downs, but ultimately, it was a moment of triumph that made all the hard work and dedication worthwhile. In this blog post, I want to share my reflections on the journey to Sandan, and what it took to achieve this significant milestone in my martial arts journey.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/why-martial-arts-can-make-you-a-better-software-developer</guid><link>https://www.technicaldogsbody.com/blog/why-martial-arts-can-make-you-a-better-software-developer</link><category>Martial Arts</category><category>martial arts</category><category>software development</category><title>Why Martial Arts Can Make You a Better Software Developer</title><description>As a software developer, you're always looking for ways to improve your skills, stay focused, and maintain a healthy work-life balance. But have you ever considered the benefits of practicing martial arts? From physical fitness and mental toughness to stress relief and self-defense, martial arts training can provide numerous benefits that can help you become a better software developer. In this post, we'll explore some of the top reasons why martial arts can benefit software developers, and how ...</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/why-every-web-developer-should-have-k6-installed</guid><link>https://www.technicaldogsbody.com/blog/why-every-web-developer-should-have-k6-installed</link><category>Development</category><category>load testing</category><category>developer tools</category><category>development</category><category>open source</category><title>Why every web developer should have k6 installed</title><description>Discussing the benefits of local load testing, and how k6 can also be used for regression/integration testing </description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/running-optimizely-12-on-a-mac</guid><link>https://www.technicaldogsbody.com/blog/running-optimizely-12-on-a-mac</link><category>Development</category><category>optimizely</category><category>mac</category><category>dotnet</category><category>c#</category><title>Running Optimizely 12 on a Mac</title><description>Now that Optimizely 12 runs on .NET 5 it can be run on a Mac, and with most front enders using Macs, I thought it might be useful to demonstrate the steps on how to get it up and running on a Mac.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/so-what-does-a-technical-architect-do</guid><link>https://www.technicaldogsbody.com/blog/so-what-does-a-technical-architect-do</link><category>Work</category><category>architect</category><category>technical architect</category><title>So what does a Technical Architect do?</title><description>The role of a Technical Architect seems to be on of the more fluid roles in a Digital Agency, each Technical Architect has different skills, and each project has different requirements.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/default-values-in-contentful</guid><link>https://www.technicaldogsbody.com/blog/default-values-in-contentful</link><category>Development</category><category>contentful</category><category>cms</category><title>Default Values in Contentful</title><description>Finally default values have been added as an option in Content Models in the Contentful CMS</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/new-site-for-wife-of-a-geek</guid><link>https://www.technicaldogsbody.com/blog/new-site-for-wife-of-a-geek</link><category>Development</category><category>contentful</category><category>azure cognitive search</category><category>c#</category><category>dotnet</category><category>cms</category><title>New site for Wife of a Geek</title><description>Also built on Contentful and Azure Cognitive Search</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/how-to-open-rich-text-links-in-a-new-tab-in-contentful-net</guid><link>https://www.technicaldogsbody.com/blog/how-to-open-rich-text-links-in-a-new-tab-in-contentful-net</link><category>Development</category><category>contentful</category><category>contentful.net</category><category>c#</category><category>dotnet</category><title>How to open rich text links in a new tab in Contentful.net</title><description>Contentful doesn't have an option to choose a target for links in a rich text field (yet), so for now I assume that external links should be opened in a new tab. This is achieved with an IContentRenderer.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/optimizely-episerver-content-cloud-exam-my-tips</guid><link>https://www.technicaldogsbody.com/blog/optimizely-episerver-content-cloud-exam-my-tips</link><category>Development</category><category>optimizely</category><category>exam prep</category><category>certification</category><category>c#</category><category>dotnet</category><title>Optimizely (Episerver) Content Cloud Exam - My Tips</title><description>After sitting the exam, I thought I would document some of the ways I prepared for the exam, and what I found most useful out of the material.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/optimizely-episerver-content-cloud-certification</guid><link>https://www.technicaldogsbody.com/blog/optimizely-episerver-content-cloud-certification</link><category>Development</category><category>optimizely</category><category>certification</category><category>c#</category><category>dotnet</category><title>Optimizely (Episerver) Content Cloud Certification</title><description>This week I successfully passed my Optimizely (formerly Episerver) Content Cloud certifcation.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/improving-contentful-search-with-azure-cognitive-search</guid><link>https://www.technicaldogsbody.com/blog/improving-contentful-search-with-azure-cognitive-search</link><category>Development</category><category>contentful</category><category>azure</category><category>search</category><category>cognitive</category><category>c#</category><category>dotnet</category><title>Improving Contentful Search with Azure Cognitive Search</title><description>Contentful does have some basic search functionality, but it is quite limited and quite difficult to implement (at least in .net). So leveraging Contentful webhooks I decided to index the data into Azure Cognitive Search service.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/promoted-and-certified</guid><link>https://www.technicaldogsbody.com/blog/promoted-and-certified</link><category>Work</category><category>technical architect</category><category>contentful</category><category>certification</category><category>promotion</category><title>Promoted and Certified</title><description>What a busy week</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/tagging-in-contentful</guid><link>https://www.technicaldogsbody.com/blog/tagging-in-contentful</link><category>Development</category><category>contentful</category><category>taxonomy</category><category>tagging</category><title>Tagging in Contentful</title><description>Contentful have recently introduced tagging, I think this is a really important step forward for the headless CMS. </description></item><item><guid isPermaLink="false">https://www.technicaldogsbody.com/blog/can-you-have-emojis-in-urls-🤔</guid><link>https://www.technicaldogsbody.com/blog/can-you-have-emojis-in-urls-%F0%9F%A4%94</link><category>Development</category><category>web development</category><category>random thoughts</category><title>Can you have emoji's in URLs?</title><description>Can emoji's be used in URLs, page titles and meta data? 🤔😂😂</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/mediator-design-pattern-for-cms-builds</guid><link>https://www.technicaldogsbody.com/blog/mediator-design-pattern-for-cms-builds</link><category>Development</category><category>cms</category><category>contentful</category><category>mediator</category><category>design patterns</category><category>optimizely</category><title>Mediator Design Pattern for CMS builds</title><description>My approach to dynamic CMS content using Mediatr (and Automapper)</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/testable-content-in-episerver</guid><link>https://www.technicaldogsbody.com/blog/testable-content-in-episerver</link><category>Development</category><category>optimizely</category><category>c#</category><category>dotnet</category><title>Generating testable content in Episerver</title><description>A simple episerver project with a couple of basic page types to show how an Initializable Module can be used to generate pages that QA and UAT teams can use during their testing/sign off process.

I have used Bogus and Waffle to generate realistic content, the Faker classes can be found in the business module along with the module.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/go-to-nuget-packages</guid><link>https://www.technicaldogsbody.com/blog/go-to-nuget-packages</link><category>Development</category><category>nuget</category><category>c#</category><category>dotnet</category><title>My go-to nuget packages</title><description>A categorised list of nuget packages that I tend to use in most projects. Covers data access, business logic, and presentation packages.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/episerver-first-thoughts</guid><link>https://www.technicaldogsbody.com/blog/episerver-first-thoughts</link><category>Development</category><category>optimizely</category><category>cms</category><title>Episerver - Initial thoughts</title><description>After primarily working with SDL Tridion for the past 5 years (along with Contentful) and prior to that Umbraco. I have recently started working with Episerver, and I wanted to give my initial thoughts on it.
After starting the training/certification I noticed some really nice features such as the code first approach and InitializableModule.</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/c-9-0-blurring-the-lines</guid><link>https://www.technicaldogsbody.com/blog/c-9-0-blurring-the-lines</link><category>Development</category><category>c#</category><category>functional programming</category><category>dotnet</category><title>C# 9.0 - Blurring the lines between object oriented programming and functional programming</title><description>There are two basic types of programming languages, object-oriented and functional, what happens with these worlds collide?</description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/sitemap-driven-load-test</guid><link>https://www.technicaldogsbody.com/blog/sitemap-driven-load-test</link><category>Development</category><category>load testing</category><category>taurus</category><category>sitemap</category><category>jmeter</category><title>Sitemap Driven Load Test</title><description>A nice script I put together to do load testing based on the contents of a sitemap. </description></item><item><guid isPermaLink="true">https://www.technicaldogsbody.com/blog/sdl-topology-generator</guid><link>https://www.technicaldogsbody.com/blog/sdl-topology-generator</link><category>Development</category><category>sdl</category><category>tridion</category><category>sdl topology manager</category><category>angular</category><title>SDL Topology Generator</title><description>My solution to the writing SDL Web Topology Powershell scripts</description></item></channel></rss>