Sign in

Andrew Atkinson

@andyatkinson.com
2.5K followers 153 following 391 posts

Software Engineer, Author, High Performance PostgreSQL for Rails andyatkinson.com/pgrailsbook

PostsRepliesMedia
Andrew Atkinson @andyatkinson.com · 1h
Here at Postgres Summit 2026. Let’s chat about Rails, Postgres, books, and digital photo frames! Excited to present on the work we did at @auraframes.bsky.social tomorrow morning at 10:30 AM. bsky.app/profile/pgsu...
000
Andrew Atkinson @andyatkinson.com · 17h
Let’s go Lynx! 🏀
161
Andrew Atkinson @andyatkinson.com · 28/09/2026
🗽 Excited to be in New York this week to work with teammates at @auraframes.bsky.social and present at @pgsummitus.bsky.social on Thursday. Let‘s connect! bsky.app/profile/pgsu...
Selfie of Andrew Atkinson in NYC at LGA airport
020
Andrew Atkinson @andyatkinson.com · 27/09/2026
Let’s go Lynx! 🏀
000
Reposted by Andrew Atkinson
Brendan Buckingham @brendanwb.bsky.social · 25/09/2026
Seems the URL I originally posted isn’t resolving, so here’s the correct one: www.railsbusiness.com/2435951/epis...
railsbusiness.com
Andrew Atkinson - Rails Business
What do you do when the database is maxed out, the busiest day of your year is six months away, and you still don't know what's actually wrong? Andrew Atkinson joins us to talk through that exact scen...
011
Reposted by Andrew Atkinson
Patrick Donahue @levelbrook.bsky.social · 24/09/2026
PgBouncer 1.26 is out with two pre-auth DoS fixes, so upgrade tonight if untrusted clients can reach it. The quieter change: search_path is tracked by default now, but only on PG 18+. On 17 and older, SET search_path in transaction pooling still leaks to whoever gets the connection next.
011
Andrew Atkinson @andyatkinson.com · 23/09/2026
Couldn‘t take the heat so had to get out of the Austin. 😬 Back in sunny and 65F Minneapolis.
Minneapolis downtown looking north from the air with 35W in foreground
120
Andrew Atkinson @andyatkinson.com · 21/09/2026
Ready for bats in a few hours. #Austin
030
Andrew Atkinson @andyatkinson.com · 21/09/2026
Bringing 2 signed copies of High Performance PostgreSQL for Rails to give away at Rails World! #books #pgrailsbook
030
Andrew Atkinson @andyatkinson.com · 21/09/2026
Heading to Austin, TX for Rails at Scale Summit, representing Aura. I’ll be telling our database scaling story and how we survived peak Christmas DB load with Ruby on Rails and PostgreSQL. 🤠
1110
Reposted by Andrew Atkinson
Patrick Donahue @levelbrook.bsky.social · 05/09/2026
Every schema constraint you skip becomes an if statement in six places, and one of them will be missing. Put it in the database where it cannot be forgotten. #RubyOnRails #Rails #PostgreSQL
053
Andrew Atkinson @andyatkinson.com · 26/08/2026
Interesting speedups from recent work switching to uuid v7 primary keys: www.reddit.com/r/PostgreSQL...
reddit.com
From the PostgreSQL community on Reddit: PostgreSQL 18: 23x Faster Inserts With UUID V7
Explore this post and more from the PostgreSQL community
020
Reposted by Andrew Atkinson
Postgres Summit US @pgsummitus.bsky.social · 26/08/2026
Take a look at “How Aura Frames Scaled RDS Postgres for Peak Christmas Traffic (#1 in App Store)” with Andrew Atkinson at Postgres Summit US 2026! postgresql.us/events/postg... #PostgreSQL #postgres #conference
postgresql.us
Postgres Summit US 2026
A 3-day PostgreSQL community conference in New York City, USA.
053
Reposted by Andrew Atkinson
Franck Pachot @franckpachot.bsky.social · 07/08/2026
I see users excited by REPACK in PostgreSQL 19 (currently in beta), because it looks like a simple command that reduces table bloat. But it's not that simple. You will need to think about FILLFACTOR twice. Example in a new blog post: dev.to/franckpachot...
dev.to
PostgreSQL 19 REPACK: Choosing the Right FILLFACTOR
I see users excited by REPACK in PostgreSQL 19 (currently in beta), because it looks like a simple...
041
Reposted by Andrew Atkinson
Radim @ boringSQL @boringsql.com · 07/08/2026
Striking while the iron was hot, we took it to Postgres FM with Michael and Nik and nobody in that room can be accused of being a fanboy. postgres.fm/episodes/mvcc
postgres.fm
Postgres FM | MVCC
Nik and Michael are joined by Radim Marek to discuss MVCC, including his recent article on how Postgres chose to implement it compared to other systems.   Here are some links to things they mention...
121
Andrew Atkinson @andyatkinson.com · 31/07/2026
Postgres 18. uuidv7() applied as a new PK column default. Inserts at 2-10K calls/minute. Inserts total time dropped from 1 millisecond to around 50 microseconds, about ~20x faster. Thanks to Postgres developers for this work which enables PK index maintenance to be much more efficient!
1123
Reposted by Andrew Atkinson
Mike Dalessio @flavorjon.es · 29/07/2026
Upgrade Rails immediately, kids, this is a big one. github.com/rails/rails/...
github.com
Possible arbitrary file read and remote code execution in Active Storage variant processing
### Impact In its default configuration, a Rails application that displays image variants may allow an unauthenticated attacker to read arbitrary files from the server, including the process envi...
14930
Andrew Atkinson @andyatkinson.com · 10/07/2026
> "In other words, I am continually looking for the least complexity for the current requirements and constraints and nothing else." dannorth.net/blog/best-si...
dannorth.net
Best Simple System for Now
You can have your cake and eat it, as long as you bake it carefully. ‘We can do this the quick way and pay later, or the thorough way and pay now.’ This seems to be a fundamental dichotomy in software...
030
Reposted by Andrew Atkinson
Gülçin Yıldırım J. @apatheticmagpie.bsky.social · 30/06/2026
PostgreSQL 18 introduced temporal keys. With the release of PostgreSQL 19 Beta 1, PostgreSQL continues to build on that foundation with even more temporal features. Wrote a blog about WITHOUT OVERLAPS, PERIOD, UPDATE/DELETE ... FOR PORTION OF and more on temporal databases: xata.io/blog/postgre...
Gülçin with shoulder-length dark hair and glasses stands in front of a projection screen, pointing to code text. She is wearing a blue and green patterned short-sleeved shirt and blue jeans. The screen displays a database schema snippet with lines like "valid_period daterange" and "PRIMARY KEY". In the background, there is a dark wall, vertical wooden wall accents, and audio equipment on the left.
042
Andrew Atkinson @andyatkinson.com · 25/06/2026
Posted Part 2 of Scaling Rails at Aura Frames on Lobsters, and it's doing pretty well. If you're active there (or HMU for an invite), please take a look. Thanks! lobste.rs/s/zijb20/sca...
lobste.rs
Scaling Rails: 41M Req/Hour, 8 DBs, disable_joins: true
6 comments
121
Reposted by Andrew Atkinson
PGX @pgexperts.bsky.social · 24/06/2026
PostgreSQL 19 beta: you can start logical replication without a restart. wal_level=replica now suffices, effective_wal_level reports what is actually in effect, and sequence values finally replicate. www.postgresql.org/docs/19/rele... pgexperts.com
postgresql.org
E.1. Release 19
E.1. Release 19 # E.1.1. Overview E.1.2. Migration to Version 19 E.1.3. Changes E.1.4. Acknowledgments Release date: 2026-??-??, AS OF 2026-05-14 E.1.1. Overview …
031
Andrew Atkinson @andyatkinson.com · 22/06/2026
Here's Part 2 of the Aura Frames Christmas scaling story, focused on how we scaled Ruby on Rails from 1 to 8 databases to handle peak holiday load. #rubyonrails #databases #scaling #postgresql andyatkinson.com/how-aura-fra...
andyatkinson.com
Scaling Rails at Aura Frames: Splitting to 8 Primary DBs and Reaching #1 in the App Store
📌 Overview Ruby on Rails has helped make it possible to scale out the database layer, meeting the demands of millions of Aura Frames customers enjoying their digital photo frames. In late 2025, the te...
032
Andrew Atkinson @andyatkinson.com · 17/06/2026
If you use Hacker News and found this post on the Aura Frame Postgres scaling retrospective interesting, I'd appreciate an upvote! Thanks for considering it. news.ycombinator.com/item?id=4857...
news.ycombinator.com
Christmas Outage to #1 App Store Ranking: An Aura Frames Postgres Scaling Retro | Hacker News
040
Reposted by Andrew Atkinson
Andrew Atkinson @andyatkinson.com · 16/06/2026
Take a look at how we successfully expanded our Postgres architecture to handle millions of customers setting up hundreds of thousands of new Aura digital photo frames on Christmas Day 2025. #postgresql #databases #scaling andyatkinson.com/postgresql-r...
andyatkinson.com
From Christmas Outage to #1 App Store Ranking: An Aura Frames Postgres Scaling Retrospective
📌 Overview On Christmas Day 2024, Postgres infrastructure powering the Aura Frames API had problems under peak load, being unavailable for three hours and disrupting the experience for new customers. ...
043
Andrew Atkinson @andyatkinson.com · 16/06/2026
Take a look at how we successfully expanded our Postgres architecture to handle millions of customers setting up hundreds of thousands of new Aura digital photo frames on Christmas Day 2025. #postgresql #databases #scaling andyatkinson.com/postgresql-r...
andyatkinson.com
From Christmas Outage to #1 App Store Ranking: An Aura Frames Postgres Scaling Retrospective
📌 Overview On Christmas Day 2024, Postgres infrastructure powering the Aura Frames API had problems under peak load, being unavailable for three hours and disrupting the experience for new customers. ...
043
Reposted by Andrew Atkinson
Claire Giordano ✨ @clairegiordano.bsky.social · 12/06/2026
🎙️ New #TalkingPostgres podcast Ep40 is out! Jeremy Schneider talked user groups & co-organizing the Seattle Postgres User Group. Also: Happiness Hints, Oracle to Postgres transitions, & why "it’s like I was born to be here" 🎧 talkingpostgres.com/episodes/how... 📺 www.youtube.com/watch?v=sRod...
Jeremy Schneider in big bold letters plus a photo of Jeremy wearing a bright green jacket and an enigmatic smile, plus the Talking Postgres podcast thumbnail
083
Andrew Atkinson @andyatkinson.com · 11/06/2026
Back in 2022, Jason and I discussed the use of NOT VALID for Check and FK constraint types in Postgres. Jason asked why they're not available for NOT NULL around 43:30? Episode #160 @jasonswett.bsky.social 3.5 years later we got 'em! www.codewithjason.com/podcast/1122... bsky.app/profile/andy...
030
Andrew Atkinson @andyatkinson.com · 11/06/2026
Missed this in PG 18! #postgres We can now add "not null" constraints gradually by using "not valid" initially, which was previously limited to being used for check and foreign key constraint types. Nice. medium.com/@amaan2000mo...
medium.com
PostgreSQL 18: A Feature-by-Feature Deep Dive for Engineers Who Actually Run It
Async I/O, UUIDv7, skip scan, virtual generated columns, RETURNING OLD/NEW, OAuth 2.0, statistics-preserving upgrades, temporal constraints…
031
Andrew Atkinson @andyatkinson.com · 06/06/2026
Hey backend devs that use Postgres: get after it! Beta Testing PostgreSQL With Docker andyatkinson.com/postgresql-b...
080
Reposted by Andrew Atkinson
The Pragmatic Bookshelf ✅ @pragprog.com · 05/06/2026
Sale - The Human Side Times are wildly unpredictable right now. Supporting your human side is critical to your ability to adapt. 50% off these titles (and all previous week's titles) with code Spring2026. (AudioBook versions included) Links below
322
Reposted by Andrew Atkinson
lukas.fittl.com @lukas.fittl.com · 05/06/2026
Gave a talk today at #PGData2026 on #Postgres plan management and monitoring. Some exciting changes coming to Postgres 19, and pg_stat_plans (plan statistics) now supports the new release. Full slides from the talk: resources.pganalyze.com/pganalyze_PG...
resources.pganalyze.com
043
Andrew Atkinson @andyatkinson.com · 05/06/2026
Thanks to yosifkit and Docker: up and running with Postgres 19 Beta 1. Ready to do some tests. github.com/docker-libra... #pgdata #pgdata2026
github.com
Add 19.x builds (currently beta 1) by yosifkit · Pull Request #1415 · docker-library/postgres
https://www.postgresql.org/about/news/postgresql-19-beta-1-released-3313/
061
Andrew Atkinson @andyatkinson.com · 05/06/2026
Must-reads for Postgres performance enthusiasts! Very comprehensive Radim 👏 @boringsql.com
011
Andrew Atkinson @andyatkinson.com · 04/06/2026
Humanizing Keynote from Robert Haas at PG Data 2026. It’s about the people. They’re doing hard work. It’s a huge global community. Still need more contributors! Good messages. #pgdata2026 #postgres
Robert Haas Keynote
040
Andrew Atkinson @andyatkinson.com · 03/06/2026
“A query that runs in 1ms 99% of the time and 2 seconds the other 1% has a mean_exec_time around 21ms, a number that matches none of its real executions and hides the p99 that's paging your on-call.” @boringsql.com boringsql.com/posts/pg-sta...
boringsql.com
pg_stat_statements: everything it tells you
What pg_stat_statements records and what it quietly drops: the queryid jumble that splits one query into many rows, the frozen first-seen query text, and averages that hide your p99.
130
Andrew Atkinson @andyatkinson.com · 03/06/2026
And when I’m back in Chicago, I feel it. #pgdata #pgdata2026
Chicago from the air
21225
Andrew Atkinson @andyatkinson.com · 03/06/2026
Participants are going to set up PGSS on their Docker Postgres instances and we will get into some of its features and limitations! #pgdata2026 #workshops Nice expansion on both by @boringsql.com bsky.app/profile/bori...
000
Andrew Atkinson @andyatkinson.com · 01/06/2026
Hope to see you at PG DATA 2026 in Chicago this Thursday! We'll go through a workshop in 3 parts covering Postgres query performance, index design, schema management, working with multiple databases, and more! Late registration? Code "ATKINSON50" takes 50% off 2026.pg-data.org
Trainings and SQL Performance at PG Data 2026 in Chicago with Andrew Atkinson promotional graphic
020
Andrew Atkinson @andyatkinson.com · 27/05/2026
Thanks for the shout out @jessehanley.bsky.social and the heads up about it @jesper.dev! Really enjoyed listening to the trials and tribulations of the Bento (bentonow.com) database migration! cc @aaronfrancis.com bsky.app/profile/most...
030
Andrew Atkinson @andyatkinson.com · 26/05/2026
Nobody Cracks Open a Programming Book Anymore unix.foo/posts/nobody...
unix.foo
Nobody Cracks Open a Programming Book Anymore · unix.foo
A sad look at the state of modern programming books.
130
Reposted by Andrew Atkinson
The Pragmatic Bookshelf ✅ @pragprog.com · 25/05/2026
Spring Bank Holiday, Memorial Day, Whit Monday - whatever holiday is happening around you today, take advantage of our annual SPRING SALE! Hand-picked books for right now - 50% off with code Spring2026 Details - see our most recent newsletters: pragprog.com/news/in...
221
Reposted by Andrew Atkinson
jamie @jamie.ideasasylum.com · 14/05/2026
@benediktdeicke.com congrats on the Rails PR 🎉 github.com/rails/rails/...
github.com
Add support for `RETURNING` to `INSERT`/`UPDATE`/`DELETE` statements by benedikt · Pull Request #47161 · rails/rails
Motivation / Background This pull request adds support for RETURNING clauses to INSERT/UPDATE/DELETE statements in Arel. This is useful to build queries that modify data and return it (or something...
1112
Andrew Atkinson @andyatkinson.com · 13/05/2026
I’ve got a couple of big blog posts and a book discount code dropping soon, exclusively for newsletter subscribers! Don’t miss it. Subscribe here: pgrailsbook.com
072
Andrew Atkinson @andyatkinson.com · 06/05/2026
"A roadmap to scaling Postgres" by Kaarel Moppel kmoppel.github.io/2025-04-10-p...
kmoppel.github.io
A roadmap to scaling Postgres
After meeting with another database fellow recently - the evergreen topic of database scaling popped up again. That won’t go out of fashion anytime soon I guess, despite the AI advancements and the ri...
131
Reposted by Andrew Atkinson
Peter Cooper @cooperx86.bsky.social · 03/05/2026
Rubyists! I am reviving Ruby Inside after 12 years of hiatus. I have too many Ruby things I want to blog about :-) So far I've got the archive up and running at rubyinside.com/archives/ - it's a bit of a Ruby time capsule..
rubyinside.com
Archives · Ruby Inside
43911
Reposted by Andrew Atkinson
Hussein Nasser @hnasr.bsky.social · 15/04/2026
I wrote a new book that has been in the works for years. It is called Root Cause, and it is for those who enjoy the art of backend engineering. amzn.to/4cKfZhe
071
Andrew Atkinson @andyatkinson.com · 11/04/2026
Postgres 18: Skip Scan - Breaking Free from the Left-Most Index Limitation www.pgedge.com/blog/postgre...
pgedge.com
pgEdge
Fully distributed PostgreSQL
040
Andrew Atkinson @andyatkinson.com · 07/04/2026
Did you know High Performance PostgreSQL for Rails has a forum with 30 threads? devtalk.com/books/high-p... Did you know the Rideshare, the Rails app for the book, continues to be updated with newer versions of Postgres? Learn more 👉 andyatkinson.com/pgrailsbook Thanks for taking a look!
051
Reposted by Andrew Atkinson
Phil Eaton @eatonphil.bsky.social · 31/03/2026
The best writing habit experienced developers can build is every time you spend an expectedly long time figuring something out, don't move on! Write about it. If it was interesting & confusing to you, others will find it interesting & valuable too.
4359
Reposted by Andrew Atkinson
pg-data.bsky.social @pg-data.bsky.social · 29/03/2026
Boost your PostgreSQL skills with Andrew Atkinson at PG DATA 2026! Reserve your spot: forms.gle/bijKRFF8bc4n... #PGData #PGData2026 #PostgreSQL 🐘 #SQLPerformance #ORM #DatabaseScaling #DBATraining #TechLearning #OpenSource #HandsOnTraining #DevCommunity
071