Blog

Articles, guides, and notes on software engineering.

Contract Testing and Pact
Testing 2024-07-21

Contract Testing and Pact

A summary of my research into contract testing and Pact. It explains how contract testing verifies the interactions between a consumer and a provider, the difference between consumer-driven and provider-driven approaches, and how Pact works for testing between microservices.

#Contract Testing#Pact

Recent Posts

SLO Service Level Objectives: A Practical Guide to Implementing SLI, SLO, and Error Budgets
Operations 2024-07-20

SLO Service Level Objectives: A Practical Guide to Implementing SLI, SLO, and Error Budgets

A review of Implementing Service Level Objectives (SLO). A practical guide to adopting SLIs, SLOs, and error budgets. Starting from defining services and users, it frames reliability as whether users can do what they need, showing how to set meaningful targets while avoiding over-engineering reliability.

#SLO#Book Review
Relearning the Basics of TypeScript
Application 2024-07-20

Relearning the Basics of TypeScript

A set of notes from revisiting the fundamentals of TypeScript. Starting with a review of JavaScript basics such as variable scope, it works through TypeScript's type system and core syntax, organizing the key points and practical takeaways.

#TypeScript
Disadvantages of Jest Snapshot Testing
Testing 2024-07-18

Disadvantages of Jest Snapshot Testing

Understand the drawbacks of Jest snapshot testing including test fragility, unclear assertions, and why assertion tests are better.

#JavaScript#Jest
Web API Testing Techniques
Testing 2024-07-08

Web API Testing Techniques

A review of Web API Testing Techniques. A book that explains API testing through frameworks like asking questions with the 5W1H and the ten Ps model for grasping testability. From building test strategy and plans to security perspectives via STRIDE and threat trees, it offers views useful in practice.

#API#Book Review
About Sets
Mathematics 2024-07-06

About Sets

A summary of the basics of set theory. Starting from the definition of a set as a collection of elements satisfying certain conditions, it covers fundamental concepts such as subsets, unions, and intersections, and their applications to data structures, relational database theory, and logical expressions, framed around building problem-solving skills for software engineers.

#Discrete Mathematics#Sets
Habits for Health
Healthcare 2024-06-30

Habits for Health

Documenting my habits for health. Partly poetic, with the hope of future reflection and improvement.

#Health
Large-Scale Data Management: Best Practices for Enterprise Architecture
Architecture 2024-06-30

Large-Scale Data Management: Best Practices for Enterprise Architecture

A review of Large-Scale Data Management. It points out the limits of managing data centrally and presents thinking for moving to a scalable architecture that keeps up with change. With ideas like avoiding data warehouse silos, it lets you rethink data management from an architectural viewpoint.

#Book Review
Microservices Architecture, 2nd Edition
Architecture 2024-06-16

Microservices Architecture, 2nd Edition

A review of Building Microservices, 2nd Edition. A book worth reading if you are working on or considering microservices. It thoroughly addresses the architectural qualities (non-functional requirements) distributed systems demand, offering value even beyond a microservices-only view. Chapter 1 is a well-organized concept summary.

#Monolith#Microservices#Book Review
Building & Pushing Docker Images with GoReleaser
Application 2024-05-29

Building & Pushing Docker Images with GoReleaser

Automate Docker image builds across multiple platforms using GoReleaser with GitHub Actions for streamlined CI/CD deployment.

#Golang#GitHub Actions
From Monolith to Microservices: A Practical Migration Guide to Evolve Monoliths
Architecture 2024-05-29

From Monolith to Microservices: A Practical Migration Guide to Evolve Monoliths

A review of Monolith to Microservices. A book focused specifically on approaches for migrating from a monolith to microservices. Its longest chapter tackles database decomposition, the biggest hurdle in migration, offering practical guidance for evolving a system step by step.

#Monolith#Microservices#Book Review
Bitemporal Modeling: Valid Time and Transaction Time Explained
Database 2024-05-27

Bitemporal Modeling: Valid Time and Transaction Time Explained

Bitemporal modeling explained: how a bitemporal data model tracks two timelines, valid time and transaction time, how it differs from non-temporal and uni-temporal models, and the challenges of implementing it in a relational database.

#Bi-Temporal#Uni-Temporal#Non-Temporal#History#Temporal Data Model
Building Secure and Reliable Systems: Design, Implementation, and Maintenance from Google SRE
Security 2024-05-24

Building Secure and Reliable Systems: Design, Implementation, and Maintenance from Google SRE

A review of Building Secure and Reliable Systems. A book that frames security and reliability not as things simply implemented but as emergent properties arising from deployment and operations. Drawing on Google SRE's insights, it argues for weaving both into design from a project's earliest stages.

#Book Review#Reliability
Mistakes in Software Architecture: Development and Evaluation of Non-Functional Requirements
Architecture 2024-05-24

Mistakes in Software Architecture: Development and Evaluation of Non-Functional Requirements

A review of a book on mistakes in software architecture. Though old (published in 2010), it discusses architecture topics that still resonate today, in a casual style. Closer to an essay than a technical book, its later chapters (from chapter 6) are where the technical substance lies.

#System Design#Book Review
Exploring Permission Management Design
Architecture 2024-05-22

Exploring Permission Management Design

Understand ACL, RBAC, and ABAC permission design methods with functional/data scope, control targets, and operational constraints.

#ABAC#ACL#RBAC#Authorization#System Design#Link Collection
Unit Testing Best Practices: A Practical Guide for Developers
Testing 2024-05-21

Unit Testing Best Practices: A Practical Guide for Developers

A review of Unit Testing Best Practices. A book that compiles the thinking and approaches needed for high-quality test design. Centered on what good tests should have, such as protection against regressions, resistance to refactoring, and maintainability, it shows with many examples how to design tests with cost-effectiveness in mind.

#Design#Book Review
Trade-offs and Mistakes in Software Design: Making Better Choices in Programming
Architecture 2024-05-20

Trade-offs and Mistakes in Software Design: Making Better Choices in Programming

A review of Software Design Trade-offs and Errors. A book for learning the importance of weighing design trade-offs against each other, along with concrete examples of software design trade-offs. It teaches that considering even the reasons you did not choose an option leads to better choices.

#Design#System Design#Book Review
Learning Ruby
Application 2024-05-16

Learning Ruby

Master Ruby fundamentals using official documentation, classic books, object-oriented design patterns and practical implementation practice.

#Ruby
About Ruby Block Syntax
Application 2024-05-15

About Ruby Block Syntax

Learn Ruby block syntax with do..end and {} forms, passing blocks to methods, yield statements, and Proc/lambda closure behavior.

#Ruby
About Ruby Modules
Application 2024-05-15

About Ruby Modules

Understand Ruby modules for namespacing, mixin multiple inheritance, and providing common methods without class instantiation.

#Ruby