About

I'm a backend developer obsessed with understanding how things work under the hood.

This blog was born from the frustration of always finding the same superficial tutorials that tell you what to do but never why it works that way.

What will you find here?

  • Technical deep dives: I don't settle for "it works". I want to know what happens in each syscall, each packet, each goroutine.

  • Real comparisons: Go vs Spring Boot, PostgreSQL vs MySQL, Kubernetes vs bare metal. With code, benchmarks, and honest opinions.

  • CI/CD without smoke: Real pipelines, not the tutorial ones where everything works on the first try.

  • Distributed systems: Consensus, eventual consistency, and why the network fallacy will bite you.

Stack I regularly use

languages: [Go, Java, Python, Rust (learning)]
infra: [Linux, Docker, Kubernetes, Terraform]
databases: [PostgreSQL, Redis, MongoDB]
messaging: [Kafka, RabbitMQ, NATS]
observability: [Prometheus, Grafana, Jaeger]

Philosophy

"If you can't explain it simply, you don't understand it well enough."

I try to write the articles I wish I had found when I was learning. No buzzwords, no hype, just the reality of working with systems.


My Setup

My current setup for development and daily life.

neofetch
OS: Arch Linux / macOS Shell: zsh + oh-my-zsh Terminal: Kitty / Alacritty Editor: Neovim + LazyVim Font: JetBrains Mono

Hardware

CategoryModel
LaptopMacBook Pro M2 / ThinkPad X1 Carbon
MonitorLG 27" 4K
KeyboardKeychron K2 (Brown switches)
MouseLogitech MX Master 3
HeadphonesSony WH-1000XM4

Software - Development

  • Main editor: Neovim with LazyVim config
  • IDE when needed: IntelliJ IDEA (Java), GoLand (Go)
  • Terminal: Kitty with tmux
  • Git GUI: lazygit (CLI > GUI)
  • API testing: Insomnia / httpie
  • Containers: Docker Desktop / Podman
  • Local K8s: k3d / minikube

CLI tools I use daily

# Navigation and search
brew install fzf ripgrep fd bat eza zoxide
 
# Git and development
brew install lazygit gh delta
 
# System and monitoring
brew install htop btop procs dust
 
# Misc
brew install jq yq tldr

Dotfiles

My configuration is on GitHub: JoelTeoGom/dotfiles (opens in a new tab)

Includes:

  • Neovim (customized LazyVim)
  • Zsh with aliases and functions
  • Tmux with custom keybindings
  • Git config with useful aliases

Browser

  • Main: Firefox Developer Edition
  • Extensions: uBlock Origin, Vimium, JSON Viewer

Notes and productivity

  • Technical notes: Obsidian (Markdown + git sync)
  • Tasks: Todoist
  • Calendar: Cal.com

This blog

framework: Next.js + Nextra
styling: Custom CSS (no Tailwind classes)
hosting: Vercel
analytics: none (privacy first)

Contact

If you find an error or want to discuss something technical, open an issue or send me a message.