Tech Musings
Author

Tech Musings

Capturing thoughts and reflections while coding.

53
Articles
0
Likes
94
Views
0
Comments
Recent Articles

Latest from Tech Musings

53 recent articles
Tech Musings
Tech Musings
Dec 28, 2025 · Backend Development

Speed Up Spring Boot Docker Builds with Jarmode Layered Images

Learn how to dramatically reduce Docker build times for Spring Boot applications by using the official Jarmode=tools layered jar feature, extracting layers, and employing multi‑stage Dockerfiles with optimized runtime settings, caching strategies, and optional security and performance enhancements.

DockerJarmodeLayered Images
0 likes · 8 min read
Speed Up Spring Boot Docker Builds with Jarmode Layered Images
Tech Musings
Tech Musings
Dec 21, 2025 · Fundamentals

How to Overcome NAT Barriers: VPS Relays and Nginx UDP Proxy Explained

This article examines practical ways to bypass NAT restrictions for UDP communication, covering direct P2P for friendly NATs, UDP hole punching for symmetric NATs, reliable VPS relays for any NAT, and Nginx’s UDP proxy, complete with configuration examples, workflow diagrams, and a comparison to traditional NAT behavior.

NATUDPVPS
0 likes · 8 min read
How to Overcome NAT Barriers: VPS Relays and Nginx UDP Proxy Explained
Tech Musings
Tech Musings
Dec 18, 2025 · Fundamentals

Why UDP Struggles Behind NAT: Understanding Symmetric vs. Full Cone

This article explains how UDP’s simplicity is challenged by various NAT types, compares Symmetric and Full Cone NAT behaviors, shows Go code for multi‑server UDP communication, and outlines P2P hole‑punching techniques and real‑world NAT diversity.

Full Cone NATNATP2P
0 likes · 10 min read
Why UDP Struggles Behind NAT: Understanding Symmetric vs. Full Cone
Tech Musings
Tech Musings
Nov 30, 2025 · Information Security

Uncovering Bot Traffic: Why AI Crawlers Dominate 47% of My Site’s Visits

A comprehensive analysis of a year‑long Nginx log dataset reveals that nearly half of all requests come from bots—especially AI crawlers—while real users account for less than half, highlighting security threats, attack patterns, and the effectiveness of blacklist defenses across monthly, daily, and hourly dimensions.

AI crawlersbot trafficsecurity analysis
0 likes · 21 min read
Uncovering Bot Traffic: Why AI Crawlers Dominate 47% of My Site’s Visits
Tech Musings
Tech Musings
Nov 27, 2025 · Backend Development

Can Go’s GreenTeaGC Beat the Standard GC? Benchmark Results Revealed

A comprehensive benchmark compares Go's experimental GreenTeaGC (enabled via GOEXPERIMENT=greenteagc) against the standard GC using 30,000 and 50,000 long‑lived TCP connections, measuring GC pauses, heap usage, CPU load and scalability, and finds no decisive performance advantage.

Backend DevelopmentGarbage CollectionGo
0 likes · 17 min read
Can Go’s GreenTeaGC Beat the Standard GC? Benchmark Results Revealed
Tech Musings
Tech Musings
Nov 4, 2025 · Backend Development

Simplifying a Four‑Layer TCP Proxy in Go: From Custom Goroutine Loops to io.Copy

The article recounts the original complex implementation of a four‑layer TCP proxy in Easegress, explains why using separate read/write goroutines and custom buffers caused error‑handling and flow‑control difficulties, and then shows how switching to Go's io.Copy (and its variants) dramatically simplifies the code while preserving performance through zero‑copy techniques.

GoProxyTCP
0 likes · 17 min read
Simplifying a Four‑Layer TCP Proxy in Go: From Custom Goroutine Loops to io.Copy
Tech Musings
Tech Musings
Dec 4, 2021 · Backend Development

How Byte Buddy Powers Java Agents: Classloader Tricks and Dependency Solutions

This article explores using Byte Buddy to build Java agents, detailing the premain method, class loading mechanisms, handling dependency conflicts with Maven shade versus custom classloaders, and implementing a Dispatcher to bridge agent and application classloaders, providing practical code snippets and diagrams for each step.

Byte BuddyInstrumentationJava Agent
0 likes · 9 min read
How Byte Buddy Powers Java Agents: Classloader Tricks and Dependency Solutions
Tech Musings
Tech Musings
Sep 21, 2021 · Backend Development

Migrating a Java Spring Microservice to Kotlin: Practical Steps and Pitfalls

This article shares a developer’s experience converting a Java Spring Boot microservice to Kotlin, covering why Kotlin is attractive, required Maven plugins and dependencies, code‑migration quirks such as open classes and @Jvm annotations, testing hurdles, and the final decision to revert to Java.

KotlinMavenSpring Boot
0 likes · 11 min read
Migrating a Java Spring Microservice to Kotlin: Practical Steps and Pitfalls
Tech Musings
Tech Musings
Jul 11, 2021 · Fundamentals

Why Distributed Consistency Algorithms Matter and How Raft Achieves Consensus

This article explains why distributed systems need consistency algorithms, compares weak and strong consistency, outlines the challenges of unreliable networks and clocks, and provides a detailed walkthrough of the Raft consensus protocol, its node states, state variables, RPCs, and a practical lab implementation for leader election.

Consensus AlgorithmDistributed SystemsRaft
0 likes · 12 min read
Why Distributed Consistency Algorithms Matter and How Raft Achieves Consensus