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.
2. Silver Searcher
Many developers swear by Silver Searcher as their go-to tool for quickly searching through code. With its simple syntax and fast performance, it's a favorite for those who just want to find a specific string or keyword without dealing with complex regex. 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 combination of Silver Searcher with fzf for instant full-text search and integration with text editors like vim makes it a powerful tool in any developer's toolbox.
Whether you're working on a small project or a large codebase, having a reliable search tool like Silver Searcher can save you time and frustration when trying to locate specific code snippets. Its versatility and ease of use make it a must-have for developers who value efficiency and productivity in their workflow.
3. VS Code
VS Code is a popular choice among developers for its intuitive interface, vast marketplace of extensions, and robust features. With built-in support for syntax highlighting, code completion, version control, and terminal integration, it's a comprehensive editor that caters to a wide range of programming tasks. Despite occasional performance issues, many developers appreciate the overall quality and functionality of VS Code for their daily coding needs.
Whether you're writing frontend code, backend scripts, or working on a complex project, having a reliable code editor like VS Code can streamline your development process and enhance your coding experience. Its flexibility and customization options make it a top choice for developers looking for a versatile and powerful tool to support their coding efforts.
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.