<!doctype html>
<html lang="en-GB">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="canonical" href="https://thinkersplayground.com/">
  <link rel="alternate" type="application/rss+xml" title="Thinker&#39;s Playground" href="https://thinkersplayground.com/feed.xml">
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;1,8..60,400&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="https://thinkersplayground.com/assets/css/site.css?v=1780926908">

  





<!-- SEO tags -->
<title>Thinker&#39;s Playground | Thinker&#39;s Playground</title>
<meta name="description" content="Personal blog exploring how politics, media, and religion&amp;mdash;culture&amp;mdash;influence individual behaviour and belief">
<meta name="theme-color" content="#2f6f8f">
<meta name="keywords" content="">


  <link rel="next" href="https://thinkersplayground.com/posts/page/2/" />


<!--OG tags-->
<meta property="og:site_name" content="Thinker&#39;s Playground">
<meta property="og:title" content="Thinker&#39;s Playground">
<meta property="og:description" content="Personal blog exploring how politics, media, and religion&amp;mdash;culture&amp;mdash;influence individual behaviour and belief">
<meta property="og:url" content="https://thinkersplayground.com/">


  <meta property="fb:app_id" content="1687080448278429">



  <meta property="og:type" content="website">

<meta property="og:locale" content="en_GB">

<!--Twitter tags-->

  <meta name="twitter:card" content="summary">

<meta name="twitter:site" content="morricegavin">
<meta name="twitter:creator" content="morricegavin">
<meta name="twitter:title" content="Thinker&#39;s Playground">
<meta name="twitter:description" content="Personal blog exploring how politics, media, and religion&amp;mdash;culture&amp;mdash;influence individual behaviour and belief">


  <!-- LDJSON -->

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Thinker&#39;s Playground",
  "url": "https://thinkersplayground.com/",
  "datePublished": "",
  "dateModified": "2026-06-08T13:42:12+00:00",
  "description": "Personal blog exploring how politics, media, and religion&amp;mdash;culture&amp;mdash;influence individual behaviour and belief",
  "author": {
    "@type": "Person",
    "name": ""
  },
  "publisher": {
    "@type": "Organization",
    "name": "Thinker&#39;s Playground",
    "logo": {
      "@type": "ImageObject",
      "url": "https://thinkersplayground.com/assets/images/thinkers-playground-logo-large.jpg"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://thinkersplayground.com/"
  }
}
</script>

  <!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.io/js/pa-NNmKEgmpH7MlipvaOm0-w.js"></script>
<script>
    window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
    plausible.init()
</script>

<script src="https://cdn.amplitude.com/script/d19e4354a3ec97babf45abdb91d670ce.js"></script><script>window.amplitude.add(window.sessionReplay.plugin({sampleRate: 1}));window.amplitude.init('d19e4354a3ec97babf45abdb91d670ce', {"fetchRemoteConfig":true,"autocapture":{"attribution":{"trackingMethod":["userProperty","eventProperty"]},"fileDownloads":true,"formInteractions":true,"pageViews":true,"sessions":true,"elementInteractions":true,"networkTracking":true,"webVitals":true,"frustrationInteractions":{"thrashedCursor":true,"errorClicks":true,"deadClicks":true,"rageClicks":true}}});</script>

</head>
<body class="site-shell">
<a class="site-shell__skip-link" href="#content">Skip to content</a>

<div class="site-shell__frame">
  

  
  <section class="hero" aria-labelledby="hero-title">
    <div class="hero__inner">
      <h1 class="hero__title" id="hero-title">Thinker's Playground</h1>
      <p class="hero__lede">Personal blog exploring how politics, media, technology, and culture influence individual behaviour and belief</p>
      <div class="hero__actions">
        
        
      </div>
    </div>
  </section>
  

  <main class="site-main" id="content">
    
    <div class="page-layout">
      
<div class="post--is-list" data-tags="engineering problem-solving productivity work-life balance mental clarity">
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/my-tip-for-becoming-a-better-engineer-get-a-dog.html" data-date="05-15">
      How my dogs make me a better engineer
    </a>
  </h3>

  
    <div class="list-post__description">The strange link between engineering and dogs</div>
  

  <div class="post__meta">
    May 15, 2026
    /

    

    1 minute read

  </div>
</div>


<div class="post--is-list" data-tags="psoriasis skin-health">
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/your-psoriasis-may-not-be-psoriasis.html" data-date="05-09">
      Your Psoriasis May Not Be Psoriasis
    </a>
  </h3>

  

  <div class="post__meta">
    May 9, 2026
    /

    

    2 minute read

  </div>
</div>


<div class="post--is-list" data-tags="Work Productivity Engineering Excellence">
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/when-work-is-cheap-do-more.html" data-date="04-29">
      When work is cheap, do more
    </a>
  </h3>

  
    <div class="list-post__description">How AI and automation can raise the standard of engineering work</div>
  

  <div class="post__meta">
    April 29, 2026
    /

    

    1 minute read

  </div>
</div>


<div class="post--is-list" data-tags="Work Personal reflection Engineering Excellence">
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/work-as-extension-of-the-self.html" data-date="04-27">
      Work as an extension of yourself
    </a>
  </h3>

  
    <div class="list-post__description">Understanding work as a social act</div>
  

  <div class="post__meta">
    April 27, 2026
    /

    

    2 minute read

  </div>
</div>


<div class="post--is-list" data-tags="OOP Ruby Encapsulation">
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/the-self-frying-burger.html" data-date="02-11">
      The Self-Frying Burger
    </a>
  </h3>

  

  <div class="post__meta">
    February 11, 2026
    /

    

    5 minute read

  </div>
</div>


<div class="post--is-list" data-tags="Ruby Philosophy of programming">
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/syntax-and-semantics.html" data-date="04-15">
      On the importance of syntax and semantics; How Ruby&#39;s power lies in its beauty
    </a>
  </h3>

  

  <div class="post__meta">
    April 15, 2025
    /

    

    5 minute read

  </div>
</div>


<div class="post--is-list" data-tags="Semantic Versioning Rails Database">
  
    <div class="post-item-cover" style="background-image: url('https://thinkersplayground.com/assets/images/compiled/semver-conversion.jpg')">
    </div>
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/sortable-semantic-version-strings-in-rails-part-3.html" data-date="01-30">
      Sortable Semantic Version Strings in Rails (part 3)
    </a>
  </h3>

  

  <div class="post__meta">
    January 30, 2025
    /

    

    7 minute read

  </div>
</div>


<div class="post--is-list" data-tags="Semantic Versioning Rails Database">
  
    <div class="post-item-cover" style="background-image: url('https://thinkersplayground.com/assets/images/compiled/semver-conversion.jpg')">
    </div>
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/sortable-semantic-version-strings-in-rails-part-2.html" data-date="01-01">
      Sortable Semantic Version Strings in Rails (part 2)
    </a>
  </h3>

  

  <div class="post__meta">
    January 1, 2025
    /

    

    8 minute read

  </div>
</div>


<div class="post--is-list" data-tags="Semantic Versioning Rails Database">
  
    <div class="post-item-cover" style="background-image: url('https://thinkersplayground.com/assets/images/compiled/semver-conversion.jpg')">
    </div>
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/sortable-semantic-version-strings-in-rails-part-1.html" data-date="01-01">
      Sortable Semantic Version Strings in Rails (part 1)
    </a>
  </h3>

  

  <div class="post__meta">
    January 1, 2025
    /

    

    9 minute read

  </div>
</div>


<div class="post--is-list" data-tags="composition Abstract Base Class refactoring HATEOAS">
  

  <h3 class="list-post__title">
    <a class="post-item-link" href="/cursed-code-abstract-base-class-composition.html" data-date="05-30">
      Cursed Code Pilot: Refactoring Base Classes
    </a>
  </h3>

  
    <div class="list-post__description">Pilot episode for Cursed Code</div>
  

  <div class="post__meta">
    May 30, 2024
    /

    

    1 minute read

  </div>
</div>



<nav role="navigation" aria-label="Pagination" class="actions">
  <ul class="pagination">

    
    <li><span>&lsaquo; Newer</span></li>
    

    
    
    <li class="active"><span class="current-page">1</span></li>
    
    
    
    <li><a href="/posts/page/2/" aria-label="Page 2">2</a></li>
    
    
    
    <li><a href="/posts/page/3/" aria-label="Page 3">3</a></li>
    
    
    
    <li><a href="/posts/page/4/" aria-label="Page 4">4</a></li>
    
    
    
    <li><a href="/posts/page/5/" aria-label="Page 5">5</a></li>
    
    
    
    <li><a href="/posts/page/6/" aria-label="Page 6">6</a></li>
    
    
    
    <li><a href="/posts/page/7/" aria-label="Page 7">7</a></li>
    
    
    
    <li><a href="/posts/page/8/" aria-label="Page 8">8</a></li>
    
    

    
    <li><a href="/posts/page/2/" rel="next" aria-label="Older posts">Older &rsaquo;</a></li>
    

  </ul>
</nav>


    </div>
    
  </main>

  <footer class="site-footer">
  <div class="site-footer__inner">
    <div>
      <p class="site-footer__title">Thinker's Playground</p>
      <p class="site-footer__text">Personal blog exploring how politics, media, technology, and culture influence individual behaviour and belief</p>
    </div>

    <div class="site-footer__meta">
      
        <a class="site-footer__link" href="/cdn-cgi/l/email-protection#89eee8ffe0e7c9fde1e0e7e2ecfbfaf9e5e8f0eefbe6fce7eda7eae6e4"><span class="__cf_email__" data-cfemail="6c0b0d1a05022c1804050207091e1f1c000d150b1e03190208420f0301">[email&#160;protected]</span></a>
      
      
      <ul class="site-footer__links" aria-label="Social links">
        
        <li><a class="site-footer__link" href="https://www.instagram.com/thinkersplayground/">Instagram</a></li>
        
        <li><a class="site-footer__link" href="https://x.com/morricegavin">X</a></li>
        
        <li><a class="site-footer__link" href="https://www.facebook.com/thinkersplayground/">Facebook</a></li>
        
        <li><a class="site-footer__link" href="https://www.youtube.com/@RubyRonin">YouTube</a></li>
        
      </ul>
      
      <p class="site-footer__copyright">© 2026 Thinker's Playground</p>
    </div>
  </div>
</footer>

</div>
<!-- Cloudflare Pages Analytics --><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "e0ca433ce63940af9644dc36b11e3897"}'></script><!-- Cloudflare Pages Analytics --></body>
</html>
