My Developer Workbench
Overview
Today I'd like to share some of my developer workbench and the software I regularly use. I have broken them into a few categories:
- Essential Software
Software I expect to always be installed on my dev machine.
- Implementation Software
Non-essential software that may be on my local development machine or installed in a dev container.
- VS Code Extensions
Extensions I use in VS Code.
Remember, my primary development machine is running OSX.
Essential Software
Software | Description |
---|---|
1Password | Password manager. |
Alfred and PowerPack | Open apps, perform actions, and other workflows with hotkeys. |
asdf | Manage multiple versions of installed languages; such as Node.js, python, go, etc. |
Backblaze | Continuous backups with unlimited storage. |
bash | Preferred shell. |
BetterTouchTool | Customize aspects of your mac's trackpad, touch-bar, snap areas, and more. |
Discord | Chat application for personal dev communities and the React community. |
Docker | Running containers. |
fig | Add-in to terminals to augment and customize its capabilities. |
git / GitHub CLI | Command-line access to GitHub specific functionality. |
Homebrew / Cask | Enables installing software from the command line. |
iTerm 2 | Stand-alone terminal supporting different visual styles. |
Lens | K8s IDE for managing K8s clusters. |
SnagIt | Capture screenshots or record your screen. Provides tooling to edit and markup images. |
VS Code | Primary editor. |
Implementation Software
Software | Description |
---|---|
Altair GraphQL Client | Postman-like client for GraphQL requests. |
ansible | Tool to help audomate IT and infrastructure. |
jq | Bash tool for parsing and manipulating JSON. |
jsonnet | Bash tool for generating JSON from a template. |
kubectl | Kubernetes management |
Proxmox | Bare-metal hypervisor I use at home to manage and virtualize environments/machines. |
terraform | Automate the provision of virtual machines on a variety of platforms/hypervisors. |
yq | Bash tool for parsing and manipulating YAML. |
VS Code Extensions
I created a simple bash script to pull these extensions from my VS Code installation. You can find it at the bottom of this page.
Assumes you have
jq
installed from the above list.
Extension Name | Description |
---|---|
1Password | Say goodbye to plaintext secrets in your code |
Apollo GraphQL | Rich editor support for GraphQL client and server development that seamlessly integrates with the Apollo platform |
Code Spell Checker | Spelling checker for source code |
CodeMetrics | Computes complexity in TypeScript / JavaScript files. |
Dev Containers | Open any folder or repository inside a Docker container and take advantage of Visual Studio Code's full feature set. |
ElixirLS: Elixir support and debugger | Elixir support with debugger, autocomplete, and more. Powered by ElixirLS. |
ESLint | Integrates ESLint JavaScript into VS Code. |
GitHub Actions | GitHub Actions workflows and runs for github.com hosted repositories in VS Code |
GitHub Codespaces | Your instant dev environment |
GitHub Copilot | Your AI pair programmer |
GitHub Markdown Preview | Changes VS Code's built-in markdown preview to match GitHub |
GitHub Pull Requests and Issues | Pull Request and Issue Provider for GitHub |
GitHub Repositories | Remotely browse and edit any GitHub repository |
GitLens — Git supercharged | Supercharge Git within VS Code — Visualize code authorship at a glance via Git blame annotations and CodeLens, seamlessly navigate and explore Git repositories, gain valuable insights via rich visualizations and powerful comparison commands, and so much more |
GraphQL: Language Feature Support | GraphQL LSP extension that adds autocompletion, validation, go to definition, hover, outline and more. |
GraphQL: Syntax Highlighting | Adds syntax highlighting support for .graphql & embedded support for javascript, typescript, vue, markdown, python, php, reason, ocaml and rescript |
Jest Test Explorer | Run your Jest tests in the Sidebar of Visual Studio Code |
Jest | Use Facebook's Jest With Pleasure. |
JS CodeFormer: Javascript Refactoring & Code Automation | A JavaScript/TypeScript refactoring and code automation tool for building better source |
Live Share | Real-time collaborative development from the comfort of your favorite tools. |
Markdown All in One | All you need to write Markdown (keyboard shortcuts, table of contents, auto preview and more) |
Markdown Checkboxes | Adds checkbox support to the built-in markdown preview |
Markdown Emoji | Adds emoji syntax support to VS Code's built-in markdown preview and markdown cells in notebook |
Markdown Footnotes | Adds [^footnote] syntax support to VS Code's built-in markdown preview |
Markdown Preview Github Styling | Changes VS Code's built-in markdown preview to match Github's style |
Markdown Preview Mermaid Support | Adds Mermaid diagram and flowchart support to VS Code's builtin markdown preview |
Markdown yaml Preamble | Renders yaml front matter as a table in the built-in markdown preview |
MDX | Language support for MDX |
Mermaid Markdown Syntax Highlighting | Markdown syntax support for the Mermaid charting language |
null | null |
Prettier - Code formatter | Code formatter using prettier |
Prisma | Adds syntax highlighting, formatting, auto-completion, jump-to-definition and linting for .prisma files. |
Remote - SSH: Editing Configuration Files | Edit SSH configuration files |
Remote Explorer | View remote machines for SSH and Tunnels. |
Remote Repositories | Remotely browse and edit git repositories |
REST Client | REST Client for Visual Studio Code |
shell-format | A formatter for shell scripts, Dockerfile, gitignore, dotenv, /etc/hosts, jvmoptions, and other file types |
Stream Deck for Visual Studio Code | Enables Stream Deck integration with Visual Studio Code. |
Test Adapter Converter | Converter extension from the Test Adapter UI to native VS Code testing |
Test Explorer Live Share | Use the Test Explorer in your Visual Studio Live Share sessions |
Test Explorer UI | Run your tests in the Sidebar of Visual Studio Code |
Version Lens | Shows the latest version for each package using code lens |
ZipFS - a zip file system | Allows to easily inspect and modify files stored within zip archives. |
code --install-extension 1Password.op-vscode
code --install-extension apollographql.vscode-apollo
code --install-extension arcanis.vscode-zipfs
code --install-extension bierner.github-markdown-preview
code --install-extension bierner.markdown-checkbox
code --install-extension bierner.markdown-emoji
code --install-extension bierner.markdown-footnotes
code --install-extension bierner.markdown-mermaid
code --install-extension bierner.markdown-preview-github-styles
code --install-extension bierner.markdown-yaml-preamble
code --install-extension bpruitt-goddard.mermaid-markdown-syntax-highlighting
code --install-extension cmstead.js-codeformer
code --install-extension dbaeumer.vscode-eslint
code --install-extension dracula-theme-pro.theme-dracula-pro
code --install-extension eamodio.gitlens
code --install-extension esbenp.prettier-vscode
code --install-extension foxundermoon.shell-format
code --install-extension GitHub.codespaces
code --install-extension GitHub.copilot
code --install-extension GitHub.remotehub
code --install-extension github.vscode-github-actions
code --install-extension GitHub.vscode-pull-request-github
code --install-extension GraphQL.vscode-graphql
code --install-extension GraphQL.vscode-graphql-syntax
code --install-extension hbenl.vscode-test-explorer
code --install-extension hbenl.vscode-test-explorer-liveshare
code --install-extension humao.rest-client
code --install-extension JakeBecker.elixir-ls
code --install-extension kavod-io.vscode-jest-test-adapter
code --install-extension kisstkondoros.vscode-codemetrics
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-ssh-edit
code --install-extension ms-vscode.azure-repos
code --install-extension ms-vscode.remote-explorer
code --install-extension ms-vscode.remote-repositories
code --install-extension ms-vscode.test-adapter-converter
code --install-extension ms-vsliveshare.vsliveshare
code --install-extension nicollasr.vscode-streamdeck
code --install-extension Orta.vscode-jest
code --install-extension pflannery.vscode-versionlens
code --install-extension Prisma.prisma
code --install-extension streetsidesoftware.code-spell-checker
code --install-extension unifiedjs.vscode-mdx
code --install-extension yzhang.markdown-all-in-one
Bash Script
#! /bin/bash
markdown_list_output="|Extension Name | Description |
|:--|:--|"
markdown_install_output="\`\`\`bash"
readarray -t extensions <<<$(code --list-extensions)
for val in "${extensions[@]}"; do
extension_data=$(
curl \
-s \
--data "{\"assetTypes\":null,\"filters\":[{\"criteria\":[{\"filterType\":7,\"value\":\"$val\"}],\"direction\":2,\"pageSize\":100,\"pageNumber\":1,\"sortBy\":0,\"sortOrder\":0,\"pagingToken\":null}],\"flags\":2151}" \
--header "accept: application/json;api-version=3.0-preview.1" \
--header "content-type: application/json" \
https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery
)
extensionName="$(echo "$extension_data" | jq '.results[0].extensions[0].extensionName')"
if [ extensionName == 'null' ]; then
continue
fi
markdown_list_output="$markdown_list_output
$(
echo "$extension_data" |
jq '"|[\(.results[0].extensions[0].displayName)](https://marketplace.visualstudio.com/items?itemName=\(.results[0].extensions[0].publisher.publisherName).\(.results[0].extensions[0].extensionName)) | \(.results[0].extensions[0].shortDescription) |"' |
sed 's/\"//g'
)"
markdown_install_output="$markdown_install_output
code --install-extension $val"
done
markdown_install_output="$markdown_install_output
\`\`\`"
echo "$markdown_list_output
$markdown_install_output"