RSSAmplifier

Blog

Martin Brennan

I’m Martin Brennan, and I’m a full stack staff software engineer based in Australia, currently working for Discourse. I primarily enjoy working with Ruby, Rails, and JavaScript, with a focus on product engineering. I’m always seeking ways to expand my knowledge and learn about new tools, languages and frameworks.

martin-brennan.comRSS feed ↗10 posts

Latest posts

Recent Discourse blog posts

I’ve contributed a couple of articles recently to the Discourse blog: January 2026 - AI can code, but it doesn’t care about quality This along with my article My AI appetites are already feeling slightly outdated in such a fast-changing field, but I am still overall happy with my position here. I’ll likely write another article in the next months covering how my AI usage has changed and how I am…

My AI appetites

I’d say my overall attitude to using AI for software engineering is still in the “cautious” phase (it gives me the ick when people say bullish and bearish), but more and more I am integrating it into my day-to-day work and responsibilities at Discourse. In this article, I will go into some things that I am finding AI tooling useful for, and some areas where I wish it would improve, or that I am…

Cleaning up this blog with AI

It has been several years since I wrote a post on this blog. Part of this is not really feeling like something I have worth articulating here (though that is changing a little lately), but a bigger part is that it felt like a huge amount of work to get this blog into a state where I didn’t feel like it was full of outdated articles and junk metadata. Something a little more current. Well, we now…

Batch convert HEIC files to JPEG on Windows

I doubt this is still relevant in 2025. I got a new iPhone recently, and getting the photos off of it onto my PC in a way in which Lightroom could import them was a painful experience to say the least. There are a few settings on the iPhone now which cause the photos to be stored in a new HEIC format from Apple, instead of plain old JPEG. When connecting my iPhone to my Windows PC I had all sorts…

HiDPI fix for Spotify on Ubuntu

In 2025 this is likely irrelevant, leaving it up for historical curiosity only. There are many HiDPI/4K scaling issues on Ubuntu and Linux in general, and one of the most annoying is that Spotify becomes a music player for ants. To fix the tiny UI, you can first find where Spotify is installed on Ubuntu by searching for it in Applications, right clicking on the application and clicking properties.…

Taming power-hungry linux laptops

In 2025 I doubt this is helpful, leaving it up as a historical curiosity. My Discourse laptop is an XPS15 7590 with the following specs: 32 GB, 2 x 16 GB, DDR4, 2666 MHz 1 TB M.2 PCIe NVMe Solid-State Drive NVIDIA® GeForce® GTX 1650 4GB GDDR5 15.6” 4K UHD touch display Out of the box, after installing Ubuntu and KDE plasma, this thing on battery power acted like Daniel Plainview in There Will Be…

Six weeks at Discourse

I meant to make a post about this when I started, but I have now been working at Discourse as a Software Engineer for six weeks! The best things about working at Discourse are: The team (39 people and growing, largest I have ever worked on) is fully remote and distributed across every continent! (well, except Antarctica) Asynchronous work culture has been the core of the company since its…

CSV header converters in Ruby

The CSV library in the Ruby stdlib is a really great and easy to use one, and I’ve often used it for data migrations and imports. When importing data I often find it useful to validate the headers of the imported CSV, to ensure that valid columns are provided. Some users may provide columns in different cases to what you expect or with different punctuation (including spaces etc.). To normalize…

Per-page background images using prawn and Ruby

Prawn is an excellent PDF generation library for ruby, and we use it for all our PDF needs at work (Webbernet at time of writing). Their manual is some of the best documentation I have read. Recently, I needed to set a different background image on every page of a PDF I was generating.

Prevent remote: true links opening in new tabs or windows in Rails

Since 2019 a few things have changed: Rails’ UJS stack may no longer use jQuery or $.rails, so this code may break or not even apply. Monkey-patching internal UJS behavior is brittle and often causes accessibility or maintenance issues. Better approaches now exist. Provide HTML fallback responses for remote links, intercept clicks via JS rather than removing URLs, or use modern Rails front-end…