<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
  <title>Luke Howsam</title>
  <link>https://lhowsam.com/</link>
  <description>Blog posts, client and product work, and personal projects from Luke Howsam — software development, React Native, TypeScript, and DevOps.</description>
  <language>en-gb</language>
  <item>
  <title>How to scale caching in your services</title>
  <link>https://lhowsam.com/blog/scaling-caching/</link>
  <guid>https://lhowsam.com/blog/scaling-caching/</guid>
  <description>Production grade scale for caching</description>
  <pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Optimising expo-image for foam, a third-party Expo Twitch client</title>
  <link>https://lhowsam.com/blog/expo-image-caching-deep-dive-foam/</link>
  <guid>https://lhowsam.com/blog/expo-image-caching-deep-dive-foam/</guid>
  <description>How I optimised expo-image for foam, a third-party Expo Twitch client.</description>
  <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
</item>
<item>
  <title>How React Native&apos;s old and new architecture work</title>
  <link>https://lhowsam.com/blog/how-react-native-new-architecture-works/</link>
  <guid>https://lhowsam.com/blog/how-react-native-new-architecture-works/</guid>
  <description>A practical deep dive into the old React Native bridge, the new architecture, JSI, Fabric, TurboModules, Codegen, threading, rendering, and the performance work that still matters in real apps.</description>
  <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
</item>
<item>
  <title>How to profile a React Native app</title>
  <link>https://lhowsam.com/blog/how-to-profile-a-react-native-app/</link>
  <guid>https://lhowsam.com/blog/how-to-profile-a-react-native-app/</guid>
  <description>Profiling react native apps</description>
  <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Setting up k3s + Immich on a VPS</title>
  <link>https://lhowsam.com/blog/setting-up-k3s-and-immich-on-a-vps/</link>
  <guid>https://lhowsam.com/blog/setting-up-k3s-and-immich-on-a-vps/</guid>
  <description>How I run Immich on k3s with Cloudflare Tunnel and automated backups</description>
  <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Sporting Life Mobile</title>
  <link>https://lhowsam.com/work-projects/sporting-life-mobile/</link>
  <guid>https://lhowsam.com/work-projects/sporting-life-mobile/</guid>
  <description>A rewrite of Sporting Life&apos;s native (Kotlin and Swift) apps to React Native - Unifying codebases, improving quality, speed, and ability to use the platform to its full ability.</description>
  <pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate>
</item>
<item>
  <title>DDOS attacks and how to prevent them with Cloudflare + AWS API gateway</title>
  <link>https://lhowsam.com/blog/ddos-attacks-and-how-to-prevent-them-with-cloudflare-aws-api-gateway/</link>
  <guid>https://lhowsam.com/blog/ddos-attacks-and-how-to-prevent-them-with-cloudflare-aws-api-gateway/</guid>
  <description>How to prevent ddos attacks with Cloudflare + AWS API Gateway authorizers</description>
  <pubDate>Sun, 04 May 2025 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Why you should go to conferences</title>
  <link>https://lhowsam.com/blog/why-you-should-go-to-conferences/</link>
  <guid>https://lhowsam.com/blog/why-you-should-go-to-conferences/</guid>
  <description>Why you should attend a tech conference</description>
  <pubDate>Sun, 02 Mar 2025 00:00:00 GMT</pubDate>
</item>
<item>
  <title>GLS (game launch service)</title>
  <link>https://lhowsam.com/work-projects/gls-game-launch-service/</link>
  <guid>https://lhowsam.com/work-projects/gls-game-launch-service/</guid>
  <description>worked within the GLS squad, a P1 mission-critical micro-service that powered all gaming content across gaming products</description>
  <pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Code linters and formatters</title>
  <link>https://lhowsam.com/blog/code-linters-and-formatters/</link>
  <guid>https://lhowsam.com/blog/code-linters-and-formatters/</guid>
  <description>What&apos;s the role of a code linter and formatter in our projects?</description>
  <pubDate>Mon, 04 Nov 2024 00:00:00 GMT</pubDate>
</item>
<item>
  <title>How to connect a custom domain to AWS API gateway</title>
  <link>https://lhowsam.com/blog/how-to-connect-a-custom-domain-to-aws-api-gateway/</link>
  <guid>https://lhowsam.com/blog/how-to-connect-a-custom-domain-to-aws-api-gateway/</guid>
  <description>How to connect a custom domain (cloudflare) to AWS API gateway and generate free SSL certificates</description>
  <pubDate>Mon, 25 Mar 2024 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Getting started with aws-vault</title>
  <link>https://lhowsam.com/blog/getting-started-with-aws-vault/</link>
  <guid>https://lhowsam.com/blog/getting-started-with-aws-vault/</guid>
  <description>AWS vault is a handy tool I use every day to manage my AWS credentials when developing locally</description>
  <pubDate>Wed, 06 Mar 2024 00:00:00 GMT</pubDate>
</item>
<item>
  <title>2023 in review and 2024 goals</title>
  <link>https://lhowsam.com/blog/2023-year-in-review-and-2024-goals/</link>
  <guid>https://lhowsam.com/blog/2023-year-in-review-and-2024-goals/</guid>
  <description>2023 year in review and goals for 2024</description>
  <pubDate>Sun, 14 Jan 2024 00:00:00 GMT</pubDate>
</item>
<item>
  <title>How to use the Spotify API with Next.js</title>
  <link>https://lhowsam.com/blog/how-to-use-the-spotify-api-with-next-js/</link>
  <guid>https://lhowsam.com/blog/how-to-use-the-spotify-api-with-next-js/</guid>
  <description>Recently I aimed to showcase the current Spotify song I was listening to on my website. To achieve this, I connected the Spotify API with Next.js route handlers. In this post, we&apos;ll go over how to do this to help you get started with Spotify&apos;s API</description>
  <pubDate>Sat, 09 Sep 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>TypeScript - why to use unknown instead of any</title>
  <link>https://lhowsam.com/blog/typescript-why-to-use-unknown-instead-of-any/</link>
  <guid>https://lhowsam.com/blog/typescript-why-to-use-unknown-instead-of-any/</guid>
  <description>How to manage TypeScript codebases when you don&apos;t know the exact shape of something</description>
  <pubDate>Sat, 09 Sep 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>How to build a custom Prisma generator</title>
  <link>https://lhowsam.com/blog/how-to-build-a-custom-prisma-generator/</link>
  <guid>https://lhowsam.com/blog/how-to-build-a-custom-prisma-generator/</guid>
  <description>Learn how to create a Prisma generator that outputs TypeScript types from your Prisma schema</description>
  <pubDate>Sun, 27 Aug 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Explore Education Statistics</title>
  <link>https://lhowsam.com/work-projects/explore-education-statistics/</link>
  <guid>https://lhowsam.com/work-projects/explore-education-statistics/</guid>
  <description>EES, a full-stack project to make publishing statistics easier for the department for education</description>
  <pubDate>Fri, 11 Aug 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>What Next.js 13 means for end-users</title>
  <link>https://lhowsam.com/blog/what-next-js-13-means-for-end-users/</link>
  <guid>https://lhowsam.com/blog/what-next-js-13-means-for-end-users/</guid>
  <description>Next.js 13 contains a lot of quality-of-life improvements for developers, but what do these benefits actually mean to end users?</description>
  <pubDate>Sat, 18 Feb 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Conventional commits, a better way to commit</title>
  <link>https://lhowsam.com/blog/conventional-commits-a-better-way-to-commit/</link>
  <guid>https://lhowsam.com/blog/conventional-commits-a-better-way-to-commit/</guid>
  <description>Conventional commits is a specification that seeks to improve and standardize commit messages in general. In this post, we&apos;ll go over the reasoning behind why you might want to use it &amp; its benefits</description>
  <pubDate>Mon, 09 Jan 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Getting started with Playwright UI testing</title>
  <link>https://lhowsam.com/blog/getting-started-with-playwright-ui-testing/</link>
  <guid>https://lhowsam.com/blog/getting-started-with-playwright-ui-testing/</guid>
  <description>Playwright is a cross-browser end-to-end testing framework created by Microsoft. It&apos;s reliable, supports several languages, and is flake-resistant. In this post, we&apos;ll go over how to get started with Playwright.</description>
  <pubDate>Sun, 13 Nov 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Timeout Toolkit</title>
  <link>https://lhowsam.com/work-projects/timeout-toolkit/</link>
  <guid>https://lhowsam.com/work-projects/timeout-toolkit/</guid>
  <description>Timeout Toolkit, a full-stack Next.js project built for a mental-health charity</description>
  <pubDate>Thu, 18 Aug 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Launching multiple Iterm2 windows with one script</title>
  <link>https://lhowsam.com/blog/launching-multiple-iterm2-windows-with-one-script/</link>
  <guid>https://lhowsam.com/blog/launching-multiple-iterm2-windows-with-one-script/</guid>
  <description>As your project grows in size it can become a bit tedious when you&apos;re starting up your local environment. In this post, we&apos;ll go from having to run 4 commands to only one command to start a project with multiple sub-projects</description>
  <pubDate>Fri, 05 Aug 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Set default node version with nvm</title>
  <link>https://lhowsam.com/blog/set-default-node-version-with-nvm/</link>
  <guid>https://lhowsam.com/blog/set-default-node-version-with-nvm/</guid>
  <description>NVM (Node version manager) is a handy tool for switching between Node versions. Sometimes, you want to stick to one particular version.</description>
  <pubDate>Sun, 03 Apr 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Preventing fouc with Chakra UI</title>
  <link>https://lhowsam.com/blog/preventing-fouc-with-chakra-ui/</link>
  <guid>https://lhowsam.com/blog/preventing-fouc-with-chakra-ui/</guid>
  <description>How to prevent FOUC (flash of unstyled content) when using Next.js &amp; Chakra UI</description>
  <pubDate>Sat, 26 Mar 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>How to rename local &amp; remote git branches</title>
  <link>https://lhowsam.com/blog/how-to-rename-local-and-remote-git-branches/</link>
  <guid>https://lhowsam.com/blog/how-to-rename-local-and-remote-git-branches/</guid>
  <description>How to rename local &amp; remote git branches.</description>
  <pubDate>Sat, 01 Jan 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Extending multiple classes in TypegraphQL</title>
  <link>https://lhowsam.com/blog/extending-multiple-classes-in-typegraphql/</link>
  <guid>https://lhowsam.com/blog/extending-multiple-classes-in-typegraphql/</guid>
  <description>How to extend multiple classes in TypeGraphQL and Typescript</description>
  <pubDate>Sat, 05 Jun 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Full stack deploy with dokku</title>
  <link>https://lhowsam.com/blog/full-stack-deploy-with-dokku/</link>
  <guid>https://lhowsam.com/blog/full-stack-deploy-with-dokku/</guid>
  <description>How to deploy a full-stack app with Dokku to AWS / Digital Ocean. Cost-effective deployment for Node, PostgreSQL &amp; Redis</description>
  <pubDate>Sat, 29 May 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Next.js SSR notes</title>
  <link>https://lhowsam.com/blog/next-js-ssr-notes/</link>
  <guid>https://lhowsam.com/blog/next-js-ssr-notes/</guid>
  <description>Notes on the different methods of rendering that you can use with Next.js</description>
  <pubDate>Tue, 06 Apr 2021 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Forcing git merges</title>
  <link>https://lhowsam.com/blog/forcing-git-merges/</link>
  <guid>https://lhowsam.com/blog/forcing-git-merges/</guid>
  <description>Isolating features into separate branches is a really common practice for most developers. By separating features &amp; bug fixes you can avoid a lot of problems and keep your branches clean.</description>
  <pubDate>Tue, 15 Dec 2020 00:00:00 GMT</pubDate>
</item>
<item>
  <title>First blog post</title>
  <link>https://lhowsam.com/blog/first-blog-post/</link>
  <guid>https://lhowsam.com/blog/first-blog-post/</guid>
  <description>Posting the first blog post</description>
  <pubDate>Thu, 10 Dec 2020 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Storify</title>
  <link>https://lhowsam.com/projects/storify/</link>
  <guid>https://lhowsam.com/projects/storify/</guid>
  <description>Storify is a full-stack eCommerce app built to learn more about advanced database relationships, React &amp; Stripe.</description>
</item>
<item>
  <title>Tightlog</title>
  <link>https://lhowsam.com/projects/tightlog/</link>
  <guid>https://lhowsam.com/projects/tightlog/</guid>
  <description>Tightlog is an offline-first fishing logbook for iOS &amp; Android that helps you capture good memories while fishing.</description>
</item>
<item>
  <title>Foam</title>
  <link>https://lhowsam.com/projects/foam/</link>
  <guid>https://lhowsam.com/projects/foam/</guid>
  <description>Foam is a React Native Twitch client built to create a cleaner mobile viewing experience with better chat support and a stronger mobile delivery workflow.</description>
</item>
<item>
  <title>Config</title>
  <link>https://lhowsam.com/projects/config/</link>
  <guid>https://lhowsam.com/projects/config/</guid>
  <description>A repository that I created to manage my dotfiles </description>
</item>
<item>
  <title>My website</title>
  <link>https://lhowsam.com/projects/my-website/</link>
  <guid>https://lhowsam.com/projects/my-website/</guid>
  <description>My personal website, portfolio &amp; blog. Currently built with Vanilla Extract, Next.js &amp; Sanity.io. I like to try out different technology and test my skills with this project.</description>
</item>
<item>
  <title>Now playing lambda</title>
  <link>https://lhowsam.com/projects/now-playing-lambda/</link>
  <guid>https://lhowsam.com/projects/now-playing-lambda/</guid>
  <description>In this project, I built an AWS lambda serverless function that makes requests to the Spotify API to get the currently playing song</description>
</item>
<item>
  <title>Uber cost calculator</title>
  <link>https://lhowsam.com/projects/uber-cost-calculator/</link>
  <guid>https://lhowsam.com/projects/uber-cost-calculator/</guid>
  <description>A simple node script that takes in a CSV file from Uber&apos;s &apos;download your data&apos; request and calculates how much you&apos;ve spent over the lifetime of your account 🙈</description>
</item>
</channel>
</rss>
