Life Begins at 40 - Now I Know What It Means

So you've heard the saying “life begins at 40”, but what does it really mean? Until recently I never really understood how life can begin at 40. Is there some sudden change? Is there a secret we get told on our 40th birthday? I'd tried asking people, but no one could really give me an answer as to what changes or why. In this article I'll explore my interpretation of this saying, and how it relates to me.
Read More

Everything on My Desk Has a Purpose

This article was originally published on LinkedIn. I often interact with people who are new to the IT industry, and in some cases, new to the workforce. I've also been involved in a number of conversations that have led to me write an article about something as seemingly simple as a desk.
Read More

Harder Isn't Better

This article was originally published on LinkedIn. An overview of the changes I've made in my life and the associated impacts of these changes.
Read More

Adding a CI/CD Pipeline

To reduce the chance of a human error affecting the a production site (especially in a team environment) it is good practice to implement a CI/CD pipeline. This post covers the implementation of a CI/CD pipeline for the AlphaGeek site. In future I will provide a more generic post about CI/CD pipelines.
Read More

6 Meetups in 6 Days (6 in 6)

This article has been written for my employer MessageMedia. This publication is exactly as I wrote the article; the article published on the MessageMedia site may contain differences due to editorial style.

Early last week I had no idea how busy this week was going to be. I'd planned to go to 3 Meetups, by the end of the week I was going to 6 Meetups, with a once day break before a 7th.
Read More

Implementing Unit Testing

When developing any dynamic functionality it is best practice to implement testing. This will ensure anytime the code is deployed it is in a working state and will provide a good user experience to the visitors/users of your service.
Read More

Symfony SMPP Bundle

A number of months ago I was involved in the migration of a message sending system to utilise SMPP for SMS sending. During this process I sent several pull requests through to a GitHub repository, but it appears the repository has been abandoned. This post will cover the process of forking this repository, merging the Pull Requests and submitting it to Packagist.
Read More

Securing S3 Bucket From Direct Access

After implementing an AWS CloudFront distribution for serving content from AWS S3 it is best practice to prevent direct access to the S3 bucket. This will prevent duplicate content issues on search engines and will also mean your content can only be accessed by the domains you expect.
Read More

Securing a Test Environment Using AWS WAF

It's very common to have some sort of test/SIT/UAT environment(s). Often this site should't be made public. When using AWS there are a number of strategies to secure the test environment(s) from limiting access by IP address (this works well if you have a static IP and/or can VPN to a fixed IP address), only permit access via a VPN connection (which can be useful in a corporate environment), or set-up the web browser and AWS WAF (works for Chrome and FireFox in a small business environment).
Read More

Why IT Recruiting Has to Change

Developers are no stranger to recruiters contacting them on LinkedIn. Often a simple "Sorry, not interested" response will work; but there comes a time when you've decided to look for a new role, so you start responding to them.
Read More