<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LetsBuild.cloud</title>
    <link>https://letsbuild.cloud/</link>
    <description>Notes on building software, shipping it, and the engineering practices in between — by Simon Bracegirdle, a software engineer in Perth, Western Australia.</description>
    <language>en-au</language>
    <lastBuildDate>Thu, 22 May 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://letsbuild.cloud/feed.xml" rel="self" type="application/rss+xml"></atom:link>
    <item>
      <title>Evals are useful</title>
      <link>https://letsbuild.cloud/2025-05-22-write-evals.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2025-05-22-write-evals.html</guid>
      <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>
      <description>As software engineers increasingly integrate LLMs into products, prompt evaluations—using tools like promptfoo—are essential for systematically testing and ensuring prompt reliability, much like traditional software tests.</description>
    </item>
    <item>
      <title>The world&#39;s simplest Static Site Generator in Go</title>
      <link>https://letsbuild.cloud/2025-03-01-simplest-static-site-generator.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2025-03-01-simplest-static-site-generator.html</guid>
      <pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>
      <description>A look at how this blog is generated using a custom-built static site generator written in Go.</description>
    </item>
    <item>
      <title>How to re-organise commits for code review</title>
      <link>https://letsbuild.cloud/2024-06-21-reorg-commits.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2024-06-21-reorg-commits.html</guid>
      <pubDate>Fri, 21 Jun 2024 00:00:00 +0000</pubDate>
      <description>How I clean up commits by squashing and creating new logical commits before opening for code review.</description>
      <category>code-review</category>
      <category>commits</category>
      <category>git</category>
    </item>
    <item>
      <title>React anti-patterns that lead to unnecessary complexity</title>
      <link>https://letsbuild.cloud/2024-02-22-react-anti-patterns.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2024-02-22-react-anti-patterns.html</guid>
      <pubDate>Thu, 22 Feb 2024 00:00:00 +0000</pubDate>
      <description>Where we look at common React anti-patterns such as unnecessary use of useEffect, unnecessary state, premature memoisation, and large inline functions.</description>
      <category>complexity</category>
      <category>front-end</category>
      <category>react</category>
      <category>software</category>
      <category>testing</category>
    </item>
    <item>
      <title>Scaling out test jobs in GitHub Actions</title>
      <link>https://letsbuild.cloud/2023-07-21-parallel-test-jobs.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2023-07-21-parallel-test-jobs.html</guid>
      <pubDate>Fri, 21 Jul 2023 00:00:00 +0000</pubDate>
      <description>Distributing your test suite over concurrent jobs in GitHub Actions isn&#39;t as straightforward as it first seems.</description>
      <category>actions</category>
      <category>cd</category>
      <category>ci</category>
      <category>devops</category>
      <category>github</category>
      <category>tests</category>
    </item>
    <item>
      <title>Are manual gates always bad?</title>
      <link>https://letsbuild.cloud/2023-07-20-gated-workflows.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2023-07-20-gated-workflows.html</guid>
      <pubDate>Thu, 20 Jul 2023 00:00:00 +0000</pubDate>
      <description>Waterfall and manual gates bad, agile good, as the industry wisdom goes. But is that always the case and are we glossing over some nuance?</description>
      <category>agile</category>
      <category>devops</category>
      <category>lean</category>
      <category>software</category>
      <category>systems</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Remembering the important bits to log</title>
      <link>https://letsbuild.cloud/2023-05-18-important-logs.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2023-05-18-important-logs.html</guid>
      <pubDate>Thu, 18 May 2023 00:00:00 +0000</pubDate>
      <description>Explore a useful mnemonic for remembering the essential information to log in code for supporting debugging, without overcomplicating it.</description>
      <category>devops</category>
      <category>logs</category>
      <category>monitoring</category>
      <category>observability</category>
      <category>software</category>
    </item>
    <item>
      <title>Ship the thing — what&#39;s getting in the way?</title>
      <link>https://letsbuild.cloud/2023-05-17-ship-the-thing.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2023-05-17-ship-the-thing.html</guid>
      <pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate>
      <description>What&#39;s stopping us from shipping the thing? Are there friction points or waste getting in the way?</description>
      <category>devops</category>
      <category>lean</category>
      <category>stoicism</category>
      <category>systems</category>
      <category>waste</category>
    </item>
    <item>
      <title>OpenTelemetry and the future of monitoring and observability</title>
      <link>https://letsbuild.cloud/2023-03-23-opentel-thoughts.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2023-03-23-opentel-thoughts.html</guid>
      <pubDate>Thu, 23 Mar 2023 00:00:00 +0000</pubDate>
      <description>I share my personal thoughts and experience with OpenTelemetry in 2023 — the benefits, limitations, and impact on monitoring and observability by this game-changing, vendor-agnostic framework.</description>
      <category>aws</category>
      <category>container</category>
      <category>ecs</category>
      <category>fargate</category>
      <category>monitoring</category>
      <category>observability</category>
      <category>opentelemetry</category>
      <category>sidecar</category>
      <category>traces</category>
    </item>
    <item>
      <title>Analysing AWS VPC Flow logs with Python and Pandas</title>
      <link>https://letsbuild.cloud/2023-02-09-vpc-flow-log-py.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2023-02-09-vpc-flow-log-py.html</guid>
      <pubDate>Thu, 09 Feb 2023 00:00:00 +0000</pubDate>
      <description>Where did the datas come from, where did they go? AWS VPC flow log analysis with Python, Pandas and Jupyter notebooks to understand AWS network costs.</description>
      <category>analysis</category>
      <category>aws</category>
      <category>data</category>
      <category>pandas</category>
      <category>python</category>
      <category>vpc</category>
    </item>
    <item>
      <title>Creating A Robotics Simulation Pipeline With GitHub Actions And ROS</title>
      <link>https://letsbuild.cloud/2022-06-14-robo-sim-pipe-github-actions.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2022-06-14-robo-sim-pipe-github-actions.html</guid>
      <pubDate>Tue, 14 Jun 2022 00:00:00 +0000</pubDate>
      <description>Creating A Robotics Simulation Pipeline With GitHub Actions And ROS</description>
      <category>aws</category>
      <category>cd</category>
      <category>cdk</category>
      <category>ci</category>
      <category>cloudformation</category>
      <category>devops</category>
      <category>infrastructure-as-code</category>
    </item>
    <item>
      <title>Doesn&#39;t look good to me — a requiem for thorough code reviews</title>
      <link>https://letsbuild.cloud/2022-03-08-dont-lgtm-code-reviews.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2022-03-08-dont-lgtm-code-reviews.html</guid>
      <pubDate>Tue, 08 Mar 2022 00:00:00 +0000</pubDate>
      <description>Do you give a cursory review and slap the trusty &#34;LGMT!&#34; on pull requests? Read this to find out how you could bring more rigour to your team&#39;s code review practices and improve the software delivered.</description>
      <category>aws</category>
      <category>cd</category>
      <category>cdk</category>
      <category>ci</category>
      <category>cloudformation</category>
      <category>devops</category>
      <category>infrastructure-as-code</category>
    </item>
    <item>
      <title>Managing Missing CloudFormation Support with the AWS CDK</title>
      <link>https://letsbuild.cloud/2021-12-20-cdk-cr.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2021-12-20-cdk-cr.html</guid>
      <pubDate>Mon, 20 Dec 2021 00:00:00 +0000</pubDate>
      <description>AWS CloudFormation support for services is patchy. Using Custom Resources to poll-fill them can be prone to error and messy. In this post I introduce a module that the AWS CDK provides to make creation of Custom Resources easier, safer and less messy.</description>
      <category>aws</category>
      <category>cd</category>
      <category>cdk</category>
      <category>ci</category>
      <category>cloudformation</category>
      <category>devops</category>
      <category>infrastructure-as-code</category>
    </item>
    <item>
      <title>Applying DevOps Principles to Robotics</title>
      <link>https://letsbuild.cloud/2021-12-20-robo-devops.html</link>
      <guid isPermaLink="true">https://letsbuild.cloud/2021-12-20-robo-devops.html</guid>
      <pubDate>Mon, 20 Dec 2021 00:00:00 +0000</pubDate>
      <description>How can you accelerate your robotics development without compromising on quality and safety? DevOps gives us the DORA metrics, which can help serve as a guide for choosing tools to integrate into our delivery pipeline.</description>
      <category>aws</category>
      <category>cd</category>
      <category>ci</category>
      <category>devops</category>
      <category>greengrass</category>
      <category>robotics</category>
    </item>
  </channel>
</rss>