All Articles

My Programming Workflow

Being a developer can expose one to many tools that accomplish various tasks. From the choice of editor to coding style, a seasoned developer will, over time, religiously commit to a set of tools to either automate or generally increase productivity. This article will attempt to portray my development so far.

Editor

I’m an avid Vim user and use it on the plurality of my personal projects. I was attracted to it after facing hardships using Code-Blocks and IntelliJ on Windows in my early programming days. While it was a little hard to grasp for a newbie, I learnt to cherish (and exploit) its features over time.

vim-in-tmux

I use a plethora of plugins (who doesn’t) to get my setup to where it is. Aside from using custom fonts, I’m quite fond of the code-navigation (mid-right) given by the amazing* vim-vista* plugin. Gruvbox is my theme of choice. I also write code in various languages (Rust, C++, Javascript, Elixir…) so good completion support is vital to me. Thanks to extensions like Conquer on Completion and paradigms like Language Server Protocol.

vim-float-win

Environment

I3 has been a blast during my coding sessions. I learnt of the tiling window managers from browsing a few unix-enthusiast subreddits and I have been a lot more organized in my Development journey. Also its just eye-candy to look at.

I3-Pack

I have also customized the aesthetics of my terminal to be eye-catching and it (maybe ironically) helps me keep focus on my work.

Version Control

Viewing diffs is something i don’t think about often…but when I do, I appreciate having visual indicators for various changes. A tool like diff-so-fancy has been essential to improving the aesthetics of the diffed files.

diff-so-fancy

Also some handy vim plugins like vim-gitgutter and vim-gundo contribute a lot when tracking changes from within vim.

Gundo

gitgutter

These are some of the tools I use to improve my workflow. You can check out my dotfiles if you feel inspired. Also I’m grateful to the opensource community and the developers who make these amazing tools, give them a try!

Published May 2, 2020

From Embedded systems to the web