Blog
Thoughts on engineering, design, and building great products.
Network Diagnostic Tools
A practical network-troubleshooting toolkit and workflow: ping, traceroute, dig, ss/netstat, nc, curl, openssl, tcpdump — each inspects one layer. And how to use them in sequence to pinpoint a 'can't connect' problem.
Tracing a Request End to End
The final article: putting everything together to trace a complete https:// request — from DNS resolution, routing, the TCP handshake, TLS encryption, to HTTP and the response — with real per-phase timing. Plus a series wrap-up.
Cron and Scheduled Tasks
Have commands and scripts run on a schedule — nightly backups, weekly log cleanup. Learn crontab syntax, the common pitfalls (PATH, environment), at for one-off jobs, and a wrap-up of the whole Linux series.
Shell Scripting: Automating with Bash
Combine commands into scripts so you don't retype them and can automate your work. Learn the shebang, variables, parameters, conditionals, loops, functions, exit codes, and safe-scripting habits like set -euo pipefail.
systemd and Services
systemd is the init system that controls every service on modern Linux. Learn systemctl to start/stop/restart services, have them auto-start at boot, write your own unit files, and view logs with journalctl.
SSH and File Transfer: ssh, scp, rsync
How you actually get into a remote Linux server: SSH with key authentication (safer than passwords), a handy config file, and transferring files with scp and rsync. A foundational skill for everything you do on a server.
Basic Networking on Linux
View IP addresses and routing (ip), check which ports are listening (ss), test connections (ping, curl), and understand name resolution (DNS, /etc/hosts). Enough to diagnose most networking issues on a server.