Paul Conroy
Automated Takedowns, Manual Headaches: When DMCA Bots Go Bad
Creating favicons from emojis and SVGs
Avoiding Déjà Vu: Building Resilient APIs with Idempotency
International PHP Conference, Berlin 2025
Exporting Google Slides to PDF on Mac without losing Emojis or Custom Images
CyberwiseCon / DevDays Europe, Vilnius, May 2025
Project Yellow Brick Road: Fighting Scrapers with 10 Downing Street, the White House, and Some Mildly Plausible Nonsense
Stripe Sessions 2025 Review
Creating Animated Gifs from MP4 and WebM files using ffmpeg
Upgrading Chrome in Ubuntu - Fixing the "Dependency is not satisfiable: libglib2.0-0" error
Stripe Is My DNS Provider Now: When Good APIs Meet Bad Ideas
Solving AWS Lambda's "Cannot find module 'index'" Problem
Dutch PHP Conference, Amsterdam 2025
Running Ollama on Ubuntu with an Unsupported AMD GPU: A Performance Guide
Avoiding 'Route [filament.admin.auth.login] not defined' when customising Filament root
Fixing 'A Facade Root Has Not Been Set' when testing Laravel with Pest
Serverless caching and proxying with Cloudflare Workers
Using Google Sheets as a RESTful JSON API
International PHP Conference, Munich 2024
Persistent WiFi failure on Ubuntu 24.04
PHPers Summit 2024
The Price of Privacy: How Paywalled Cookie Banners are Redefining Digital Revenue Streams
Monitoring Domain Expiration Dates using Laravel's Process Facade
Upgrading PHPUnit - "metadata in doc-comments is deprecated [...] use attributes instead"
From Backend Dev to Front and Center: A First-Time Speaker's Journey to PHP UK 2024
Slack Mobile Problems After Enabling 2FA
Idempotency - what is it, and how can it help our Laravel APIs?
Juggling Databases When Testing With Laravel: Tackling the Lock Wait Timeout Error
Navigating the Shift from Developer to Leader - Decrypt Podcast Round-up
Streamlining YouTube Integration: Icon Techniques & Best Practices for Optimised Video Loading
Building Resilient Code: Harnessing the Power of Value Objects
Streamline SEPA Bank Detail Collection: A Serverless Approach with Stripe and Cloudflare Workers
A/B testing your content on social media
Calculating rolling averages with Laravel Collections
Lazy loading background images to improve load time performance
Using a TV-style background blur to showcase portrait images in landscape layouts
Adding tenancy-awareness to Laravel queues and artisan commands
Attack of the clones - removing copied websites from the internet
Embedding Google Drive videos
Font Subsetting - shrink down font files to speed up page loads
First World Cup - Celebrations Cut Short
Minimising Cumulative Layout Shift (CLS) When Loading Responsive Ads
Diagnosing a sudden jump in "Direct" traffic in Google Analytics
Avoiding The Google Ads Two-Click Penalty
Improving Page Speed - Optimising for Core Web Vitals
Using the Measurement Protocol API to find the impact of a Consent Management Platform
Toolbar colour customisation in Chrome with theme-color
Internet connection problems with eircom efibre fixed
Jumping off the waterfall - lessons learned from an agile transition
Picture perfect – useful code visualisation tools
Mailcatcher, Vagrant & Laravel: Email testing made easy
Schrödinger’s Mysql table – does it exist?
Encoding a euro symbol in email subject lines
Mysqldump syntax error fixed
CSS & Javascript truncated by nginx
Symlink shenanigans - node.js, npm, express and vagrant
Share and share alike – Facebook Tags and Twitter Cards
The Daft.ie Property Tax Calculator – how does it work?
Talking to Joe: What’s a mention by Joe Duffy worth?
Will valid markup now help your Google ranking?
Geeks on the run
What's the best time to renew an ad on Daft.ie?
Bookmarklets – a quick introduction!
DeCluttering Twitter, Part Deux
DeClutter Twitter