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.
Hardware
| Category | Model |
|---|---|
| Laptop | MacBook Pro M2 / ThinkPad X1 Carbon |
| Monitor | LG 27" 4K |
| Keyboard | Keychron K2 (Brown switches) |
| Mouse | Logitech MX Master 3 |
| Headphones | Sony 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 tldrDotfiles
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
- GitHub: JoelTeoGom (opens in a new tab)
- LinkedIn: Joel Teodoro (opens in a new tab)
- Email: joel.teodoro.software@gmail.com
If you find an error or want to discuss something technical, open an issue or send me a message.