I've been working with data for almost 20 years and spent over a decade keeping databases alive at scale, under pressure, across most major platforms. I'm a DBA who doesn't believe in silos: I work with SQL Server, PostgreSQL, MongoDB, MySQL, Redis, and whatever else the architecture calls for.
There's no substitute for experience, but sharing it is the next best thing. This blog is where I write up what I've learned across nearly 20 years of database work: the patterns, the pitfalls, and the fixes that actually hold up in production.
Based in Ireland with my wife, two kids, and a dog named Daisy. When I'm not at a keyboard I'm on a pitch, playing or coaching sport, which turns out to be pretty good training for staying calm under pressure.
I cover all of these in production, not just toy examples. Each one has its own quirks, and I've hit most of them.
The topics I keep coming back to - because they keep coming up in production.
Index strategy, query plan analysis, wait stats, execution plan regression - finding where time is actually going and fixing it.
Availability groups, replica sets, replication topologies, failover testing, RTO/RPO trade-offs across platforms.
TDE, encryption at rest, permission auditing, row-level security, and keeping auditors happy without killing performance.
Managing fleets of database instances, automation, monitoring, capacity planning, and keeping ops sane.
Transactional replication, logical replication, change data capture, and the joys of resolving conflicts at 2am.
When to use which database, how to manage them together, and why "just use Postgres for everything" isn't always right.
How I got here.
Writing up 20 years of patterns so others don't have to learn them the hard way.
Engineering leadership, still close to the data problems that got me here.
Fourteen years building and running data infrastructure for one of the world's leading professional learning platforms.
Software and BI development across financial services clients in Ireland. Where it all started.