Skip to content
Tinker Programmer
Author

Tinker Programmer

Solving problems with code, sharing practical tech insights, and leveling up together!

43
Articles
0
Likes
239
Views
0
Comments
Recent Articles

Latest from Tinker Programmer

43 recent articles
Tinker Programmer
Tinker Programmer
Jul 10, 2026 · Backend Development

Go Concurrency Interview: Alternating Print with Dual‑Channel Relay Technique

This article dissects the classic Go interview problem of printing numbers and letters alternately (1a2b…26z), explains why sleep‑based solutions fail, details deadlock and token‑count pitfalls, and presents a robust dual‑channel token relay implementation with step‑by‑step code and three key takeaways.

ChannelsSynchronizationdeadlock
0 likes · 9 min read
Go Concurrency Interview: Alternating Print with Dual‑Channel Relay Technique
Tinker Programmer
Tinker Programmer
Jul 9, 2026 · Backend Development

What Does This Go Channel Code Actually Print? A Step‑by‑Step Interview Guide

The article explains how to reliably predict the output of Go channel interview questions by drawing execution timelines, distinguishing synchronization points from print order, handling buffered vs unbuffered channels, and spotting deadlocks, providing four concrete heuristics backed by code examples and runtime observations.

Gobuffered-channelchannel
0 likes · 12 min read
What Does This Go Channel Code Actually Print? A Step‑by‑Step Interview Guide
Tinker Programmer
Tinker Programmer
Jul 8, 2026 · Backend Development

10 Common DDD Mistakes and How to Avoid Them

This article reviews ten frequent misuses of Domain‑Driven Design—ranging from over‑engineering simple CRUD apps to misusing layers, aggregates, services, repositories, and events—provides concrete counter‑examples, explains why they happen, and offers practical corrective guidelines plus a self‑check checklist.

DDDDomain ModelingJava
0 likes · 18 min read
10 Common DDD Mistakes and How to Avoid Them
Tinker Programmer
Tinker Programmer
Jul 7, 2026 · Backend Development

Why Saga Beats 2PC for Distributed Business Consistency

The article explains why traditional two‑phase commit (2PC) is unsuitable for micro‑service workflows, introduces the Saga pattern as a series of local transactions with compensations, compares orchestration‑based and choreography‑based implementations, and provides concrete design guidelines, code samples, and state‑machine persistence strategies.

ChoreographyDistributed TransactionsMicroservices
0 likes · 18 min read
Why Saga Beats 2PC for Distributed Business Consistency
Tinker Programmer
Tinker Programmer
Jul 3, 2026 · Backend Development

How Aggregate Roots Guard Business Invariants – The Final Defense Line

The article examines a payroll bug caused by exposing internal collections, then explains three immutable‑focused rules for aggregate roots—expose only through the root, keep each transaction to a single aggregate, and reference other aggregates by ID only—showing how proper design prevents consistency errors, performance loss, and concurrency conflicts in Spring Boot applications.

@TransactionalAggregate RootConsistency
0 likes · 17 min read
How Aggregate Roots Guard Business Invariants – The Final Defense Line
Tinker Programmer
Tinker Programmer
Jul 1, 2026 · Backend Development

How Domain Events Decouple Communication Between Bounded Contexts

The article analyzes the pitfalls of synchronous calls in a payroll microservice, defines domain events and their naming conventions, compares them with message‑queue messages, and presents two concrete implementations—Spring ApplicationEvent for intra‑process decoupling and RocketMQ with a transactional outbox for cross‑process communication—while also clarifying when event sourcing is appropriate.

DDDMicroservicesRocketMQ
0 likes · 15 min read
How Domain Events Decouple Communication Between Bounded Contexts