A personal list of useful software engineering resources that may have been lost in my browser's history otherwise.
- The Twelve-Factor App
- A Hitchhiker’s Guide to Caching Patterns
- Microservices Production Readiness Checklist
- Simple systems have less downtime
- Maintaining a medium-sized Java library in 2022 and beyond
- Modern Best Practices for Testing in Java
- Map.merge() - One method to rule them all
- What is the point of extending a sealed class with a non-sealed class?
- How the JIT compiler boosts Java performance in OpenJDK
- The Log: What every software engineer should know about real-time data's unifying abstraction
- Turning the database inside-out with Apache Samza
- Squeezing the firehose: getting the most from Kafka compression - overview and comparison of the available message compression methods
- Optimizing Kafka producers
- How a Distributed SQL Database Boosts Secondary Index Queries with Index Only Scan - reading data directly from the index (PostgreSQL)
- The Skip Locked feature in Postgres 9.5 - turning PostgreSQL into a simple job queue
- The What, Why, and When of Single-Table Design with DynamoDB
- Prometheus Range Vectors series
- How does a Prometheus XYZ work? series
- How to Write a Git Commit Message
- A better git blame with --ignore-rev - ignoring certain revisions (e.g.
code formatting) from
git blame
output
- CUPID for joyful coding - an interesting and pragmatic alternative to SOLID (Composable, Unix philosophy, Predictable, Idiomatic, Domain-based)
- Kent Beck's four rules of simple design - passes the tests, reveals intention, no duplication, fewest elements
- Safe to fail vs fail safe - unless building a spacecraft, recovering from failures quickly may be more important than avoiding all possible issues in the first place
- Exploratory refactoring - learning the codebase through the refactoring
- The Best Code Review - tips on how to turn code review into a pleasant, and productive experience
- The ownership trio - true ownership requires all 3: mandate, knowledge, and responsibility
- The documentation system - tutorials, how-to guides, explanations, and references (all serve a different purpose)