RSSAmplifier

Blog

Ian Duffy

Recent content on Ian Duffy

ianduffy.ieRSS feed ↗24 posts

Latest posts

Watching RTE Player abroad with a Tailscale app connector

RTE Player, like most Irish broadcasters, is geo locked to Ireland. When I am abroad I still want to watch it, but I have no interest in routing my entire phone through a VPN to get at it. My banking app, my email and everything else can stay on the local connection. I only want the traffic that talks to RTE to look like it is coming from home.
The tidy way to do this is a Tailscale app…

The Best Engineers Make Mistakes

You’ve just pushed code that took down production. Your heart races as catastrophic scenarios flood your mind. When you realise you’ve made a significant mistake, this moment tests you like no other.
The Reality of Engineering Mistakes In Engineering, we build complex systems with thousands of moving parts, often under time pressure, with incomplete information and questionable…

Why Your 'Perfect' Team Is Actually Falling Apart: Communication Matters

You’ve sent what you thought was a clear message, only to discover it was confusing. Or perhaps you’ve misinterpreted a colleague’s tone in a Slack message and spent the day convinced they’re upset with you.
We consistently underestimate how easily human communication breaks down and the emotional fallout.
The Hidden Cost of Miscommunication THE INNOCENT QUESTION…

Troubleshooting the Engineer's Brain

The engineering mindset is fantastic at finding edge cases and hunting bugs.
However, it often turns these same powers against you. Let’s look at how an engineer’s mindset can have too many unhandled exceptions.
Common Brain Bugs and Their Fixes CODE REVIEW DEFENSIVENESS Scenario: You receive several comments on your pull request and immediately feel a wave of shame and…

An AI-Powered Rubber Duck Is The Way Forward

Error: EACCES: permission denied, open '/var/log/application.log' You stare at the error on your screen, and frustration builds as the red text blinks at you.
You search through docs, Google, forums, and Stack Overflow. Sometimes, you even ask on IRC.
Others had similar problems, but their situations were different from yours, their solution didn’t work.
Sometimes, you think Google has…

What remote work means to me and where GrowRemote fits in

In 2019, before COVID changed how we all work, I accepted a fully remote job. This move let me leave behind Dublin’s high costs. I swapped a small apartment for a house with a garden, giving me space for hobbies.
The Good Side of Remote Work Remote work freed me from long commutes and crazy rents. It gave me control over my time like never before, letting me focus on what really matters…

Google Review Tracking

TL;DR: I’ve created an automated solution for tracking Google reviews using AWS services. The best part? You can implement it yourself! Check out the full code and setup instructions on GitHub: google-review-email-processor
A small business owner came to me with a tricky problem: he needed a way to track which customers had left reviews for his business and which hadn’t. His goal…

My Favorite Mac Apps and Tools

Hey there! I’ve been using a Mac for years, and I want to share some brilliant tools I’ve found. These apps help me work better and make my Mac even more fantastic. Let’s have a look!
Apps That Make My Day Easier 1. MeetingBar MeetingBar is like a tiny calendar in your menu bar. It shows when your next meeting is and how long your current meeting will last. Dead handy!

Seamlessly Switching Between Work and Personal GitHub Accounts with SSH, GPG, and SSH Agent

If you’re juggling work and personal GitHub accounts, switching between them manually can get frustrating. Luckily, you can set things up so that your environment automatically switches accounts based on the project directory you’re working in. This post will show you how to configure your SSH agent with 1Password, use different GPG keys and identities, and make it all work…

Keeping the Wife Happy: Building a Modern Website with Astro and TinaCMS

When my wife, Ciara, told me she wanted to start a blog, my initial reaction was, “Oh no, here we go!” I knew setting up a website could quickly become complicated, expensive, and require ongoing maintenance—something I’d rather avoid. So, what’s a guy to do?
The Classic Options: WordPress or Static Sites? The first thing that came to mind was WordPress. It’s user-friendly, which…

Exposing my desk to Home Assistant

I have a sit/stand desk. It has two buttons for control, one goes up, the other goes down. It connects to a control box via an RJ45 plug.
I wanted to connect the desk to Home Assistant so that I could use Alexa to move the desk up and down, to go to specific height percentages, and to connect to automations e.g. Via the Home Assistant OSX application Home Assistant is made aware if my webcam…

Smart heating and hot water

Smart heating systems enable you to control your home’s heating and hot water from more than just your boiler programmer. They provide fantastic convenience and may even result in reducing your energy costs.
While there are a vast amount of solutions on the market for achieving this, I struggled to find one that suited all my wants:
Must have a local interface for smart controls, not…

Combining smart switches and smart lights

Lighting is core to any smart home system. The systems attempt to make it as accessible as possible; there shouldn’t be a need to search for a light switch when entering a walkway a motion sensor should take care of it, there shouldn’t be a need to have to get out of bed to switch out the light before going to sleep, there shouldn’t be a need to run around every room before…

Live TV distribution and centralised recording

Disclaimer: The following setup is for personal distribution purposes only. If you have a TV tuner a TV license must be held.
Live TV isn’t often used in my household as most of the content we consume is via streaming services (Netflix, Disney+, Amazon Prime). I wanted a selection of Live TV to be available for those moments when we aren’t interested in committing to a 2 hour…

Downloading ECR images with nerdctl

With Docker Desktop changing their licencing many folks are in need of a replacement. Nerdctl is worthy of this, combined with Lima it provides a Docker like CLI interface.
While the CLI interface mostly remains the same, a question that might arise is “How to I pull/push images from private repositories?”
Lima provides a linux virtual environment for nerdctl to run in. By…

External authentication and authentication data forwarding with nginx

In today’s world, it is normal to see applications running on Kubernetes and exposed with ingress nginx.
Authentication can be added to any application exposed by ingress nginx by using oauth2-proxy. Using the following annotations configures nginx’s http auth request module.
nginx.ingress.kubernetes.io/auth-signin:…

6 months of working remotely at scrapinghub.com

ScrapingHub is a distributed company that builds tooling and a platform to extract data from the web. The company was incorporated in Ireland in 2010, from day 1 it was a distributed team with many staff in Uruguay and other parts of the world. Since then the company has grown and now has a team of 180 people located all around the world, last year the companies revenue was 12 million.

Exporting Confluent Cloud Metrics to Prometheus

At Kafka Summit this year, Confluent announced consumption based billing for their Kafka Cloud offering, making it the cheapest and easiest way to get a Kafka Cluster. However, due to the Kafka cluster being multi-tenanted it comes with some restrictions, ZooKeeper is not exposed and the __consumer_offsets topic is restricted, this means popular tools like Kafka Manager and Prometheus Kafka…

Local development with virtual hosts and HTTPS

When doing development locally it might be necessary to access the application(s) using a virtual host (vhost) and/or HTTPS. This post describes an approach to achieving this on OSX using Docker, which avoids creating a large mess on your computer.
Domain Name Systems (DNS) Domain Name Systems (DNS) are often referred to as the phonebook of the internet. People access information online…

Managing access to multiple AWS Accounts with OpenID

Many organisations look towards a multiple account strategy with Amazon Web Services (AWS) to provide administrative isolation between workloads, limited visibility and discoverability of workloads, isolation to minimize blast radius, management of AWS limits and cost categorisation. However, this comes at a large complexity cost, specifically around Identity Access Management (IAM).
Starting…

Scala and AWS managed ElasticSearch

AWS offer a managed ElasticSearch service. It exposes an HTTP endpoint for interacting with ElasticSearch and requires authentication via AWS Identity Access Management.
Elastic4s offers a neat DSL and Scala client for ElasticSearch. This post details how to use it with AWS’s managed ElasticSearch service.
Creating a request signer Using the aws-signing-request-interceptor library…

Azure bug bounty Root to storage account administrator

In my previous blog post Azure bug bounty Pwning Red Hat Enterprise Linux I detailed how it was possible to get administrative access to the Red Hat Update Infrastructure consumed by Red Hat Enterprise Linux virtual machines booted from the Microsoft Azure Marketplace image. In theory, if exploited one could have gained root access to all virtual machines consuming the repositories by releasing an…

Azure bug bounty Pwning Red Hat Enterprise Linux

TL;DR Acquired administrator level access to all of the Microsoft Azure managed Red Hat Update Infrastructure that supplies all the packages for all Red Hat Enterprise Linux instances booted from the Azure marketplace.
I was tasked with creating a machine image of Red Hat Enterprise Linux that was compliant to the Security Technical Implementation guide defined by the Department of…

Hello World

resource 'null_resource' 'hello_world' { provisioner 'local-exec' { command = 'echo 'Hello World'' } } Interested in automation and the HashiCorp suite of tools? If so you’ll love this blog. Through different posts we will explore lots different automation tasks utilising both public and private cloud with the HashiCorp toolset.
Thanks, Ian.