Tech

2026
Building listentotaxman-cli with OpenCode + Claude Sonnet 4.5
2025
Building gh-saved-issues using ChatGPT Codex
Automated npm secret rotation in GitHub Actions
Run a container on a schedule with ECS
Pin your GitHub Actions
2024
Designing OpenAPI schemas
2023
GitHub Actions notifications in Slack
Accessing secrets from forks safely with GitHub Actions
Set created_at with GitHub Actions when a PR is merged
Providing both default and named exports in JavaScript
Testing Node.js SDKs with nock
GitHub scheduled reminders
Check permissions in a GitHub Actions workflow
2022
Running gickup on a QNAP NAS
Secrets management in Kong is now GA!
Announcing general availability of Kong Gateway 3.0
API composition with StepZen and Kong
Managing multiple environments with Konnect and Runtime Groups
Using openvpn-client with Docker
The GitHub wiki is an anti-pattern
2021
Log4j, Log4Shell and Kong
4 ways to leverage Kong's jq plugin
Test experimental versions with GitHub Actions
Dynamic matrix generation with GitHub Actions
Getting started with problem matchers
The ultimate guide to GitHub Actions authentication
Deploying a Kong Gateway data plane with Pulumi
Getting started with event hooks in Kong
Kong-plement your ServiceHub with a dev portal
Test OpenGraph image generation on Netlify locally
Migrating from Kong Gateway OSS to Konnect
Building a Kong Gateway plugin with JavaScript
Dump context action
Auto-approve workflow action
Markdown Meta action
Generating OpenGraph images with Netlify on-demand builders
YAMLer Action
GitHub Slug action
Create or Update PR action
Pause Laravel queue execution
GitHub Push action
Add and Commit action
Git auto-commit action
Require Labels action
Merge Schedule action
Perform an action on team creation with Laravel Jetstream
Dedicated test databases with Laravel Sail
Faster GitHub Actions with Build and Tag Action
Ensure your GitHub Actions are pinned to a SHA
2020
Show GitHub Actions
git shortlog reviewed-by
Follow GitHub Link headers with Bash
Action Router
Semantic versioning for GitHub Actions
Improve your GitHub Actions security
2019
GraphQL is powerful, but the experience isn't designed
Create a GitHub Action using actions-toolkit
Testing GitHub Actions with act
Create a GitHub Action with Docker
Play an audio file into a voice call with PHP
2018
Building a Turkey Timer with Laravel and Facebook Messenger
Call whisper with selective audio controls
Multitrack call transcription with split recording
Custom content types in Hugo
Creating a new Hugo theme
Receive an inbound voice call with PHP
Receiving SMS delivery receipts with PHP
Receiving an SMS with PHP
Dual channel call transcription with Nexmo
PSR-15 middleware, Zend Expressive and versioning
Middleware, Slim and versioning
Nexmo at Midwest PHP 2018
Real-time messaging with Nexmo and Laravel
Text-to-speech calls with Laravel and Nexmo
Speech-to-text with IBM Watson and PHP
Working with the Google Calendar API in Node.js
Google OAuth with Node.js
So, you want to be a wizard?
Sending and receiving SMS Laravel notifications with Nexmo
2017
A talk about naming things
Text-to-speech voice calls with PHP
Sending SMS messages with PHP
2FA logins with Laravel and Nexmo
SlimPHP and Symfony dependency injection
Bootstrap a new Laravel project with user authentication (in 5 minutes)
ChatOps with Nexmo Verify
Autoloading controllers with Composer in SlimPHP
Using controllers with SlimPHP
Using layouts with Twig and SlimPHP
Adding Twig to your SlimPHP project
Creating a new SlimPHP application
Customising the AuthController in Laravel Spark
2016
Test Kitchen, Docker and CentOS 7
Selecting a team via the URL in Laravel Spark
Git and Node.js on Azure Functions
2015
wiki
curl: (35) error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
curl: (58) unable to set private key file: 'server.key' type PEM
Self-signed SSL client certificates
Special cron entries
git and diff-highlight
2014
Writing an Ansible module using PHP
Using var_export to unit test existing code
alembic - Python migrations quick start
virtualenv and pip - a Python environment in 60 seconds
2013
A better git diff
Force flush headers using the HTTP module for Node.js
Explain, from your shell
Vim tips
Useful git commands
A better git log
Working with large files with sed
sed
.gitconfig
extract
pv | mysql
Weekly breakdown - gxpr
Bang Bang
gxpr
z
cd -
CDPATH
GRC
Building from source
Building for now
Uncaught exceptions
Debugging Node.js memory leaks
Sending messages to certain clients with Socket.io
2012
Behat + Selenium2 / WebDriver with MinkExtension
Behat + Selenium2 / WebDriver
The AWS Heisenbug