- 2026-06-124 minAI Is Bringing Mashups Back
A mashup is a term that became popular in the 2010s for applications that combined two or more data sources into a single user interface. Recently, I have seen a steady stream of AI-generated side projects, small apps, …
#062 - 2025-12-074 minHow I Work with AI Coding Agents
For anyone who has been following AI and software development, things are changing rapidly, this includes how we build software. Over the last few months, I have found myself going from working alone to working with an …
#061 - 2025-12-023 minWhy Connect RPC is a great choice for building APIs
Connect RPC is a suite of libraries which enable you to build HTTP based APIs which are gRPC compatible. It provides a bridge between gRPC and HTTP/1.1, letting you leverage HTTP/2’s multiplexing and performance …
#060 - 2025-11-164 minWhy OIDC?
Over the last few years there has been a push away from using machine identity for continuous integration (CI) agents, or runners, and instead use a more targeted, least privileged approach to authentication and …
#059 - 2024-04-114 minWhat you should consider when storing datasets in s3
As an Amazon Web Services (AWS) developer, I am often asked what is the best way to organise datasets in S3 . A dataset could comprise data exported by business systems, or data emitted by AWS services, such as …
#058 - 2023-12-284 minUsing a Monorepo to publish Lean Go Packages with Workspaces
As a developer who works with Go in my day-to-day development, I constantly struggle with third party packages or tools which bring in a lot of dependencies. This is especially true when you’re trying to keep your …
#057 - 2023-12-168 minGetting started with AI for developers
As a software developer, I have seen a lot of changes over the years, however few have been as drastic as the rise of artificial intelligence. There are a growing list of tools and services using this technology to help …
#056 - 2023-11-123 minAvoid accidental exposure of authenticated Amazon API Gateway resources
I have been working with Amazon API Gateway for a while and one thing I noticed is there are a few options for authentication, which can be confusing to developers, and lead to security issues. This post will cover one …
#055 - 2023-08-096 minRIP AWS Go Lambda Runtime
Amazon Web Services (AWS) is deprecating the go1.x runtime on Lambda , this is currently scheduled for December 31, 2023. Customers need to migrate their Go based lambda functions to the al2.provided runtime, which uses …
#054 - 2023-07-174 minStop using IAM User Credentials with Terraform Cloud
I recently started using Terraform Cloud but discovered that the getting started tutorial which describes how to integrate it with Amazon Web Services (AWS) suggested using IAM user credentials . This is not ideal as …
#053 - 2023-02-196 minAutomated Cloud Security Remediation
Recently I have been looking into automated security remediation to understand its impacts, positive and negative. As I am a user of AWS, as well other cloud services, I was particularly interested in how it helped …
#052 - 2022-07-233 minMy Development Environment
I was inspired by others to document the tools I use working as a software developer professionally, and hacking on side projects out side of work. One thing to note is in my day job I work on an Apple Mac, but my …
#051 - 2022-07-054 minDiving into AWS Billing Data
Billing is an integral part of day to day AWS account operation, and to most it seems like a chore, however there is a lot to be learnt interacting with AWS Billing data. So why would you ever want to dive into AWS …
#050 - 2021-04-264 minGitHub Actions supply chain attacks
There has been a lot of press about supply chain attacks recently, these type of attacks are nothing new and understanding them is really important for developers using services such as GitHub Actions , given Continuos …
#049 - 2020-10-086 minWhy isn't my s3 bucket secure?
We have all read horror stories of Amazon Simple Storage Service (S3) buckets being “hacked” in the popular media, and we have seen lots of work by Amazon Web Services (AWS) to tighten up controls and messaging around …
#048 - 2020-03-312 minAWS Events reading list
For some time now I have been working on internal, and some product related services which use AWS events, some of this has been paired with AppSync subscriptions , slack and AWS SNS . To help everyone come up to speed …
#047 - 2020-03-103 minStarting a Go Project
Given the changes with Go Modules I wanted to document a brief getting started for Go projects, this will focus on building a minimal web service. Before you start you will need to install Go, I recommend using homebrew …
#046 - 2020-03-104 minHow do I Structure my Go Project?
Assuming you read my Starting a Go Project post you should have the starting point for a minimal go web service. For your first project it is easier to keep all your code in one folder, in the base of your project, but …
#045 - 2019-12-224 minBuilding a WLToys A979 donkey car
In my spare time I spend a bit of time building and working on a scaled down self driving RC project which uses an opensource project called donkeycar . I have been through a few generations of car, learning how both the …
#044 - 2019-12-165 minGetting started with Cognito?
The AWS Cognito product enables developers to build web or API based applications without worrying about authentication and authorisation. When setting up an applications authentication I try to keep in mind a few goals: …
#043 - 2019-08-016 minWhy CDK?
Early this year amazon web services released the Cloud Development Kit (CDK) which is best summed up by a quote from the GitHub project. The AWS Cloud Development Kit (AWS CDK) is an open-source software development …
#042 - 2019-05-123 minServerless Background jobs part 2
Step Functions allow you to build pipelines involving one or more amazon, or external service. Some examples of this are: complex customer on boarding processes jobs which provision resources then send a welcome email …
#041 - 2019-05-112 minServerless Background jobs part 1
Background jobs form the backbone of a lot of modern applications, they are used to perform a range of asynchronous tasks, from image processing through to order processing, fulfillment and shipping. Wherever there is a …
#040 - 2018-12-225 minUsing AWS DeepRacer for ROS development
So the DeepRacer was released with much fanfare by Amazon Web Services (AWS) at this years Reinvent conference in Las Vegas. This combines an off the shelf radio control (RC) car chassis, with an intel based compute …
#039 - 2018-03-014 minDiving into vgo from the Golang project
I have been looking into the Versioned Go Command which was released recently by Russ Cox . In summary this project is a pretty rethink of how golang retrieves and stores packages used to build applications, and more …
#038 - 2017-11-054 minAWS User Federation with Keycloak
As a user of Amazon Web Services (AWS) in large organisations I am always mindful of providing a mechanism to enable single sign on (SSO) to simplify the login process for users, enable strict controls for the …
#037 - 2017-05-255 minSo you want to use DynamoDB?
Over the last few months I have been working on a project which uses DynamoDB almost exclusively for persistence, this has been a big challenge for everyone on the team. As a developer, most of us are comfortable using a …
#036 - 2016-08-133 minbootstrap an apex golang project
Lately I have been using apex to build a side project, this tool stream lines building and deploying serverless applications using AWS Lambda . While working on this project I have helped others get started with golang …
#035 - 2016-08-122 minbootstrap a golang project
I have been helping a few people get up and running with golang lately and thought it was about time to post a brief getting started. This is primarily for OSX as this is what most of my colleagues use. Firstly you will …
#034 - 2015-08-082 minDevelopment with Webpack and Docker
This describes how to develop front-end projects with webpack inside a docker container using boot2docker on OSX. So firstly why would we even do this? The main aim of using docker for development is: Portable build …
#033 - 2015-07-063 minIoT Development with Docker Containers
With the almost continuous release of new Internet of Things (IoT) hardware platforms and development boards it is not surprising that SDK delivery has seen a shift to piecemeal and “some assembly required” …
#032 - 2015-05-065 minGithub Security
Having worked with Github for the last six years, commercially for the last three I thought I would do a post on security, or more specifically, protecting your projects, and the ones you work on for others, this may be …
#031 - 2015-05-033 minsyslog logging driver for Docker
This post will illustrate how to use the new syslog logging driver for Docker , along with some notes on using docker-machine . The first thing to be clear on is the syslog logging driver enables you to relay the log …
#030 - 2015-03-053 minUsing Sublime Text for Go Development
For the last 6 months I have been using Go as my primary development language and for a large part of that I have been using sublime text 3 . Along the way the go developers have released quite a few handy and time …
#029 - 2014-03-234 minGolang can I have a package manager please?
Currently golang has no standard package manager; this in my view makes it a harder for those new to the language. golang has for the most part been a pleasure to use, built-in features are well thought out and help new …
#028 - 2014-03-025 minConfiguring a simple IPv6 network
Recently I have been helping Andy Gelme with a project which uses contiki-os , and 6lowpan on a device called a MeshThing . This required us to setup a small IPv6 network from scratch, independent of the internet, this …
#027 - 2014-02-013 minGetting a new node project started with npm
The aim of this guide is to get people getting started with Node.js and npm , while also showing some of the handy commands I use to bootstrap my projects. Create your project directory. mkdir npmtest Change to the …
#026 - 2013-12-223 minAdding an ICSP header to the ATmega256RFR2
I am currently working on building a simple wireless sensor using the ATmega256RFR2 Xplained Pro Evaluation Kit . This kit includes a base board and a bunch of other peripherals to mess around with. When I started …
#025 - 2013-06-225 minHeroku logging what I have Learned
Recently I started work for a new employer who runs has a number of applications hosted on Heroku , my typical strategy when faced with a new environment and systems is try and get some monitoring in place as soon as …
#024 - 2013-02-262 minInstalling Ruby 2.0.0 with Dtrace Support
The aim of this post is to guide the reader through the process of installing ruby 2.0.0 into rbenv with dtrace probes enabled. As rbenv uses ruby-build , which currently downloads and compiles a copy of openssl rather …
#023 - 2012-12-223 minRaspberry Pi Temperature and Humidity Project Construction
For some time I have had a Raspberry Pi languishing on my desk, like many I bought one early on and played around with it for a while and then got busy with other stuff. Recently however I have been looking into …
#022 - 2012-10-207 minWhat is HMAC Authentication and why is it useful?
To start with a little background, then I will outline the options for authentication of HTTP based server APIs with a focus on HMAC and lastly I will provide some tips for developers building and using HMAC based …
#021 - 2012-06-203 minBuilding Ruby Projects with Bundler and the Bamboo Ruby Plugin
The latest release of the Ruby plugin I develop for Atlassian Bamboo now includes some new configuration options for Bundler along with a number of other additions and improvements. In this post I want to focus on the …
#020 - 2012-06-113 minBundler gems and binstubs
I have been working on an update of my Bamboo ruby plugin which uses bundler to install all the gems for a given project within the working copy of the project and then run rake using these gems. The aim of this post is …
#019 - 2012-01-092 minLess is more especially when it comes to CSS
I am currently working on new design for my site using HTML5, CSS and a sprinkling of JavaScript. Once I started building my basic design I was re-acquainted with a process that really, really annoys me; the constant …
#018 - 2011-12-074 minTips for Bamboo Plugin Developers
Having recently developed a plugin (Ruby Rake Plugin ) for Atlassian’s Bamboo continuous integration (CI) server I thought I would put together a list of tips for those looking to do the same. As there are some …
#017 - 2011-10-166 minMonitoring the OpenJDK from the CLI
Currently I do quite a bit of work in and around the Java virtual machine (JVM), most of the time on Linux. When things go awry and I am trying to establish why, I reach for the Java performance analysis tools. These …
#016 - 2011-09-105 minHow I use chef-solo with ubuntu 12.04
Having recently started working with chef I have come up with a simple method of kickstarting use of it in the small end of town. This really is designed for those of use managing a large number of very similar servers, …
#015 - 2011-09-046 minJIRA and the not so great new installer
The following post is a review of the new installer added in 4.4 of Atlassian JIRA. It details my experience with this installer and provides some advice on how to improve it. Since it’s recent release I have seen …
#014 - 2011-08-172 minRoad Testing Gradle
For a while I have been tempted to stray from the relative safety of Maven and Ant . Every time I fight with these tools, or in the case of maven am stunned and amazed out how simple things can require so much xml, I …
#013 - 2011-07-242 minHacking rails on Ubuntu with rvm
Over the last few days I have been familiarising myself with some of the rails source code and surveying it for use in my own projects. In doing so I noticed there were quite a few gotchas getting Ubuntu and ruby set up …
#012 - 2011-06-143 minGHTest Getting Started
Recently I have caught the OS X software development bug and started hacking on a small project in this environment. As I am normally pretty keen to try out new APIs and indeed a whole new language, I was keen to get …
#011 - 2011-06-074 minRHOK Survival Guide
Last weekend I was fortunate to have participated in first ever random hacks of kindness event. This was quite an amazing experience and one I really enjoyed, however going into this event I had no idea what to expect, …
#010 - 2011-05-292 minWorking with the html5boilerplate project
Recently I started work on a new site which I plan to use underscore.js and backbone.js . Starting a site from scratch can be quite a chore, as well as time consuming. To remedy this I decided to take the plunge and give …
#009 - 2011-05-262 minUsing Apache CXF And Maven With a Proxy Server
I discovered a couple of interesting issues when using Apache CXF and Maven behind a proxy this week. It started when I sent out a package of stubs in a Maven project I had built to enable developers of integration …
#008 - 2011-05-244 minHow to build server with Bamboo and Ubuntu
Recently I have been looking into setting up my own build server, having used Cruisecontrol, Hudson, Teamcity in the passed I wanted to give something new a try. With the recent release of Bamboo 3.1.1 I thought I would …
#007 - 2011-05-222 minUsing Jackson with Apache CXF
Whilst working on my Javascript, ExtJS 4 and Apache CXF skills I came across a solution to a problem I encountered getting ExtJS to talk to Apache CXF using JSON. The basis for this issue revolves around …
#006 - 2011-05-203 minApache CXF Logging Configuration
Configuring logging in Apache CXF can be confusing at first, in my view this is further compounded by Apache Tomcat’s logging architecture. In my cxf based projects the first step is to use the logging …
#005 - 2011-05-072 minBuilding Apache CXF web service clients namespace mapping
Recently I have been doing quite a bit of work around Apache CXF , both on the server side and the client side. Over the next few weeks I will post some of the tricks I have learnt. In this post I will summarise one of …
#004 - 2011-03-061 minMoving to Jekyll and Disqus
First post from my newly migrated blog reviewing migration from wordpress to Jekyll and Disqus. Jekyll for site generation. Sass for simplified css goodness. Pygments code highlighting. Disqus Following some of the sites …
#003 - 2010-12-062 minInstalling Ruby with RVM on Ubuntu 10.10
Been installing RVM on anything that runs *nix lately, ran into some issues with using this great tool on Ubuntu 10.10 . After a bit of reading I discovered a couple of solutions, either I could build and install some of …
#002 - 2010-09-022 minMaven, where I start
More often than not today I start my Java projects using an Apache Maven archetype. Whether it be for an Apache CXF based web service, a simple web application or some sort of service most are started from an archetype. …
#001