# Paul Gross's Blog > Technical blog by Paul Gross, a Principal Software Engineer with expertise in payments, PostgreSQL, high availability systems, and developer tools. ## About the Author Paul Gross is a Principal Software Engineer based in Seattle. He has worked at Rvvup, Ripple, Braintree/PayPal, and ThoughtWorks. Now, he primarily does independent consulting. His expertise spans payments systems, database scaling, high availability architecture, and developer productivity. - Website: https://www.pgrs.net - GitHub: https://github.com/pgr0ss - Twitter: https://twitter.com/pgr0ss - LinkedIn: https://www.linkedin.com/in/pgr0ss/ - Mastodon: https://hachyderm.io/@pgr0ss - Bluesky: https://bsky.app/profile/pgr0ss.bsky.social ## Key Topics - PostgreSQL scaling, operations, and best practices - Payment systems architecture and lessons learned - Double-entry ledgers and financial software - High availability and zero-downtime deployments - DuckDB for data analysis - Developer tools and productivity ## Notable Articles ### PostgreSQL & Databases - [Safe Operations For High Volume PostgreSQL](https://www.pgrs.net/2014/05/14/safe-operations-for-high-volume-postgresql/): Practical guide to running schema migrations without downtime on high-traffic PostgreSQL databases. Covers safe vs unsafe operations and workarounds. - [Scaling PostgreSQL at Braintree: Four Years of Evolution](https://www.pgrs.net/2012/10/16/scaling-postgresql-at-braintree-four-years-of-evolution/): Journey from MySQL to PostgreSQL, implementing sharding, and moving from DRBD to streaming replication. - [Two Exciting PostgreSQL Features to Improve Null Handling](https://www.pgrs.net/2023/11/14/two-exciting-postgresql-features-to-improve-null-handling/): Coverage of IS DISTINCT FROM and NULLS NOT DISTINCT features. - [DuckDB as the New jq](https://www.pgrs.net/2024/03/21/duckdb-as-the-new-jq/): Using DuckDB for command-line JSON and CSV processing. - [DuckDB over Pandas/Polars](https://www.pgrs.net/2024/11/01/duckdb-over-pandas-polars/): Why SQL with DuckDB can be simpler than Pandas/Polars for data analysis. ### Payments & Ledgers - [Lessons Learned From Payments Startups](https://www.pgrs.net/2024/01/26/lessons-learned-from-payments-startups/): Comprehensive guide covering modular monoliths, continuous deployment, testing strategies, decision logs, and the job drain pattern. - [Double-Entry Ledgers: The Missing Primitive in Modern Software](https://www.pgrs.net/2025/06/17/double-entry-ledgers-missing-primitive-in-modern-software/): Why ledger modeling should be used more widely, with examples for payments, reward points, and more. - [pgledger: Ledger Implementation in PostgreSQL](https://www.pgrs.net/2025/03/24/pgledger-ledger-implementation-in-postgresql/): Introduction to pgledger, a pure PostgreSQL double-entry ledger implementation. - [pgledger in PostgreSQL is Fast](https://www.pgrs.net/2025/05/16/pgledger-in-postgresql-is-fast/): Performance benchmarks showing pgledger handling 10,000+ transfers per second. ### High Availability - [High Availability at Braintree](https://www.pgrs.net/2013/02/21/high-availability-at-braintree/): RubyConf Australia talk on building highly available payment systems. - [How We Moved Our Data Center 25 Miles Without Downtime](https://www.pgrs.net/2012/01/10/how-we-moved-our-datacenter-25-miles-without-downtime/): Techniques for zero-downtime infrastructure migrations. - [Testing Isn't Enough: Fighting Bugs with Hacks](https://www.pgrs.net/2014/12/20/testing-isnt-enough-fighting-bugs-with-hacks/): Defense-in-depth strategies for preventing bugs in critical systems. ### Developer Tools - [Simple Command Line Function to Decode JWTs](https://www.pgrs.net/2022/06/02/simple-command-line-function-to-decode-jwts/): Using jq to decode JWTs locally without web tools. - [ULID Identifiers and ULID Tools Website](https://www.pgrs.net/2023/01/10/ulid-identifiers-and-ulid-tools-website/): Introduction to ULIDs as an alternative to UUIDs. - [Storing External Requests](https://www.pgrs.net/2023/12/14/storing-external-requests/): Why storing API request/response data in your database aids debugging. ## Open Source Projects - [pgledger](https://github.com/pgr0ss/pgledger): A pure PostgreSQL double-entry ledger implementation with atomic transactions, account versioning, and full SQL queryability. ## For More Information - Full article list: https://www.pgrs.net/llms-full.txt - Detailed LLM page: https://www.pgrs.net/for-llms/