Architecting a Serverless API with Authentication
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’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.
Python Wordsearch - A Request Fulfilled
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 a request on the PythonLearning subreddit by the user Mysterious_Lab5934 asking for a WordSearch generator in Python for print output. I decided to create one - code here. This took maybe an hour with LLM acceleration, most of that yak-shaving for an ‘optimum’ result.
Taking a Peek at Pulumi
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 example project. This article is about my experiences with it. Other people have already covered the general case of going from Terraform to Pulumi pretty well. Because of this I am only looking at the bits that stood out to me in this case.
Modularising My Mini Monolith with Microservices
How involved is it to break down a monolith into microservices? Is it worth it? Is serverless better than Kubernetes? Here’s my example of breaking up my own Kubernetes ‘mini monolith’ into microservices and you can see both the before and after, together with my thoughts on it below. A deployed running example service is currently (August 2024) available here although I don’t promise to keep it running there.
A Web App with ArgoCD
I recently transformed a command line desktop application into a web app and successfully deployed it to Kubernetes. You can find the code here and run it locally with Docker, or deploy it via Helm or ArgoCD to your Kubernetes cluster.
Project Overview # I initially developed this application using GoLang with AI assistance, as detailed in a previous article- an approach which has since become normalised. I wanted to convert it into a web-based service with automated test, build, package and deployment with ArgoCD to Kubernetes.
Stepping Into Serverless
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’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.
CloudFormation, SAM, CDK and Terraform in Production
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.
The SAM Stack # As countless others have written, ‘AWS Serverless Application Model’ (‘SAM’) is an area where CloudFormation really shines.
Hacking the Ikea ‘Markus’ Chair for armless use
A cost-effective and aesthetic solution to the ugly holes and metal bolt ends left exposed if you assemble the Ikea ‘Markus’ chair without arms but don’t have a 3-D Printer or are prepared to pay half the cost of the chair again for after market parts.
Background # I recently needed to replace my (home) office chair. The previous one was from a company whose name sounds like ‘Playfair’ and I didn’t want to buy from them again.
Sankeys And Pythons And Pandas, Oh My
Recently I’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 Sankey-Pandas-Jobhunting-CSV-Processor. If you just want to use the utility then head over there- the following is the backstory.
A Word on CloudFormation (updated)
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 ‘golden hammer’ 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.