| Date |
Post |
| September 14, 2025 |
The next chapter |
| March 10, 2025 |
Ghostbuster Trap(ish) 2025 |
| March 4, 2025 |
Design; the value & perceived value |
| February 2, 2025 |
Exceptions are not normal |
| November 26, 2024 |
Sensible Edge Architecture |
| July 22, 2024 |
Venn of Utility for Micro-SaaS |
| April 9, 2024 |
Neo learns NATS.io |
| March 13, 2024 |
The bullsh** of AI and LLMs |
| September 28, 2023 |
Is GPT & Bard bad for your developer education? |
| August 28, 2023 |
International A2P SMS: worth the hassle? |
| August 15, 2023 |
Built.fm S01EP08: Mac Martine chats about grit and determination whilst building |
| August 14, 2023 |
Built.fm S01EP07: I'm joined by Mat Ryer and Bill Kennedy from the land of Golang! |
| August 13, 2023 |
Built.fm S01EP06: Ivan breaks the internet |
| August 12, 2023 |
Built.fm S01EP05: With Dagobert Renouf - meme king |
| August 11, 2023 |
Built.fm S01EP04: With Ana Bibikova - marketing for statups |
| August 10, 2023 |
Built.fm S01EP03: With Rafal Wilinksi |
| August 9, 2023 |
Built.fm S01EP02: With Giorgi Mezurnishvili |
| August 8, 2023 |
Built.fm S01EP01: Donal O Duibhir on PanSift |
| March 2, 2023 |
Signing Git repositories in GitHub |
| January 16, 2023 |
Moving up the Stack with NATS |
| November 1, 2022 |
Webhook Design Patterns |
| October 25, 2022 |
Socket disconnected before secure TLS connection was established |
| August 2, 2022 |
AWS Lambda in Go, running locally with SAM and Docker |
| August 2, 2022 |
Loosely Coupled API & Client Versioning |
| August 2, 2022 |
React & Next.js calling imported JavaScript functions |
| August 2, 2022 |
ResetGit.com |
| July 20, 2022 |
ArangoDB Summary |
| July 8, 2022 |
DDBTools: DynamoDB UpdateItem with Go the easy way |
| July 6, 2022 |
Candytext: Building an npm package |
| July 4, 2022 |
UI Calendars & Mobiscroll |
| June 26, 2022 |
AWS DynamoDB with Indexes & EC2 |
| May 24, 2022 |
Cloud Ops with Grafana Cloud |
| March 23, 2022 |
Making Tailwind Responsive |
| March 18, 2022 |
GitHub Deploy Keys and port 443 |
| March 16, 2022 |
Serverless: Beg Forgiveness Pattern |
| March 8, 2022 |
Product Management: The Buy and Whine Cycle |
| February 17, 2022 |
Webhooks - Drain Mechanism |
| November 29, 2021 |
Handling Commits in Terraform |
| August 10, 2021 |
System Architecture - a bell curve based journey |
| July 26, 2021 |
Testing Single Page Apps: React front-end & REST back-end APIs |
| July 14, 2021 |
AWS DynamoDB Local with AWS Go v2 SDK |
| April 28, 2021 |
Workflow Based Automation: Maturity and Abstraction |
| February 22, 2021 |
Operationalising your Infrastructure With GraphOps |
| December 10, 2020 |
Diary Entry: 2020 Year Wrap |
| July 20, 2020 |
Learning Vectors: Automation |
| July 7, 2020 |
Importance of Topology in Automation |
| June 3, 2020 |
Terraform Example Provider |
| February 28, 2020 |
Natural Systems vs Human Fallibility |
| February 26, 2020 |
Some Thoughts On Complexity |
| November 29, 2019 |
[4/4] Composition & Service Function Chaining in Network Service Meshes |
| November 29, 2019 |
[3/4] Composition & Service Function Chaining in Network Service Meshes |
| November 29, 2019 |
[2/4] Composition & Service Function Chaining in Network Service Meshes |
| November 29, 2019 |
[1/4] Composition & Service Function Chaining in Network Service Meshes |
| November 23, 2019 |
Signals, Go & Immutable Infrastructure |
| October 7, 2019 |
Multiple Argument Functions |
| September 20, 2019 |
Opinionated Automation: Packaged, Extensible & Closed Systems |
| September 17, 2019 |
Formalisation of Automation: WIP |
| September 9, 2019 |
Replacing a Network Element Config System with Git |
| July 1, 2019 |
Leaving Comments in Code Expressed Artefacts |
| June 7, 2019 |
Automation Workflow Patterns |
| April 24, 2019 |
IaC – unit tests with jSNAPy and Ansible |
| February 25, 2019 |
To Code Or Not To Code: Expression & Symbiosis |
| February 20, 2019 |
Automation: Tools vs Languages |
| January 31, 2019 |
Event-Driven Automation: The TL;DR No One Told You About |
| January 17, 2019 |
NAE: Some Help Dealing with Brain Block |
| January 8, 2019 |
NAE: Automation and Time |
| December 5, 2018 |
XML Unmarshal and XPath |
| October 23, 2018 |
YANG, OpenAPI, Swagger and Code Generation |
| October 19, 2018 |
Automation: Flow Control & Dimensionality |
| August 23, 2018 |
Junos Kafka & InfluxDB Exporters |
| August 16, 2018 |
gops & InfluxDB |
| July 5, 2018 |
iNOG-10 & RIPE-Hackathon |
| June 26, 2018 |
Automation for Success |
| June 14, 2018 |
Automation for Reliability |
| June 7, 2018 |
Juniper vQFX10K on ESXi 6.5 |
| May 23, 2018 |
Configuring SSL for gRPC on Junos |
| April 24, 2018 |
goFAL - File Abstraction in Go |
| April 22, 2018 |
Describing Network Automation: Automate the Coffee |
| April 5, 2018 |
Juniper JET & Golang |
| February 20, 2018 |
Automation: Easy Button vs Sentient Voodoo Magic Button |
| February 6, 2018 |
Ubuntu 16.04 git lfs broken install |
| December 11, 2017 |
A Christmas Support Story |
| November 19, 2017 |
Control: Proof-of-Concepts |
| October 30, 2017 |
Targeted Learning for Automation |
| October 17, 2017 |
Cloud Native: Upgrading a Workflow Engine or Orchestrator |
| October 16, 2017 |
Some Thoughts on Leaky Abstractions |
| October 13, 2017 |
Network Automation Engineer Persona: Part Four |
| October 12, 2017 |
Network Automation Engineer Persona: Part Three |
| October 10, 2017 |
Network Automation Engineer Persona: Part Two |
| October 9, 2017 |
Network Automation Engineer Persona: Part One |
| September 15, 2017 |
Ghost2logger Design - Part One |
| September 11, 2017 |
Declarative and Imperative Automation Thinking |
| July 31, 2017 |
Automation and State |
| July 19, 2017 |
Golang magic, package level vars, init, Init and global state |
| June 27, 2017 |
Fun with Iota |
| June 3, 2017 |
Ultimate Go, Ardanlabs, Training Course Writeup |
| May 9, 2017 |
Workflow Enhanced Networking (WEN) |
| May 2, 2017 |
StackStorm: Ghost2logger Pack |
| March 25, 2017 |
Developing Software The Right Way, with Intent and Carefulness |
| March 20, 2017 |
NFS For Network Engineers |
| March 15, 2017 |
Linux Systemd & Golang Services using Kardianos Service |
| February 27, 2017 |
Python: Real World Hacking on StackStorm (Network Engineer Focussed) |
| February 4, 2017 |
Automation: Build or Consume? |
| November 3, 2016 |
OpenStack Summit Barcelona 2016: Current State |
| October 3, 2016 |
Discussing Disruption to IT |
| September 29, 2016 |
NFV, Skills & Mutable vs. Immutable Infrastructure |
| July 3, 2016 |
Golang: Exercising pointers, interfaces, functions and wrapping |
| June 21, 2016 |
Simplify Simplify Simplify In Sales |
| May 23, 2016 |
Golang net package: UDP Client with Specific Source Port |
| January 20, 2016 |
Open Networking: The Eject Button |
| December 18, 2015 |
Business Titles: CEO, Founder, Managing Director, Proprietor |
| December 16, 2015 |
How to not present to the Swiss |
| November 3, 2015 |
OpenStack Summit, Tokyo 2015, Thursday 29th – Show Notes |
| November 2, 2015 |
OpenStack Summit, Tokyo 2015, Wednesday 28th – Show Notes |
| October 27, 2015 |
OpenStack Summit, Tokyo 2015, Tuesday 27th – Show Notes |
| October 18, 2015 |
Education for SDN from the ONF |
| September 16, 2015 |
Killer SDN Applications: A view in 2015 |
| August 11, 2015 |
Working From Home On 4G |
| July 9, 2015 |
NetDevOps: Delivering Network Levers |
| May 14, 2015 |
Validating and Searching JSON |
| April 20, 2015 |
Junos Export Policy Not Working? |
| April 7, 2015 |
Git For Network Engineers |
| April 7, 2015 |
The Zen of Sailing Through IT Projects |
| March 9, 2015 |
Cisco Live Europe 2015 – and the year ahead |
| February 2, 2015 |
Multigigabit Ethernet 2.5 / 5.0Gbps NBASE-T Alliance |
| January 26, 2015 |
Coding Basics: Python in Visual Studio |
| November 18, 2014 |
Python: Building a simple NETCONF RPC Tool |
| November 16, 2014 |
Custom Python Packages With PyPi For Networking Peoples |
| October 7, 2014 |
White Box Switching: Broadcom StrataXGS Tomahawk |
| October 3, 2014 |
IPv6 Adoption in the UK |
| September 30, 2014 |
Network Automation & Controller Questionnaire |
| September 25, 2014 |
Big Switch Tap Fabric |
| September 22, 2014 |
White Box Switching: Goodbye Trident II, Hello Cavium XPliant |
| September 22, 2014 |
Cisco ACI: Allowing the smarts to scale |
| September 20, 2014 |
Network Field Day 8 – #NFD8 |
| September 8, 2014 |
Network Aware Software: Rubbish idea or OpenDayLight Function? |
| August 26, 2014 |
Network Automation: DevOps vs NetOps and the right tools |
| August 6, 2014 |
Network Automation: Shifting Fear Landscape |
| July 21, 2014 |
DevOps Will Adopt Networking |
| July 18, 2014 |
NetDevOps – The Journey Begins |
| June 22, 2014 |
VXLAN MTU vs IP MTU Consideration |
| June 18, 2014 |
Cognitively Adjusted Networking |
| May 24, 2014 |
Using the Juniper PyEZ Library [Beginner] |
| May 24, 2014 |
CLI Scraping with Python |
| May 24, 2014 |
Using Cisco’s onePK with Python [Beginner] |
| May 24, 2014 |
From CLI to Py(thon) [Beginner] |
| April 6, 2014 |
Objectifying the network using Python [Part One] |
| April 4, 2014 |
CLEUR, OpFLEX, User Interface and Paradigm Shift |
| October 15, 2013 |
IPv4 and IPv6 Global Multicast Addressing |
| September 22, 2013 |
What are VRFs? |
| June 18, 2013 |
Junos Stretch VLAN Using SRX Branch – who needs Cisco’s OTV? |
| May 3, 2013 |
Cloud Fog – Automation and Ruby step 1 with Junos |
| October 3, 2012 |
Business Acumen in Networking |
| October 3, 2012 |
F-VRF IPsec |
| September 25, 2012 |
Skilled Teams and the not so skilled |
| September 20, 2012 |
Cisco ME3750 – EoMPLS over ES ports |