A lot of my workflow tips focus on cutting down time for small annoyances, such as navigation or tasks that don’t contribute to productive work. It’s true, I probably spend more time thinking about these things than they actually save me. But, the value for me is the mindset – when I leverage these improvements, I feel faster and more productive. I run into less obstacles in my workflow, such as context switching, allowing me to capitalize on my focus and get things done more effectively.

This is a quick rundown of some of the tools that I use in my development workflow. I’ve made it versatile and adaptable to many different projects and environments. It helps me speed up my work and focus on what’s important.


This is the same terminal set up I use as in this post. Here, I talk about some of the different tools that I use within the command line.

Open and Code

I use o for open . and c for code .. These are super handy because I use these a lot, and I save like 5 keystrokes by setting these aliases! It makes things feel a lot quicker, and I can move around a lot faster.

DS Store

A major annoyance is when I’m working on a project and out of nowhere comes .DSStore. I have no idea what they do, but even when I put it in the .gitignore they still somehow appear everywhere. To deal with this, I found a recursive solution to delete them all in a given directory, just by typing ds.

alias ds="find . -name '.DS_Store' -type f -delete"

This makes it easy – whenever I see one of them appear again, I run ds and they should disappear.


When deleting something in the terminal, I used to run rm -rf. But for reasons that we all know, that’s a very unsafe way to delete things. trash is a great tool to move things to the Trash so that they’re recoverable in the future, should you need them. It’s a much less destructive way of deleting files and directories on your computer.

Removing Local Git Branches

Another annoyance is that git doesn’t have a command to delete old local branches that don’t exist on origin anymore. So, I created an alias prune that will do this.

alias prune="git branch --merged master --no-color | grep -v master | grep -v stable | xargs git branch -d"

This will remove all old local branches and clean up your local git directory.

Resetting Git Project

I move in and out of a lot of different projects, and I like to work knowing that I’m on the latest version. I created a command, grp (git reset please), to “reset” the project I’m working on to the latest on origin. All this does is git fetch, git checkout master, git pull origin master, prune. When I haven’t worked on a project in a while, this is a good way to reset the entire project into the latest state.

alias grp="gcm && gf && ggl && prune"

Visual Studio Code

My text editor of choice is VSCode. It offers many great keyboard shortcuts that I find helpful when working in projects. Also, its massive extension library only adds to the already extensive functionality that it offers.


GitLens is one of my favorite extensions. It’s a powerful tool to visualize and keep track of the git repository. It displays information such as edit history, collaborators, and current diff changes. It’s been essential to my workflow and has a non-obtrusive integration into the UI.


A lot of the time I have many windows open for different projects or different classes. When switching between projects, it was always difficult for me to find the right window – I would need to take a second to actually read and understand some code to identify. Peacock addresses this by coloring the window of VSCode so that it makes it easy to differentiate projects. You can make it as bright and filling as you want or make it subtle and only color the left bar (which is what I’ve done).