My Everyday Tools
Harutyun Mardirossian
Posted on November 17, 2024
A craftsman is known by his tools.
Jean de La Fontaine, a 17th-century French fabulist and poet
As a software engineer navigating the ever-evolving landscape of development, having a reliable toolchain is crucial to staying efficient and maintaining high-quality code. Over the years, I’ve curated a set of tools that streamline my workflow, from coding and testing to deployment and monitoring. Each tool in my arsenal serves a distinct purpose, and together, they form a cohesive ecosystem that boosts productivity while tackling complex projects. I’ll dive into the tools that shape my daily workflow as a developer, focusing on three key areas: my terminal setup, the TUI applications I rely on, and the desktop applications that streamline my tasks.
Apps
1. iTerm2 https://iterm2.com
iTerm2 is my terminal of choice because it combines power, flexibility, and convenience, making it indispensable for my workflow.
For someone who spends a lot of time on the command line, iTerm2 strikes the ideal balance between performance and user-centric features, which is why it remains my go-to terminal. Here are some of its key features I really like:
- Split Panes: Divide your terminal window into multiple panes, allowing you to run several sessions simultaneously within a single window.
- Hotkey Window: Access a terminal window instantly from any application using a customizable keyboard shortcut.
- Search Functionality: Perform on-page searches with immediate highlighting of matches, including support for regular expressions.
- Paste History: Access a history of copied or pasted text, with options to save this history to disk for future reference.
- Instant Replay: Rewind the terminal display to view past outputs, even if they've been overwritten or cleared.
- Triggers: Set up actions that execute when specific text patterns appear, such as highlighting keywords or sending notifications.
2. Boop https://github.com/IvanMathy/Boop
Boop is a free, open-source macOS application designed to simplify text manipulation tasks for developers.
It offers a straightforward interface where users can paste text and apply various operations, such as decoding URLs, formatting JSON, or converting data formats. Boop supports custom scripts, allowing users to extend its functionality to meet specific needs. By handling text processing locally, it enhances efficiency and security, eliminating the need to use online tools for these tasks. Boop offers a clean, minimalist interface where users can paste text and apply transformations with ease.
3. Zed https://zed.dev
As a developer who’s deeply passionate about Rust and its potential, I couldn’t be more excited about Zed, the new high-performance code editor built entirely in Rust.
The creators of Atom and Tree-sitter have truly outdone themselves, crafting an editor that isn’t just fast, it’s lightning fast, leveraging multi-core CPUs and GPUs to redefine responsiveness. Zed’s real-time collaborative editing, or "multiplayer" mode, feels like the future of pair programming, seamlessly blending human collaboration with AI-powered code assistance. Features like multibuffers and inline evaluation take productivity to new heights, offering intuitive ways to navigate and edit sprawling codebases. The extensibility powered by Tree-sitter and WebAssembly is a dream for developers who love tinkering. For me, Zed represents everything I admire about Rust: speed, safety, and a focus on engineering excellence. It’s more than an editor; it’s a glimpse into the future of coding.
4. Obsidian http://obsidian.md
Obsidian has become an indispensable tool for me, serving as both a note-taking powerhouse and my go-to platform for writing articles.
Built on Markdown files, it allows me to create, edit, and link notes seamlessly, creating a network of interconnected ideas that I can visualize through its interactive graph view. This non-linear approach is perfect for organizing thoughts and exploring relationships between concepts.
Key features like local storage ensure my notes are private and accessible offline, while its extensive customization options, including themes and plugins, let me tailor the app to fit my unique workflow. The active community around Obsidian adds to its power, offering plugins and themes that continually enhance its functionality. With optional features like Obsidian Sync for cross-device synchronization and Obsidian Publish for sharing notes online, it’s a truly flexible platform. Every article I write starts here, in the robust and distraction-free environment Obsidian provides, making it a cornerstone of my creative and professional workflow.
Terminal tools
1. Ollama http://ollama.com
Ollama is a game-changer for developers, offering an always-accessible AI companion that runs entirely on your local machine.
With support for macOS, Linux, and Windows, it ensures data privacy while delivering the speed and flexibility developers need. Ollama's extensive library of large language models, including Llama and Mistral, can be seamlessly integrated into existing workflows thanks to its compatibility with the OpenAI Chat Completions API. Whether you need an AI to assist with coding, debugging, or brainstorming, Ollama is ready to work alongside you, on-demand, without relying on the cloud. Its ability to run locally makes it the perfect tool for privacy-conscious developers looking for a powerful yet customizable AI assistant. Some key features:
- Local Execution: Ollama allows users to run LLMs directly on their machines, mitigating privacy concerns associated with cloud-based solutions and providing faster processing speeds.
- Model Library: It provides access to a diverse collection of models, including Llama 3.2, Phi 3, Mistral, and Gemma 2, among others, allowing users to choose models that best fit their needs.
- Customization: Users can customize and create their own models, tailoring them to specific tasks or preferences.
2. Oh my zsh https://ohmyz.sh
Oh My Zsh is a powerful, open-source framework that elevates the Z shell (Zsh) into a highly customizable and efficient command-line environment.
Designed to simplify the management of Zsh configurations, it boasts an extensive library of over 300 plugins and themes, making it an indispensable tool for developers and power users. With support for popular tools and languages like Git, Docker, and Python, Oh My Zsh streamlines workflows and boosts productivity. By combining flexibility with ease of use, Oh My Zsh empowers users to create a personalized terminal setup that is both functional and visually appealing. Whether you're optimizing your workflow or simply sprucing up your terminal, Oh My Zsh provides the perfect balance of form and function.
3. LazyDocker https://github.com/jesseduffield/lazydocker
Lazydocker is an open-source terminal user interface (TUI) that simplifies managing Docker and Docker Compose environments.
It provides a centralized interface where users can easily monitor and interact with containers, images, volumes, and networks. With features like real-time monitoring of logs and resource usage, container management tools for restarting or rebuilding services, and customizable commands, Lazydocker streamlines Docker workflows and enhances productivity. As a Go developer, I’m especially excited about Lazydocker because it showcases the power and versatility of Go in building practical, user-friendly tools that make everyday tasks more efficient and enjoyable. This tool is a perfect example of how Go can be leveraged to create something truly impactful for developers.
4 NuShell https://www.nushell.sh
Nushell is a modern, cross-platform shell that revolutionizes the command-line experience by introducing structured data handling and a rich programming language. Unlike traditional shells, Nushell processes data as typed tables, allowing seamless filtering, sorting, and transformations directly within the shell.
It supports various data formats, including JSON, YAML, and Excel, and features built-in commands for tasks like HTTP requests, directory navigation, and file manipulation. Designed for Linux, macOS, Windows, and BSD, Nushell offers a unified, extensible experience across platforms. What makes Nushell even more exciting is that it’s written in Rust.
5. Helix Editor https://helix-editor.com
Helix is the final tool I recommend, and as a Vim alternative with batteries included, it’s a game-changer for modern developers. Built in Rust, Helix brings the speed, safety, and efficiency Rust is known for to the world of text editing.
It features a modal editing interface, inspired by Vim and Kakoune, that feels intuitive yet powerful, while offering advanced capabilities right out of the box. With multiple selections for simultaneous editing, Tree-sitter integration for precise syntax highlighting, and robust Language Server Protocol (LSP) support for code completion and diagnostics, Helix eliminates the need for extensive configuration or plugins. If you’re looking for a sleek, modern editor that pairs Vim’s philosophy with built-in features for today’s workflows, Helix is a must-try.
Conclusion
I deliberately chose not to mention popular tools like VS Code, JetBrains, or mainstream database tools in this article. Instead, my focus was on highlighting processes and the lesser-known but equally powerful tools that often go unnoticed in the shadow of widespread hype. While those well-known tools are excellent, they’ve already had more than their share of attention on the web. My goal was to shine a light on the hidden gems that can truly enhance your workflow but might have been overlooked due to the overwhelming buzz surrounding the usual suspects. By exploring these alternatives, I hope to offer a fresh perspective and inspire you to discover tools that could revolutionize your approach to development.
Posted on November 17, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.