Tinker Programmer
Author

Tinker Programmer

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

42
Articles
0
Likes
2
Views
0
Comments
Recent Articles

Latest from Tinker Programmer

42 recent articles
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.

buffered-channelchannelconcurrency
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.

Anti-PatternsDDDDomain modeling
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 TransactionsSaga
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.

Aggregate rootConsistencyDomain Events
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.

DDDDomain EventsEvent‑Driven Architecture
0 likes · 15 min read
How Domain Events Decouple Communication Between Bounded Contexts
Tinker Programmer
Tinker Programmer
Jun 30, 2026 · Fundamentals

Stop Using HashSet: Optimize LeetCode #3 Sliding Window from 8 ms to 2 ms

This article dissects the classic LeetCode #3 longest‑substring‑without‑repeating‑characters problem, shows why a HashSet‑based solution incurs heavy boxing overhead, and walks through three progressive optimizations—using a boolean array, index‑jumping with an int array, and refined update timing—to shrink runtime from 8 ms to about 2 ms, while highlighting common pitfalls and best‑practice guidelines.

AlgorithmHashSetLeetCode
0 likes · 12 min read
Stop Using HashSet: Optimize LeetCode #3 Sliding Window from 8 ms to 2 ms