Archive 2023
75 articles
Exploring Articles on Development Productivity
Explore development productivity using DORA four keys and SPACE framework. Measure deployment frequency, lead time, and metrics.
Exploring Articles on Architecture Design and Organizational Design
Explore relationships between software architecture and organizational design through curated articles and resources on Conway's Law impacts.
Exploring Aurora Serverless
Explore Aurora Serverless v2 capabilities including multi-AZ support, auto-scaling, cost optimization, and deployment considerations for databases.
Provisioning Contact Points and Policies in Grafana
Provision Grafana contact points and alerting policies via YAML configuration files for automated Slack notifications.
How to Deal with Uncertainty in Software Development Projects
Address software project uncertainty through agile planning. Distinguish known unknowns from unknown unknowns to minimize risks.
Differences Between Pull and Push Approaches in Monitoring Systems
An overview of the differences between pull and push approaches in monitoring systems.
Approach to Architecture Design
Master staged architecture design approach to configuration diagrams for clearer thinking, better team alignment, and preventing over-design.
Distributing Go Applications with GoReleaser
Using GoReleaser to cross-compile and distribute Go application binaries.
Command to Generate ADR Template Files
Implement a Make command to auto-generate Architecture Decision Record templates with automatic numbering and status tracking capabilities.
What is GraphQL? A Complete Guide with Practical Examples
Summarizing what I researched while practicing GraphQL.
Resources Referenced for Creating an HTTP Router
Explore resources for building HTTP routers including radix trees, trie structures, and benchmark comparisons in Go.
What is a Service Mesh? How Istio and Linkerd Work Explained
Learn what a service mesh is, how the sidecar proxy pattern works, and what problems Istio and Linkerd solve for service communication inside a Kubernetes cluster.
Parallel Testing with PHPUnit on CircleCI
Execute PHPUnit tests in parallel on CircleCI using shell scripts to generate dynamic configuration and split containers.
Contextual Logging with slog
Learn contextual structured logging in Go using log/slog (Go 1.21+). Covers custom slog.Handler, structured JSON output, and injecting trace IDs from context into every log entry.
More Effective Agile
More Effective Agile
Modular Monolith Architecture: A Practical Guide and When to Choose It Over Microservices
Learn what a modular monolith is, how it differs from microservices and traditional monoliths, and when it is the better architectural choice for your team.
CQRS Explained: When to Use Command Query Responsibility Segregation
Learn what CQRS (Command Query Responsibility Segregation) is, how it differs from CRUD, and when applying it actually improves your system design and scalability.
The Saga Pattern Explained: Managing Distributed Transactions in Microservices
Learn how the Saga pattern manages distributed transactions in microservices. Compare choreography vs orchestration-based sagas and their practical trade-offs.
Side Effects of Go's response.WriteHeader
Learn why calling Go response.WriteHeader multiple times triggers the superfluous call warning. Covers how the first status code wins and how to fix duplicate WriteHeader in HTTP handlers.
Proposal to Extend ServeMux Functionality in Go Accepted
The proposal to add dynamic routing and path parameters to Go net/http ServeMux was accepted. Learn what this means for third-party routers like goblin and the future of routing in Go.