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.
Browse all blog posts about software engineering, Go, TypeScript, and more.
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.
Go 1.24 introduces a better way to manage project tools. Let's explore the evolution from manual installs to tools.go to the new go tool directive using OpenAPI code generation as a practical example.
My 'simple' integration with an email marketing software turned into a complex backend monster. Here’s the story of how a split-brain unsubscribe problem forced me to refactor, delete most of my code, and build a much smarter, simpler solution.
Summary of Chapter 4 from Monolith to Microservices: Practical strategies for splitting monolithic databases and managing data consistency in distributed systems.
Summary of Chapter 3 from Monolith to Microservices: Practical approaches to decomposing monolithic systems using patterns like Strangler Fig and Branch by Abstraction.
Summary of Chapter 2 from Monolith to Microservices: A comprehensive guide to planning your microservices migration strategy with clear objectives and organizational alignment.
Introduction to a blog series exploring Sam Newman's Monolith to Microservices book, covering the fundamentals of microservice architecture and evolutionary patterns.
Step-by-step guide to importing Mexico's National Electoral Institute shapefiles into a Spatialite database using macOS and QGIS.
Complete guide on setting up GORM with Golang Migrate to manage PostgreSQL database migrations in Go applications.
Step-by-step guide to converting a Node.js package from JavaScript to TypeScript using Rollup.js as the build tool.
Understanding the proper way to use Go interfaces by following the principle of defining interfaces where they're used, not where they're implemented.
How to mock Axios requests in Jest tests when using TypeScript and calling Axios as a function rather than using specific methods.
Exploring how most software development involves stitching together APIs and third-party services, drawing parallels to the art of sewing.
Implementing the Circuit Breaker pattern in Node.js using Disyuntor to build resilient distributed systems and handle service failures gracefully.
Exploring ES6 arrow functions and their lexical scoping behavior compared to traditional function binding in JavaScript.