Archive 2024
121 articles
Decision-Making Techniques for Software Architects: Leveraging Leadership, Technology, and Product Management
A review of Decision-Making Techniques for Software Architects. A groundbreaking book focused on how architects make decisions. It introduces five questions and seven principles for facing architectural uncertainty, offering solid learning for anyone heading into design.
The Art of Thought Organization
A review of The Art of Thought Organization. Though first published before the internet spread, its message, the value of thinking with your own head and not over-relying on knowledge, still resonates today. In an essay-like voice, it lays out a philosophy for organizing your thinking.
Team Topologies: Adaptive Organization Design for Delivering Valuable Software Quickly
A review of Team Topologies. A book that views organization design and architecture from a team-first perspective. Presenting four team types and interaction patterns, it prompts you to think about how to design communication between teams from the standpoint of building an adaptive organization.
AlloyDB vs Cloud SQL: Performance, Features, and Cost
AlloyDB vs Cloud SQL compared: use cases (OLTP vs HTAP), performance, availability, compatibility, and cost — and when AlloyDB has the edge over Cloud SQL Enterprise edition.
An Invitation to Engineering Organization Theory ~ Confronting Uncertainty and Refactoring Organizations
A review of An Invitation to Engineering Organization Theory. Despite the title, its real theme is uncertainty. It puts into words the many uncertainties around engineering and how to face them. From members to architects, anyone involved in software can learn from it, regardless of role.
Start with the Issue [Revised Edition] - The Simple Essence of Intellectual Production
A review of Start with the Issue (Revised Edition). A book that argues the importance of identifying the issue truly worth tackling rather than just solving a given question. It teaches that thinking deeply about the quality of the problem and starting from a valuable question shapes the quality of intellectual production.
freee Technical Book: Multi-Product Development at freee
A review of freee Technical Book: Multi-Product Development at freee. A book on the practice of multi-product development in business SaaS. It concretely discusses design decisions in the field, such as how to carve out shared operations like application and approval as domains, the relationship between the platform and each app, and the trade-offs that arise.
How to Solve It
A review of How to Solve It. A classic that teaches broadly applicable problem-solving thinking using mathematics as its material. It drives home, again and again, the importance of first understanding the problem well and approaching it from many angles through trial and error.
Mastering API Architecture: Practical Techniques for Evolving Architecture from Monolithic to Microservices
A review of Mastering API Architecture. Using C4 diagrams and ADRs, it explains API architecture patterns, testing, operations, and security. More of an overview than a deep dive, it suits grasping the big picture of evolving architecture from monolithic to microservices.
Reliability Patterns
Learn cloud reliability patterns from AWS, Azure, and GCP. Covers Circuit Breaker, Bulkhead, Ambassador, Retry, Queue-Based Load Leveling, BFF, and other fault-tolerance design patterns.
Practical Ruby Programming: Principles and Trade-offs for Effective Code
A review of Polished Ruby Programming. A book for those who, having finished the primers, want more practical knowledge. Tracing what Ruby-like code looks like through the lens of principles and trade-offs, it conveys Ruby's appeal while also teaching design ideas that transcend the language.
A Comprehensive Guide to the Distributed SQL Query Engine Trino
A review of A Comprehensive Guide to the Distributed SQL Query Engine Trino. It explains Trino, which, via ANSI SQL support and federated queries, handles data across different systems and scales resources in a distributed way for OLAP workloads. You learn an approach that differs from traditional data warehouses.
Code Reading of Pundit
Understand Ruby Pundit authorization framework through code reading, exploring permission policies and authorization mechanisms.
Code Reading of irb
Explore the inner workings of Ruby's interactive shell (irb) and understand its startup process, history loading, and command execution.
Code Reading of reline
Examine reline Ruby library internals through code reading: readline calls, line editing, and text input buffering mechanics.
RSpec Code Reading
Analyze RSpec framework internals: runner invocation, test execution flow, and result reporting mechanisms for Ruby testing.
Ruby Code Recipe Collection
A review of Ruby Code Recipe Collection. A book that compiles what you can do in Ruby and common patterns as a recipe collection. Written clearly and concisely, it is just right for beginners learning Ruby to build up their repertoire.
Cursor Pagination vs Offset Pagination: Which Should You Choose?
Compare cursor-based and offset-based pagination. Learn the performance implications, when to use each approach, and how to implement cursor pagination in SQL.
Code Reading of Sidekiq
Understand Sidekiq architecture for Redis-based asynchronous job queuing, job enqueuing, and execution flow in Ruby applications.
Created a Local Environment for Experimenting with PostgreSQL and PgCat
Set up a local PostgreSQL and PgCat connection pooler environment with Prometheus, Grafana monitoring, and Locust load testing to observe the performance impact of connection pooling.