What I Use in 2020 For Software Development
On Software Development
I figured I’d open up this article with explaining a few of the domains that I work in, both professionally and as a hobby. My hopes is that it provides a better context into some of the choices of technologies. For work, my current title is Cloud Engineer, which falls under the development practices of:
- Public Cloud Tooling (Microsoft Azure, Google Cloud Platform)
- Docker
- Continuous Integration / Continuous Delivery
- Python, Ruby, Groovy scripting
- Go CLI and Tooling
- Infrastructure as Code
On the side, I find myself doing hobby programming in the following domains:
- iOS Development
- Android Development
- Web Development
- Open Source :D
This article was inspired by the ever-persistent question “What do they use?”, which Wes Bos decided to answer in the Uses.Tech project. I figured, I should add the same to my own site for those interested (in a much more condensed version which can be found here!) and work my site into the listings too. We can always use more canadian representation.
Hardware - Generalized
Desktop
For most of my programming and computer hobbies, I still use the same desktop that I built in 2019 and talked about here, which has the following specs:
CPU | Intel - Core i7-8700K 3.7GHz 6-Core Processor |
CPU Cooler | Cooler Master - Hyper 212 EVO 82.9 CFM Sleeve Bearing CPU Cooler |
Motherboard | MSI - Z370 GAMING PLUS ATX LGA1151 Motherboard |
Memory | G.Skill - Ripjaws V Series 16GB (2 x 8GB) DDR4-3000 Memory |
Storage | Samsung - 850 EVO 500GB M.2-2280 Solid State Drive |
Storage | Western Digital - Caviar Blue 1TB 3.5" 7200RPM Internal Hard Drive |
Video Card | Gigabyte - GeForce GTX 1070 8GB G1 Gaming Video Card |
Computer Case | Phanteks - Enthoo Pro M Tempered Glass (Black) ATX Mid Tower Case |
Power Supply | EVGA - SuperNOVA G2 750W 80+ Gold Certified Fully-Modular ATX Power Supply |
Sound Card | Asus - Xonar DGX 24-bit 96 KHz Sound Card |
Sound Card | M-Audio Mbox II Mini |
Wireless Network Adapter | Gigabyte - GC-WB867D-I PCI-Express x1 802.11a/b/g/n/ac Wi-Fi Adapter |
Monitor | LG 25 Inch Ultrawide 1080p |
Mouse | Pictek Wired Mouse |
Keyboard | Z-88 65% Mechanical Keyboard with Gateron Browns |
Speakers | Cheap Logitechs and Audio-Technica ATH-M30x Studio Headphones |
Microphone | Audio-Technica AT2020 |
Operating System | Windows 10 with many Linux Docker Containers / Pop!OS |
As of now, I’ve swapped out and upgraded a few items in the quest for optimizing my workspace:
Monitor | AOC 4K IPS Monitor |
Speakers | Personus Eris 3.5 |
Mouse | Logitech MX Master 2S |
Keyboard | Anne Pro 2 with Kailh Box Whites |
Laptops
Laptop | Year | OS | Purpose |
---|---|---|---|
Dell XPS 15 | 2014 | Pop! OS & Fedora 31 | General Software Development |
Macbook Pro 15 | 2015 | MacOS | iOS and Android Development |
Macbook Pro 15 | 2019 | MacOS | Cloud Engineering |
Software & Tools
I try to run cross-platform software wherever possible to ensure that I can create productivity workflows and shortcuts which can be used in various mediums. With that in mind, the rise of Electron applications swept the 2010s by storm and I fell into it’s cold embrace for quite a while. In the recent few months, I’ve been eagerly searching for applications which reach the same criteria written in non web-based technologies. My latest find: Alacritty, a GPU-enabled terminal written in Mozilla’s RUST. I would swap out VS Code, but I’ve yet to find a competing text editor with a similar feature set (aside from Sublime which I’m going to be trying out in 2020). Open to your recommendations!
- Editor: Vim, Visual Studio Code, XCode
- Shells: BASH, Fish, ZSH
- Terminals: Alacritty
- Infrastructure as Code: Terraform, Puppet, Packer, Chef
For the UNIX side configurations, I’ll include my dotfiles repository (out of date, #TODO: will update this month!) in the resources section of this article, along with here. I find myself using *nix systems more often these days for both work and play, so I’ll have to find a clean seperation before I can post the fishrc, zshrc, and bashrc
files. Speaking of Unix…
On Windows vs Linux
Warning, I could go into this for hours, so let’s keep it as breif as humanly possible with:
Many who’ve known me for a while have seen various distribution grace and break my various workstations, and the occasional “Maybe Windows isn’t so bad, let’s give it a try!” moment which lasts between a week, and a year (currently on my longest W10 streak on the desktop). I like to have hands in both worlds (well, three if you include MacOS), and pick-choose as needed for the task. I have often found myself gravitating to the Linux kernel more than NT, but that is mostly due to the development environment being more accessible. That being said, there’s benefits to both; so lets start a holy war only for good argument and conversation!
TLDR: Use whichever you like that’s best for the task.