I asked our developers at DevZero to give us the tools the tools they are in-love with and that started a long thread of opinions and debate. We summarised it for you here.
FZF
fzf plugs into almost every alias I have including shell history, which allows me to operate in the CLI using 1-5 keystrokes instead of typing out extremely long commands. Here's a good tutorial of using FZF.
Silver Searcher
There are other CLI search tools for code: grep, ripgrep, etc. or actual search tools (Sourcegraph, Github, IDEs), but I always reach for Silver Searcher/Ag. Ag is a code-searching tool similar to ack, but faster. The syntax is pretty good and it’s very helpful when I just want something basic such as when I’m just looking for the string Config (I don’t use complex regex).By the way fzf.zsh, combines ag with fzf to do instant full text search recursively over the current directory, and then pops you into vim at that exact file line.
VS Code
VS Code just works, and the marketplace is great and while the software can get a bit degraded from time to time, even "bad state" is more than good enough
Tailscale
Tailscale simplifies network management, enhances security, and facilitates remote collaboration, ultimately enabling them to focus on their core development tasks without worrying about networking complexities.
K9s
Typing out all the kubernetes commands is so annoying, and I find that K9s is actually better than most visual kubernetes interfaces. It also works everywhere.
Graphviz
Graphviz is a graph visualization tool - useful for visualizing things such as flow charts. You write out the graph in a special language called the "DOT language" where you specify what's in the graph, and graphviz handles all of the layout / visualization for you. It is insanely easy to programmatically create directed graphs and I use it when debugging complex state machines. I have a CLI shortcut to render those graphs in my command-line. It is also really useful to map out network topologies.
It helped me plan out network topologies for datacenter deployments, as well as help save me countless hours debugging complex code with lots of state flying around.As a bonus, here’s the code behind Graphviz.
Emacs
While Emacs has been around since the 70s. Its extensive library of add-on packages, which allow me to tailor the editor to their specific workflow and needs. Syntax highlighting, code completion, version control integration, and a built-in terminal emulator, making it suitable for me for a variety of programming tasks.
Strace
Strace is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. it provides detailed insight into the behavior of Linux processes, helps diagnose issues, and aids in performance optimization. Its versatility, compatibility, and ease of use make it an indispensable tool for Linux developers.
KubeShark
Debugging Kubernetes nodes is a nightmare. The amount of information is vast and the granularity isn’t great. Kubeshark is an API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters.
Top comments (2)
Absolutely great article! Love fzf, and the compilation of tools is incredible!
This is awesome!! Def can't live without VS Code and K9s
Tailscale is also a great exercise in how amazingly complex software can be presented w/ super simple UX -- definitely shows the level of depth to which the Tailscale team has gone to make this possible