<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>joshuakite.co.uk</title><description>Articles on cloud engineering, platform engineering, DevOps, and related topics by Joshua Kite.</description><link>https://joshuakite.co.uk/</link><item><title>Three years on: how my predictions in  &apos;Terraform, OpenTF, and the Shrinking Gap&apos; panned out</title><link>https://joshuakite.co.uk/posts/terraform-opentf-shrinking-gap-three-years-on.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/terraform-opentf-shrinking-gap-three-years-on.html</guid><description>&lt;p&gt;&lt;a href=&quot;https://www.joshuakite.co.uk/posts/terraform-opentf-and-the-shrinking_gap.html&quot;&gt;Three years ago I wrote about how I saw things panning out with Terraform and other parts of the Hashi stack&lt;/a&gt; in response to Hashicorp introducing the BUSL licence. Let&apos;s see how that panned out 3 years on.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sat, 08 Aug 2026 17:00:00 GMT</pubDate></item><item><title>Per Ardua Ad Astro</title><link>https://joshuakite.co.uk/posts/per-ardua-ad-astro.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/per-ardua-ad-astro.html</guid><description>&lt;p&gt;I have moved my Website from Hugo to Astro, 4 years after a migration from Wordpress. This article describes the experience. Short version: I am pleased with the result, after 4 years of frustration I can finally get things working how I want them to on the deployed site.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sat, 08 Aug 2026 13:00:00 GMT</pubDate></item><item><title>So Long Sam, Bye-bye Language Lock-in</title><link>https://joshuakite.co.uk/posts/so-long-sam-bye-bye-language-lock-in.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/so-long-sam-bye-bye-language-lock-in.html</guid><description>&lt;blockquote&gt;
&lt;p&gt;It was never about the code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://o16g.com/manifesto/&quot;&gt;The o16g Manifesto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Thu, 28 May 2026 07:00:00 GMT</pubDate></item><item><title>Games Notification</title><link>https://joshuakite.co.uk/posts/games-_notification.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/games-_notification.html</guid><description>&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;
&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;NOTE&lt;/p&gt;
&lt;p&gt;Originally posted Feb 2026 but article removed as it was simply a subset of what&apos;s &lt;a href=&quot;https://www.joshuakite.co.uk/web-applications.html&quot;&gt;available at the main page&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Tue, 03 Feb 2026 19:30:00 GMT</pubDate></item><item><title>From Zero to Production in a New Language in One Day</title><link>https://joshuakite.co.uk/posts/from-zero-to-production-in-a-new-language-in-1-day.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/from-zero-to-production-in-a-new-language-in-1-day.html</guid><description>&lt;p&gt;&quot;You can&apos;t rely on AI to write &apos;proper&apos; production code&quot; - or can you? I recently had to write my first Java service for production use, with zero prior Java experience and a week&apos;s deadline. In the event, I delivered it in a day using AI acceleration. Since I&apos;m not sure that I can share details of that project, I&apos;m showing how I did it by recreating the same approach with a React app - from zero experience to in-production code in a single day. The &lt;a href=&quot;https://historical-day.joshuakite.co.uk/&quot;&gt;running implementation is here&lt;/a&gt; and the &lt;a href=&quot;https://github.com/joshuamkite/react-your-day&quot;&gt;code is here&lt;/a&gt;&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Wed, 22 Jan 2025 10:30:00 GMT</pubDate></item><item><title>Architecting a Serverless API with Authentication</title><link>https://joshuakite.co.uk/posts/architecting-an-api.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/architecting-an-api.html</guid><description>&lt;p&gt;Here I designed and built out an architected API, able to support a (notional at this stage!) mobile application. I went from a toy-level application to a fully implemented serverless API with OpenAPI spec, encryption, authentication, testing, both free and premium tier features, and documentation. This article covers the journey at a high level, focussing on the lessons learned. I&apos;m a big fan of incrementalism/iteration as a development approach. Not just in the sense of the Minimally Viable Product meme, but also as a method for decomposition- perhaps the most important skill for an architect or developer. I hope to show how that worked well here.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 01 Sep 2024 11:00:00 GMT</pubDate></item><item><title>Python Wordsearch - A Request Fulfilled</title><link>https://joshuakite.co.uk/posts/python_wordsearch_request.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/python_wordsearch_request.html</guid><description>&lt;p&gt;A short article but with a fun angle that you can share in 😄. Sometimes when I have time on my hands I try the coding kata approach- thinking of a challenge and coding that up. Here I came across &lt;a href=&quot;https://old.reddit.com/r/PythonLearning/comments/1es3wfj/python_coding_help/&quot;&gt;a request on the PythonLearning subreddit&lt;/a&gt; by the user Mysterious_Lab5934 asking for a WordSearch generator in Python for print output. I decided to create one - code &lt;a href=&quot;https://github.com/joshuamkite/wordsearch-python&quot;&gt;here&lt;/a&gt;. This took maybe an hour with LLM acceleration, most of that yak-shaving for an &apos;optimum&apos; result.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Thu, 15 Aug 2024 10:00:00 GMT</pubDate></item><item><title>Taking a Peek at Pulumi</title><link>https://joshuakite.co.uk/posts/taking_a_peek_at_pulumi.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/taking_a_peek_at_pulumi.html</guid><description>&lt;p&gt;Coming from a background of mostly Terraform, some CloudFormation/SAM, and a sample of CDK, I  took a look at Pulumi (Python) - a comparable Infrastructure-as-code solution using general purpose programming languages rather than its own - by way of an &lt;a href=&quot;https://github.com/joshuamkite/pulumi-aws-asg&quot;&gt;example project&lt;/a&gt;. This article is about my experiences with it. &lt;a href=&quot;https://leebriggs.co.uk/blog/2020/07/07/terraform-to-pulumi-what-to-know&quot;&gt;Other people have already covered the general case of going from Terraform to Pulumi&lt;/a&gt; pretty well. Because of this I am only looking at the bits that stood out to me in this case. Short version - Pulumi is really nice, especially for intermediate features like programming logic and data manipulation.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Mon, 12 Aug 2024 10:00:00 GMT</pubDate></item><item><title>Modularising My Mini Monolith with Microservices</title><link>https://joshuakite.co.uk/posts/modularising-my-mini-monolith-with-microservices.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/modularising-my-mini-monolith-with-microservices.html</guid><description>&lt;p&gt;How involved is it to break down a monolith into microservices? Is it worth it? Is serverless better than Kubernetes? Here&apos;s my example of breaking up my own Kubernetes &apos;mini monolith&apos; into microservices and you can see both the &lt;a href=&quot;https://github.com/joshuamkite/tarot-card-shuffle-draw-web&quot;&gt;before&lt;/a&gt; and &lt;a href=&quot;https://github.com/joshuamkite/tarot-card-shuffle-draw-lambda&quot;&gt;after&lt;/a&gt;, together with my thoughts on it below.  A deployed running example service is currently (August 2024) available &lt;a href=&quot;https://tarot-shuffle-draw.joshuakite.co.uk/&quot;&gt;here&lt;/a&gt; although I don&apos;t promise to keep it running there.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Mon, 05 Aug 2024 10:00:00 GMT</pubDate></item><item><title>A Web App with ArgoCD</title><link>https://joshuakite.co.uk/posts/a_web_app_with_argocd.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/a_web_app_with_argocd.html</guid><description>&lt;p&gt;I recently transformed a command line desktop application into a web app and successfully deployed it to Kubernetes. &lt;a href=&quot;https://github.com/joshuamkite/tarot-card-shuffle-draw-web&quot;&gt;You can find the code here&lt;/a&gt; and run it locally with &lt;a href=&quot;https://github.com/joshuamkite/tarot-card-shuffle-draw-web/pkgs/container/tarot-card-shuffle-draw-web%2Ftarot_shuffle_draw&quot;&gt;Docker&lt;/a&gt;, or deploy it via Helm or ArgoCD to your Kubernetes cluster.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Wed, 31 Jul 2024 10:30:00 GMT</pubDate></item><item><title>Stepping Into Serverless</title><link>https://joshuakite.co.uk/posts/stepping_into_serverless.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/stepping_into_serverless.html</guid><description>&lt;p&gt;I recently had the opportunity to work on a project archiving data from a third-party service programmatically and making it available on a new platform. This was a change from the more platform-focussed work I&apos;ve tended to focus on but I agreed to look into it and see what I could come up with. I was pleasantly surprised by the results, using the Serverless Application Model (SAM) and AWS Lambda. This article discusses that project and a (pocket sized) equivalent available on my &lt;a href=&quot;https://github.com/joshuamkite/sam-nhs-queries&quot;&gt;GitHub&lt;/a&gt;, demonstrating a similar approach to a similar challenge- archiving health data with easy retrieval. It&apos;s one thing to talk about solutions; it&apos;s another to demonstrate them!&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Tue, 16 Jul 2024 10:30:00 GMT</pubDate></item><item><title>CloudFormation, SAM, CDK and Terraform in Production</title><link>https://joshuakite.co.uk/posts/cloudformation-sam-cdk-and-terraform-in-production.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/cloudformation-sam-cdk-and-terraform-in-production.html</guid><description>&lt;p&gt;I recently completed some projects requiring use of CloudFormation in a real environment where I would typically use Terraform. I wanted to make the most of it and wrote up my experiences and conclusions across various projects using CloudFormation and its variations - SAM; CDK; CDKTF- compared to Terraform. Spoiler: CloudFormation has its niche(s), but it remains (IMO) a specialised tool.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Fri, 05 Jul 2024 13:00:00 GMT</pubDate></item><item><title>Hacking the Ikea &apos;Markus&apos; Chair for armless use</title><link>https://joshuakite.co.uk/posts/hacking_ikea_markus_chair.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/hacking_ikea_markus_chair.html</guid><description>&lt;p&gt;A cost-effective and aesthetic solution to the ugly holes and metal bolt ends left exposed if you assemble the Ikea &apos;Markus&apos; chair without arms but don&apos;t have a 3-D Printer or are prepared to pay half the cost of the chair again for after market parts.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 30 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Sankeys And Pythons And Pandas, Oh My</title><link>https://joshuakite.co.uk/posts/sankeys-and-pythons-and-pandas-oh-my.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/sankeys-and-pythons-and-pandas-oh-my.html</guid><description>&lt;p&gt;Recently I&apos;ve seen a few people publishing Sankey diagrams (those coloured process diagrams) for their recent job searches. After finding it (initially) more of a faff to produce my own than I might have hoped I developed a tool to make this a bit easier. I thought that other people might also find this useful and so I am sharing it. Code is on my GitHub at &lt;a href=&quot;https://github.com/joshuamkite/Sankey-Pandas-Jobhunting-CSV-Processor&quot;&gt;Sankey-Pandas-Jobhunting-CSV-Processor&lt;/a&gt;. If you just want to use the utility then head over there- the following is the backstory.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 12 May 2024 20:00:00 GMT</pubDate></item><item><title>A Word on CloudFormation (updated)</title><link>https://joshuakite.co.uk/posts/a-word-on-cloudformation.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/a-word-on-cloudformation.html</guid><description>&lt;p&gt;For the majority of my career I have worked in AWS shops and (mainly) with Terraform. Neither of course is the only way and I would always argue against the &apos;golden hammer&apos; mentality towards any tool or tooling. What are the pros and cons of CloudFormation with respect to Terraform? What experience have I had with CloudFormation? What is CloudFormation like today? Obvious(?) disclaimer: This article is written in the context of AWS services managed as code.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sat, 20 Apr 2024 08:00:00 GMT</pubDate></item><item><title>Deploying EKS with Prometheus and Grafana</title><link>https://joshuakite.co.uk/posts/deploying_eks_with_prometheus_and_grafana.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/deploying_eks_with_prometheus_and_grafana.html</guid><description>&lt;p&gt;On the face of it this is a fairly pedestrian post subject. The devil, of course, is in the details. Here I wanted to deploy a new EKS cluster, with Prometheus and Grafana, cleanly and with good architectural domain boundaries.  I am using the open source self-hosted stack, not the managed versions in this exercise. I also deployed using &lt;a href=&quot;https://opentofu.org/&quot;&gt;Open Tofu&lt;/a&gt;.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Extrapolating the curve for targetted consumer AI services- focus Arc Search</title><link>https://joshuakite.co.uk/posts/extrapolating-the-curve-for-targetted-consumer-ai-services--focus-arc-search.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/extrapolating-the-curve-for-targetted-consumer-ai-services--focus-arc-search.html</guid><description>&lt;p&gt;This evening one of the the big conversation pieces on Tech Twitter is Arc Search and their &apos;Act II of the internet&apos; launch video:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Our vision for Act II of Arc Internet &lt;a href=&quot;https://t.co/1RidKJVYUX&quot;&gt;pic.twitter.com/1RidKJVYUX&lt;/a&gt;&quot; - Josh Miller &lt;a href=&quot;https://twitter.com/joshm/status/1753129075487478157?ref_src=twsrc%5Etfw&quot;&gt;February 1, 2024&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Thu, 01 Feb 2024 00:50:00 GMT</pubDate></item><item><title>Going Bananas For The Minions Game</title><link>https://joshuakite.co.uk/posts/going-bananas-for-the-minions-game.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/going-bananas-for-the-minions-game.html</guid><description>&lt;p&gt;Recently I attempted a &lt;a href=&quot;https://www.hackerrank.com/challenges/the-minion-game/problem&quot;&gt;Python challenge on HackerRank - &apos;The Minion Game&apos;&lt;/a&gt;. My curiosity was piqued and I wanted to find out if the odds were as stacked as I initially thought. I was surprised that this wasn&apos;t already established publicly and so I worked it out &apos;myself&apos;.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Tue, 26 Sep 2023 19:18:00 GMT</pubDate></item><item><title>Writing my own (Python) study course with ChatGPT - part 2</title><link>https://joshuakite.co.uk/posts/writing_my_own_tutorial_course_part2.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/writing_my_own_tutorial_course_part2.html</guid><description>&lt;p&gt;This is a follow-up article to one I published in June 2023 - &apos;&lt;a href=&quot;https://www.joshuakite.co.uk/posts/writing_my_own_tutorial_course.html#introduction&quot;&gt;Writing my own (Python) study course with ChatGPT - part 1&lt;/a&gt;&apos;. This discusses a more structured and disciplined approach with reflective practice and constructive critique as part of learning and improvement.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 03 Sep 2023 15:00:00 GMT</pubDate></item><item><title>Terraform, OpenTF, and the Shrinking Gap</title><link>https://joshuakite.co.uk/posts/terraform-opentf-and-the-shrinking_gap.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/terraform-opentf-and-the-shrinking_gap.html</guid><description>&lt;p&gt;Hashicorp recently made shock &lt;a href=&quot;https://www.hashicorp.com/license-faq&quot;&gt;licensing changes to their stack&lt;/a&gt; to close their source code to &apos;competitors&apos;. There has been &lt;a href=&quot;https://www.theregister.com/2023/08/11/hashicorp_bsl_licence/&quot;&gt;much public comment&lt;/a&gt; and &lt;a href=&quot;https://opentf.org/&quot;&gt;Open Terraform&lt;/a&gt; has already been announced in response. I see a strong future for OpenTF and a move towards Terraform itself being less used directly and more as an intermediate layer or stage for higher level tools as the gap that it occupies shrinks, as detailed below.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Mon, 28 Aug 2023 22:30:00 GMT</pubDate></item><item><title>AI Assistance On The Home Turf</title><link>https://joshuakite.co.uk/posts/ai_assistance-on_the_home_turf.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/ai_assistance-on_the_home_turf.html</guid><description>&lt;p&gt;I&apos;ve written previously about using ChatGPT to provide Artificial Intelligence (&apos;AI&apos;) support for coding and tutoring in unfamiliar areas. What about using it on home turf, i.e. in an area with which I am familiar- in this case a Terraform module for generic use?&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Thu, 17 Aug 2023 19:00:00 GMT</pubDate></item><item><title>Writing my own (Python) study course with ChatGPT - part 1</title><link>https://joshuakite.co.uk/posts/writing_my_own_tutorial_course.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/writing_my_own_tutorial_course.html</guid><description>&lt;p&gt;I&apos;ve previously written about writing applications with ChatGPT. Now I am writing about using ChatGPT as a coding tutor.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 25 Jun 2023 16:36:15 GMT</pubDate></item><item><title>Managing Permission Set Assignments by Organizational Unit in AWS Single-Sign-On / IAM identity Centre with Terraform</title><link>https://joshuakite.co.uk/posts/managing_sso_assignments_by_ou.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/managing_sso_assignments_by_ou.html</guid><description>&lt;p&gt;This article demonstrates how to use  Terraform features new in February 2023 to comprehensively manage permission set assignments in AWS Single-Sign-On / IAM identity Centre across accounts and by Organizational Unit.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 19 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Testing a Golang Application Written with Artificial Intelligence</title><link>https://joshuakite.co.uk/posts/testing_a_golang_application_written_with_artifical_intelligence.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/testing_a_golang_application_written_with_artifical_intelligence.html</guid><description>&lt;p&gt;Recently I &lt;a href=&quot;https://www.joshuakite.co.uk/posts/coding_a_golang_application_with_artifical_intelligence.html&quot;&gt;wrote about writing a Golang application with a conversational Artificial Intelligence service&lt;/a&gt; - &lt;a href=&quot;https://chat.openai.com/chat&quot;&gt;ChatGPT&lt;/a&gt;. This is a follow on article about trying to use a similar approach for testing. I am not presuming a familiarity with Golang for this article or claiming a high degree of expertise in it myself. The code discussed in both articles is &lt;a href=&quot;https://github.com/joshuamkite/tarot-card-shuffle-draw&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 11 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Coding a Golang Application with Artificial Intelligence</title><link>https://joshuakite.co.uk/posts/coding_a_golang_application_with_artifical_intelligence.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/coding_a_golang_application_with_artifical_intelligence.html</guid><description>&lt;p&gt;A new conversational Artificial Intelligence service - &lt;a href=&quot;https://chat.openai.com/chat&quot;&gt;ChatGPT&lt;/a&gt; - has been making waves this week. I tried using it for a small coding project and was impressed. I think it has some profound implications for the software industry.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Tue, 06 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Moving my website from WordPress to Hugo</title><link>https://joshuakite.co.uk/posts/moving-my-website-to-hugo.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/moving-my-website-to-hugo.html</guid><description>&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;
&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;NOTE&lt;/p&gt;
&lt;p&gt;As of August 2026 &lt;a href=&quot;https://www.joshuakite.co.uk/posts/per-ardua-ad-astro.html&quot;&gt;this site has been migrated again, to Astro&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sat, 27 Aug 2022 00:00:00 GMT</pubDate></item><item><title>When Amazon Web Services overtakes one of your custom features</title><link>https://joshuakite.co.uk/posts/when-amazon-web-services-overtakes-one-of-your-custom-features.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/when-amazon-web-services-overtakes-one-of-your-custom-features.html</guid><description>&lt;p&gt;&lt;a href=&quot;https://medium.com/@joshuamkite/when-amazon-web-services-overtakes-one-of-your-custom-features-50cb00c806a1&quot;&gt;&lt;em&gt;This post is also published on Medium&lt;/em&gt;&lt;/a&gt; It’s kind of a standing joke in the industry - do some cool thing with AWS to implement an infrastructure feature, and if it works well, Amazon will come along a few months later with some matching in-house feature. Sometimes that feature might be a relatively simple thing, maybe something that was obviously missing, sometimes you might have had a whole project that was essentially deprecated, and sometimes it’s a feature of a larger piece of work that means you have to adjust or re-evaluate your approach. What do you do when this happens? This article covers an example of each - one that happened with a company I was working with; one that happened with a third-party project we made use of, and one that happened with my own project.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 05 Jan 2020 17:36:15 GMT</pubDate></item><item><title>The Bastion That Isn&apos;t There @ London Hashicorp Meetup 3rd Dec 2019</title><link>https://joshuakite.co.uk/posts/the-bastion-that-isnt-there-london-hashicorp-meetup-3rd-dec-2019.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/the-bastion-that-isnt-there-london-hashicorp-meetup-3rd-dec-2019.html</guid><description>&lt;p&gt;Here&apos;s a video of my presentation on &apos;The Bastion That Isn&apos;t There&apos; and a Micro-component approach to Infrastructure using Terraform modules. Given at Sainsbury&apos;s London Head Office in December 2019 to the London Hashicorp Users Group. {{&amp;#x3C; youtube  OCdLO65v7-I &gt;}}&lt;/p&gt;</description><pubDate>Sun, 05 Jan 2020 17:03:19 GMT</pubDate></item><item><title>Read my Techerati Interview, See me at Cloud Expo Europe in London</title><link>https://joshuakite.co.uk/posts/read-my-techerati-interview-see-me-at-cloud-expo-europe-in-london.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/read-my-techerati-interview-see-me-at-cloud-expo-europe-in-london.html</guid><description>&lt;p&gt;I&apos;ll be presenting &apos;The Bastion that isn&apos;t there&apos; at Cloud Expo Europe on 12th March 10:55 at the ExCel in London.  You can read my advance interview at Techerati on the journey to enterprise scale: &lt;a href=&quot;https://techerati.com/features-hub/interviews/the-bastion-server-that-isnt-there/&quot;&gt;https://techerati.com/features-hub/interviews/the-bastion-server-that-isnt-there/&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 11 Feb 2019 21:21:02 GMT</pubDate></item><item><title>How not to do alerting</title><link>https://joshuakite.co.uk/posts/how-not-to-do-alerting.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/how-not-to-do-alerting.html</guid><description>&lt;p&gt;&lt;em&gt;This article has been edited in Feb 2026 and also been &lt;a href=&quot;https://medium.com/@joshuamkite/how-not-to-do-alerting-c911051b1d5&quot;&gt;published on Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sat, 01 Dec 2018 23:10:52 GMT</pubDate></item><item><title>The Bastion Server That Isn&apos;t There</title><link>https://joshuakite.co.uk/posts/the-bastion-server-that-isnt-there.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/the-bastion-server-that-isnt-there.html</guid><description>&lt;p&gt;&lt;em&gt;I also have a presentation and live demonstration on the below, so far given at &lt;a href=&quot;https://www.meetup.com/DevSecOps-London-Gathering/events/251238785/&quot;&gt;DevSecOps - London Gathering June 13 2018.&lt;/a&gt;&lt;/em&gt; &lt;em&gt;This article has also been &lt;a href=&quot;https://medium.com/@joshuamkite/the-bastion-server-that-isnt-there-87a5c18c3c75&quot;&gt;published on Medium&lt;/a&gt;&lt;/em&gt; The mantras of software as a service, stateless, cattle vs. pets, etc, are often and loudly repeated, but in many environments you often don&apos;t have to look too far before you find some big fat pet box sprawling somewhere. Maybe it is the in-house file server, maybe something else, but if your infrastructure is in the cloud then it is most likely going to be your Bastion server (or &apos;jump box&apos;). Here I look at the problem, look at a couple of options and present a solution that I implemented providing Bastion ssh as a stateless service on AWS - the code is available on &lt;a href=&quot;https://github.com/joshuamkite/terraform-aws-ssh-bastion-service&quot;&gt;GitHub&lt;/a&gt; and also published on the &lt;a href=&quot;https://registry.terraform.io/modules/joshuamkite/ssh-bastion-service/aws/&quot;&gt;Terraform Module Registry&lt;/a&gt;. Whilst the principles are applicable universally, this specific solution employs a Terraform plan to deploy to AWS. If you are not using AWS then you might find concentrating on the cloud-config user data stuff more useful as the rest would need to be ported, e.g. for DigitalOcean etc. If you&apos;re using GCP then to be honest you probably don&apos;t need this at all.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 17 Jun 2018 00:25:47 GMT</pubDate></item><item><title>Implementing the ELK stack with microservice containers on AWS with Terraform</title><link>https://joshuakite.co.uk/posts/implementing-the-elk-stack-with-microservice-containers-on-aws-with-terraform.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/implementing-the-elk-stack-with-microservice-containers-on-aws-with-terraform.html</guid><description>&lt;p&gt;**25 Minute reading time  **(but article is composed of short, numbered sections!)&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Thu, 15 Feb 2018 06:00:56 GMT</pubDate></item><item><title>Setting a Proprietary Server Process to Run at Boot Using Systemd</title><link>https://joshuakite.co.uk/posts/setting-a-proprietary-server-process-to-run-at-boot-using-systemd.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/setting-a-proprietary-server-process-to-run-at-boot-using-systemd.html</guid><description>&lt;p&gt;One of the big differences between being a good hobbyist with Linux and working commercially with it is dealing with proprietary software. You can use and configure all sorts of systems indefinitely on your own account and never come up against dealing with awkward proprietary software that is supposedly officially supported for your platform that you really need to make work. Recently I had this experience. Not only was I able to get it working but I was able to extend it beyond the manufacturer&apos;s original provision to make it more user friendly and less work to administer.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 30 Apr 2017 00:18:40 GMT</pubDate></item><item><title>Ansible on the Desktop</title><link>https://joshuakite.co.uk/posts/ansible-on-the-desktop.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/ansible-on-the-desktop.html</guid><description>&lt;p&gt;Configuration management tools are a big deal these days.  Just as with Puppet, Chef and Salt, a lot of material written about Ansible presumes either a lab environment or one focussed on servers, or both. Virtualisation is also considered &apos;a given&apos;- Docker and Vagrant are both popular- and the guides expect that you are implementing on green-field estate. I thought it would be useful to write about real-world experience and use in the opposite scenario: desktop more than server, physical rather than virtual machines and a &apos;mature&apos; environment. Oh, and learning as we go along.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 09 Apr 2017 23:16:34 GMT</pubDate></item><item><title>Ebooks for documentation- it&apos;s easy and you should</title><link>https://joshuakite.co.uk/posts/ebooks-for-documentation-its-easy-and-you-should.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/ebooks-for-documentation-its-easy-and-you-should.html</guid><description>&lt;p&gt;Documentation. Not something to get excited about is it? Who wants to read a manual? Or a policy document? A reference guide even? How about if we could make it easier? More accessible? More relevant? I think we can, using ebooks, and in this paper I will expand on this. In case it isn’t obvious, this paper is intended for people with a technical interest. I give a description of the real world challenges and then 2 real-life examples illustrating where ebook solutions answer them. The majority of the software referred to is free and/or open source. None of it is meant to constitute a commercial endorsement.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 02 Oct 2016 10:58:07 GMT</pubDate></item><item><title>The Strengths and Weaknesses of selinux</title><link>https://joshuakite.co.uk/posts/the-strengths-and-weaknesses-of-selinux.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/the-strengths-and-weaknesses-of-selinux.html</guid><description>&lt;p&gt;If you use or administer Red Hat Linux or a derivative of it, such as CEntOS then you have likely heard of or come across SELinux. SELinux is not universally loved and has a reputation for being something that admins learn just enough about to turn off lest it break their system at some inopportune moment. Is this reputation fair? Should we be making the effort to learn to use it properly or is it best left on the shelf? The following is based on my own experience learning to administer selinux in preparation for the Red Hat Certified System Administrator (RHCSA) exam for RHEL7 and conversations with system administrators (and in some cases Red Hat staff) about that experience. I am not attempting to give a technical overview of SELinux here. This paper is an evaluation of the implementation of selinux as used by Red Hat and the principles they advise for its use.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Fri, 12 Aug 2016 11:00:52 GMT</pubDate></item><item><title>Review of Xubuntu on Dell XPS13 Developer edition (2015)</title><link>https://joshuakite.co.uk/posts/review-of-xubuntu-on-dell-xps13-developer-edition-2015.html</link><guid isPermaLink="true">https://joshuakite.co.uk/posts/review-of-xubuntu-on-dell-xps13-developer-edition-2015.html</guid><description>&lt;p&gt;This is an older post that was originally published elsewhere in August 2015 So I decided to post a review of my own Dell XPS13 developer edition, supplied running Ubuntu three weeks ago. I&apos;m not going into great detail on the hardware, apart from where it has specific relevance to a Linux install as this has been covered by many reviewers save to say that the screen and its small bezel is a key selling point, as is the ‘Precision’ touchpad. Hardware reviews by other sites include &lt;a href=&quot;http://www.techradar.com/reviews/pc-mac/laptops-portable-pcs/laptops-and-netbooks/dell-xps-13-2015-1279013/review&quot;&gt;Tech Radar review (Windows version&lt;/a&gt; with same hardware) and &lt;a href=&quot;https://www.ifixit.com/Teardown/Dell+XPS+13+Teardown/36157&quot;&gt;iFixit Teardown&lt;/a&gt;. There are many others.&lt;/p&gt;&lt;span class=&quot;excerpt-ellipsis&quot;&gt;…&lt;/span&gt;</description><pubDate>Sun, 23 Aug 2015 11:02:23 GMT</pubDate></item></channel></rss>