6 Must-Have Tools for Developers

Lighthouse, direnv, and more

Michael Vinh Xuan Thanh
Mar 10 · 4 min read
Photo by Evgeni Tcherkasski on Unsplash

Oh My Zsh

Oh My Zsh is a wrapper for Z shell that makes your terminal a delightful tool to work with.

On top of various themes, convenience functions, and built-in defaults, you enjoy various plugins for extended functionality, including Docker, Kubernetes Kubectl, and tmux, among other things.

My favorite features are the tab completion and tab cycling. I can rapidly traverse directories and files just by pressing Tab repeatedly.

Did I mention how cool my prompt is? It gives me everything I need at any given time:

This Oh My Zsh theme is geoffgarside, and my color scheme in iTerm2 is Tango Dark. Look at more iTerm color schemes here.


direnv is a shell extension that automatically loads environment variables when you into a directory.

This thing has saved me so much time, especially when I’m working on numerous projects that all require different ENV variables — or even different values for the same ENV variables.

It’s easy to install, and it’s even easier to write the file because it’s just a bunch of statements that you’re already writing in your or files.

When you exit outside of the directory with the file, it automatically unsets those ENV variables. Convenient!

See it in action below.

Lighthouse/Chrome DevTools

Lighthouse (with functionalities built into Chrome) is an open-source plugin for checking the performance of your website.

With everything from text compression to render-blocking resources, the tool scans a given website and generates a report to help you figure out what things are slowing down your page.

This is hugely important for both making websites performant as well as accessible.

Lots of developers jump into web development and mostly learn to put together websites that look really nice. But performance is an often-ignored tenet that’s arguably just as important as aesthetic.

Some websites are so massive in size and load so many resources they’re practically unusable on slow internet connections or drain huge amounts of the battery on mobile devices.

Use it and see how much you can speed up and optimize your website.

Note: This tool is also available to run against locally hosted web servers via Chrome Web Tools. Cmd+Alt+I → Audit Tab → Generate Report.

vim-plug and MELPA Stable

If you’re an avid Vim or Emacs user, you’ll know there are tons of highly useful plugins for both text editors to make life easier.

From syntax highlighting to symbol indexing, these plugins can either add a little convenience or basically turn your text editor into the most intense thing since metal music. For example, check out Emacs Live’s Clojure features.

vim-plug and MELPA Stable are plugin managers for Vim and Emacs, respectively. Using them to install all of the plugins you need makes the entire experience seamless and built-in.

Using vim-plug to install/update Vim plugins

command-line fuzzy finder (fzf)

The command-line fuzzy finder (or fzf) is a fuzzy search tool used for quickly finding files in a directory tree. Incidentally, it’s written by the same engineer who made vim-plug (Junegunn Choi).

This tool is blazing fast because it’s written in Go and uses concurrent threads to divide and conquer workloads.

To better use fzf, I’ve actually mapped these two aliases in my shell profile:

I can type just the letter followed by a file name to open it in Neovim.

I combine it with fzf to do a fast search for a particular file. The output of fzf is that file’s name with the full path. Then, I pass it as an argument to my alias.

The result? Wicked-fast file search and wicked-fast file open in Neovim. Life is beautiful.

The Silver Searcher (Ag)

The Silver Searcher (Ag) is basically a smart, recursive on steroids.

While fzf (above) is great for searching file names, Ag is great for searching the content inside those files for specific tokens and matches.

What makes it really great and awesome is it automatically ignores files that are part of your file. Where a would have spat out a bunch of irrelevant matches inside your , Ag has a blazing-fast search time because it’s only searching the files that matter.

By default, Ag output results also give you a line number. You technically could achieve everything Ag does by supplying lots and lots of arguments to , but then, at the end of the day, Ag is still several times faster — and continues to get even faster.


Happy coding! Thanks for reading.

Better Programming

Advice for programmers.

Thanks to Zack Shapiro

Michael Vinh Xuan Thanh

Written by

Owner @ The Static Void Academy || Course: bit.ly/sva_course || Blog: bit.ly/sva_blog || All opinions are my own. Let’s chat software and tea!!

Better Programming

Advice for programmers.

More From Medium

More from Better Programming

More from Better Programming

More from Better Programming

The Zero-Dollar Infrastructure Stack


More from Better Programming

More from Better Programming

Fun Side Projects That You Can Build Today


Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade