My coding setup (2022)
Published: 2022-02-21 17:13:00

## Intro

For my first post on dev.to, i would like to share with everyone what's inside my Macbook Pro.

## [About myself](https://github.com/Nico385412)

To make it short, I learned coding since I was 12, i studied until I get an engineer diploma, and since then, i'm a happy FullStack JS developer (4 years).

However I'm also very curious and I love learning new skills/languages and apply them in my daily life. This mindset helped me to be autonomous on my work and achieve tasks even if didn't have the required skills.

## My Macbook Pro

![image of "about this mac"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a3qhy4ab7sybwb9fcnol.png)

  
 
Here is the description of my mac with the latest version of macos. So now you know all tools presented can run on macos 12.2.

## Terminal

### Iterm2

![logo of iterm2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gnu2pf3tsj1ced8qdjyr.png)
 
Iterm2 is for me an excellent terminal, as a developer, the choice of your terminal is kind of decisive. You won't change it until you get a new computer or a co-worker recommend you a new one [like Hyper](https://hyper.is/).

So i recommand Iterm2 because it's a well known terminal, so i you hit a bug, you have more chance to find a solution.

### ZSH + Oh my zsh

No surprise here, if you never heard about zsh go replace you default bash my this shell, it offer a plugin system where the community coded a bunch of [very useful tools](https://github.com/unixorn/awesome-zsh-plugins) 

Also don't forget to install [OhmyZsh](https://ohmyz.sh/#install) it will help you to install plugins made by the community.

And here a list of my favorite plugins: 
- [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) (autocomplete based on latest command usage)
- [alias-finder](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/alias-finder) (find alias for a command, usefull if you created one that you do not remember)
- [kubectl](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/kubectl) (aliases for kubectl)
- [nx-completion] (https://github.com/jscutlery/nx-completion) (autocompletion for [nx](https://nx.dev/) commands)

You can explore a list a awesome plugins [made by the community ](https://github.com/unixorn/awesome-zsh-plugins)

### Command line tools

Here is a list of awesome command line applications i used everyday and can help you on you daily work

- [Mcfly](https://github.com/cantino/mcfly) - fly through your shell history (goodbye `history | grep XXX` 👋 )

- [bat](https://github.com/sharkdp/bat) 🦇 - A cat(1) clone with syntax highlighting and Git integration

- [jless](https://github.com/PaulJuliusMartinez/jless) - a command-line JSON viewer


## My IDE - VSCode

![Vscode logo](https://cdn.icon-icons.com/icons2/2107/PNG/512/file_type_vscode_icon_130084.png)

I do not have a lot of plugins installed on vscode but i use a lot 2 of them: 

- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) - the most usefull plugin to visual and manage git repository (and also for git blame 😈)

- [GitHub AutoPilot](https://copilot.github.com/) - the best plugin so far, Once you start using it you won't be able to live without. This plugin is a just awesome and help me a lot when i try to write code other than Javascript and i'm not sure how to do something in shell/rust etc..


## Productivity App

I a big fan of automation, If i can automate something boring easily i'll do it no matter how much time it takes to achieve it. 

![Never spend 6 minutes doing something by hand when you can spend 6 hours failing to automate it](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52kx66urubb7vvhy6ot1.png)

Depending on the task i'll use no-code tools to achieve it. The advantage is that you can share your workflows with Muggles and help everyone.

### Alfred 4

![Alfred 4 logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/al12aqb650g8xj3i072d.png)

Alfred is a no-code tool which replace your classic Spotlight. (⌘ + Space) (it can also be binded to another hotkey combo if you want to keep Spotlight)

I 'll talk about the paid version (Starting at 29£ for lifetime License) the free version is not very interesting.

So what can we do with that ? A good answer would be an exemple of usage.

Let's say you have to write a command line tool which display the latest price of bitcoin. A good start would be creating a shell script and curl an open api which return the price. And you are right, that maybe 80% of devs would do.
However your co-worker, a Muggle heard about your script and also want to use it, but within an interface because it doesn't know how to even open a terminal.

That where Alfred is a great tool because it will add a pseudo-interface on top your shell script and your co-worker will never have to configure it.

![Alfred 4 exemple](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ilxdwf5xp4yesh16fyo.png)

#### ✅ Pros

- Modular (with workflow system)
- Very popular tool (exist since 2010, and latest major version in 2019)
- Very easy to use
- Has an AppleScript integration

#### 🔴 Cons

- Might looks ugly 
- No reusable bricks (you have to duplicate everything)
- the Price (cheap, but can be a con)
- not open source


## Conclusion

I hope my setup for 2022 will help developers which are looking for ideas to increase their productivity and / or improve their daily work. 

Let me know if you have questions or suggestions :D