Skip to content

Instantly share code, notes, and snippets.

@allingeek
Last active May 24, 2021 17:40
Show Gist options
  • Select an option

  • Save allingeek/9eb59c6d27e707d19a4fd7b23f8d870b to your computer and use it in GitHub Desktop.

Select an option

Save allingeek/9eb59c6d27e707d19a4fd7b23f8d870b to your computer and use it in GitHub Desktop.
Overview of my developer tools and related kits.

dev-env @allingeek style

1. Hands on Keyboard

1.1 Hardware

1.1.1 Compute

  1. Mid-2014 13" MBP - i7 @ 16GB
  2. Mid-2017 12" Macbook - i5 @ 16GB

1.1.2 A/V Hardware

  1. Kylo Razer webcam
  2. Scarlet 2i2 - XLR interface
  3. Scarlet Solo - XLR interface
  4. Shure SM7B XLR mic
  5. Røde Procaster XLR mic
  6. Elgato Key light
  7. Yeti Blue USB mic
  8. iPhone 7 (for secondary video)

1.1.3 Office

  1. Ergotron dual arm monitor stand on a 16" pole
  2. Samsung 32" 4k monitor
  3. After-market Aeron chair

1.2 Tooling

Today I prefer low-burden tooling. I came to this opinion after years chasing the tooling dragon and suffering repeated work disruptions due to configuration drift, migration issues, etc. I use stack-native tools and prefer to stay in a terminal. Doing so encourages me to develop a deeper understanding of the tools and languages themselves. While I embrace automation, I avoid tools that obscure underlying mechanics. Tools should teach, not obfuscate.

I avoid tools and systems that require "clickops."

I also avoid anything that makes me do some OAuth dance from the CLI.

1.2.1 Primary IDE - tmux, Vim, Pathogen, vim-go

Lean, mean, and flexible. I'm not some kind of super advanced vim user. I know exactly enough to get work done and quickly. But I do try to add one or two things to my toolbox every month. Criteria is that they have to be something that I can integrate into my workflow (otherwise I'll never remember them).

1.2.2 Secondary IDEs - SublimeText 2, XCode

1.2.3 Illustration - OmniGraffle

1.2.4 Design - Figma, Sketch

1.2.5 Workflow - make, Jenkins in DO, GitHub Actions

I end up using a ton of other CLI tools in building smarter automation. But these are the main engines. I'd take a Makefile over Jenkinsfile any day. GitHub Actions have done a good job of getting to 80% of what you need without building a more complicated product.

But, truth is I dont think anybody does CI well, and most CD systems are CI systems wearing a trench coat.

1.2.6 Packaging and Workload - Docker

This one is obvious for me. I don't use it for build orchestration, but I do perform builds in containers and manage my build envs with images. Unless the project is a dependency shitshow like any JS/TS/Node project.

1.2.7 Version control - git w/ GitHub for everything I want to version (including dev tools)

Using git is obvious today.

1.2.8 File Replication - Dropbox and Google Drive for everything else

2. Lab

2.1 Bare Metal Lab Hardware

  1. A few Raspberry Pis
  2. Two i7 Duos @ 48GB with late model GPUs and a ton of SSD
  3. Two 16 core Xeon SOC @ 128GB
  4. A surface pro I use for training lab sessions and testing on Windows

2.2 Persistent Cloud Lab Hardware

  1. webhook and influxdb server @ DigitalOcean
  2. Jenkins powered CICD @ DigitalOcean
  3. Mail-in-a-Box @ DigitalOcean (loving this since 2014)
  4. Personal VPN endpoint for static IP @ DigitalOcean - Useful for working with companies that use IP whitelisting

2.3 Cloud Tooling

I run workloads in DigitalOcean, GCP, and obviously AWS. But I hate cloud-first development environments. So maintaining hybrid portability is important for me.

  1. Terraform + CloudInit
  2. Docker
  3. Kubernetes
  4. Packer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment