RSSAmplifier

Blog

Hector Yeomans

Staff software engineer focused on Go, TypeScript, and microservices. Writing about scalable systems, open data, and engineering leadership.

hyeomans.comRSS feed ↗27 posts

Latest posts

Build a Tiny Certificate Watcher in Go

Step-by-step guide to build a Go certificate watcher that validates TLS cert and key pairs, reports expiry, and reloads on file changes.

Secure Errors in Go With a Small Layered App

A practical walkthrough of secure error handling in Go using an HTTP, service, and repository architecture.

Knex.js and pg-boss in One Transaction

A practical knex.js transaction + pgboss pattern that keeps database writes and pg-boss jobs consistent in one PostgreSQL transaction.

Does Vibe Coding Kill Open Source? Notes on a New Paper

A plain-English breakdown of "Vibe Coding Kills Open Source" and practical ways maintainers, users, and AI toolmakers can keep OSS sustainable.

The Architectural Shift: Moving to MikroORM's Unit of Work

Why MikroORM feels different from Prisma/TypeORM, and why the Unit of Work pattern matters for complex domain logic.

Chess TUI in Go: Move History and Game State

Part 2 of building a chess TUI in Go: integrate a chess library, validate moves, track history, and delegate board state.

Building a Chess TUI in Go (Part 1): Laying the Foundation

Learn how to build a terminal chess interface in Go using Bubble Tea. This first part covers TUI fundamentals before adding chess logic and Stockfish integration.

Managing Go Tools the Right Way: From tools.go to go tool

A practical guide to Go 1.24's go tool directive, using OpenAPI code generation to compare modern tool management with tools.go.

The Best Code I Wrote Was The Code I Refactored

How a split-brain unsubscribe bug forced a refactor of an email marketing integration into a smaller, safer backend design.

Database Decomposition in Microservices

Summary of Chapter 4 from Monolith to Microservices: Practical strategies for splitting monolithic databases and managing data consistency in distributed systems.

Splitting the Monolith: Incremental Migration Strategies

Summary of Chapter 3 from Monolith to Microservices: Practical approaches to decomposing monolithic systems using patterns like Strangler Fig and Branch by Abstraction.

Charting the Path: Planning Your Migration to Microservices

Summary of Chapter 2 from Monolith to Microservices, focused on planning migrations with clear goals and organizational alignment.

Monolith to Microservices: Series Introduction

Introduction to a blog series exploring Sam Newman's Monolith to Microservices book, covering the fundamentals of microservice architecture and evolutionary patterns.

Importing INE Shapefiles into a Spatialite Database

Step-by-step guide to importing Mexico's National Electoral Institute shapefiles into a Spatialite database using macOS and QGIS.

How to Use GORM and Golang Migrate

Complete guide on setting up GORM with Golang Migrate to manage PostgreSQL database migrations in Go applications.

Gasto público en medios en Sonora: 108 millones

Investigación sobre el gasto público en medios de comunicación del Gobierno de Sonora: 108 millones de pesos entre enero 2022 y junio 2023.

Cuenta Pública 2023: Hacienda

Análisis de las observaciones del ISAF a la Secretaría de Hacienda de Sonora, revelando irregularidades financieras y problemas de control interno.

Dietas en el Congreso Sonora: ¿quién ha recibido la mayor dieta?

Análisis detallado de las dietas pagadas a diputados del Congreso de Sonora entre 2018-2022, con datos obtenidos mediante transparencia.

Convenios de Comunicación

Análisis de los convenios celebrados entre diferentes medios de comunicación y el gobierno en Sonora, basado en solicitudes de transparencia.

Adjudicaciones directas en Sonora: Un breve análisis de seis años

Análisis de las adjudicaciones directas en Sonora de 2018 a 2023, explorando tendencias y evaluando la transparencia en la gestión pública.

Convert node package with Typescript and Rollup

Step-by-step guide to converting a Node.js package from JavaScript to TypeScript using Rollup.js as the build tool.

Golang and interfaces misuse

Understanding the proper way to use Go interfaces by following the principle of defining interfaces where they're used, not where they're implemented.

Typescript, Jest and Axios

How to mock Axios requests in Jest tests when using TypeScript and calling Axios as a function rather than using specific methods.

Software as stitching

Exploring how most software development involves stitching together APIs and third-party services, drawing parallels to the art of sewing.

Resilience with Disyuntor - Circuit Breaker

Implementing the Circuit Breaker pattern in Node.js using Disyuntor to build resilient distributed systems and handle service failures gracefully.

Redis, STunnel, and C#

Setting up SSL-encrypted communication between a C# application and Redis using STunnel as the SSL proxy.

ES6 Arrow Functions and Lexical Scope

Exploring ES6 arrow functions and their lexical scoping behavior compared to traditional function binding in JavaScript.