Developer Expereince

9 tools, libraries and extensions our developer can't live without (and why)

May 16, 2024

Shani Shoham

Adviser

May 16, 2024

Share your Social Media

We asked our developers 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.

  1. 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.

  1. 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 https://github.com/issmirnov/dotfiles/blob/master/zsh/config/fzf.zsh#L166, 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.

  1. 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

  1. 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.

  1. 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.

  1. 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.

  1. 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. 

  1. 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.

  1. 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.

Get started with DevZero today.

Say goodbye to localhost limitations in less than 5 minutes.

Get Started