As a developer, trainer and screencaster, I rely heavily on my tools to help me accomplish my goals. Between hardware and software I use for development, the tools I use for screencasting and just keeping myself organized, the list of tools in my toolbox is fairly long. I will continue to add to, and update this list as I find the time, add a new tool or make a change to an existing item.
I have a github repo with the dot files that I use for configuration.
This repo includes my
I have some pretty handy aliases that I use on a daily basis to work with
git more effectively. Some highlights include:
git cm, which does an
add -Aand a
commit -m. I call it with a commit message and get all changed files added and committed:
git cm "Did stuff and things".
git pr- This takes my current branch name and pushes it to my remote. So instead of
git push -u origin <current-branch-name>, I just type
git prand my branch is pushed to my remote with a matching branch name.
git poop- just runs
git stash pop, but it’s mildly entertaining and that makes it worth using.
I switched from Atom to VSCode a little over 6 months ago and it’s fantastic! The monthly updates and wealth of extensions make it incredibly flexible and powerful. It is really one of the most impressive tools I’ve had the pleasure of using in my day-to-day work.
Theme & Fonts
oh my zsh!
oh my zsh is a community-driven framework for managing ZSH configuration. I made the switch from
zsh and my only regret is that I didn’t do this years ago! It is fantastic!
Quokka & Wallaby
Quokka and Wallaby are both from the same developers. They are editor plugins, that will execute your code/tests in the background and show results right in your editor! I can’t say enough about how much they boost productivity. Quokka makes it easy to catch errors in your code and see the results of expressions right in your editor. No need to run the code, or step through a debugger. I’ve even started using Quokka as a more streamlined way to show code results in my screencasts!
Wallaby does that for your tests. If you write test driven code, Wallaby will pay for itself in a matter of days, if not hours! It executes your tests in the background as you type, and shows you results right in the editor. Wallaby means I don’t have to run my tests directly or even look at another window to see if my tests are passing. Truly remarkable!
Full disclosure: I was employed as a developer at Cypress for a short time, from the end of 2017 into January of 2018. I joined because I was excited about the product and only left because an amazing opportunity came along, but I’m still just as excited about the product.
Cypress is a tool for writing automated tests for the web. It can be installed as an
npm dependency (just
npm i -D cypress to save as a dev dependency) to a project, and tests are written leveraging APIs from well known testing tools like Mocha, Chai and Sinon. These bundled tools, combined with the Cypress GUI, CLI and API full of useful commands, creates an awesome platform for create integration tests as well as full end to end tests. Cypress has some amazing features that make its tests far more reliable than a test that you might write with something like Selenium. Even if I didn’t work for them, now that I’ve gotten to know the tool, I would absolutely still use it on any web project in the future. If you build things that run in a browser, you owe it to yourself to give it a shot!
Camtasia 3 for Mac
I was a ScreenFlow user for a while, but after running into a lot of buggy behavior in the most recent version, I decided to give Camtasia a shot. So far, I’m loving it. I think for the kind of editing I have to do, Camtasia really simplifies things.
To get the best quality video, I need to record at the right resolution, which means switching my resolution back and forth when I go from development to recording. For this, I use SwitchResX. The app allows me to store “Display Sets” so I can quickly toggle between my recording resolution and my development and editing resolution.
Microphone and Boom Arm
VS Code “Profiles”
I’m calling these profiles for lack of a better term. The basic idea, is that using command line options, you can load VS Code and point it to specific directories for extensions and settings. I’m using this capability, along with some aliases in my
.zshrc to maintain a completely independent setup for VS Code with settings and extensions that are configured for screencasting. This allows me to work in VS Code with a normal font size and all the extensions that make me more productive and teach/present in VS Code with a large font and fewer extensions running that could be a distraction in a screencast or presentation.
If you’d like an example of this, you can check out the GitHub repo I set up for these: https://github.com/avanslaars/code-profiles
iPad and Apple Pencil
I’m a big fan of the bullet journal system with a Leuchtturm1917 notebook, but I recently got a newer iPad (not the pro) with an Apple Pencil and I really like how smooth and responsive it is. Now I get the benefits of hand written notes (it helps me focus on the important stuff since I can only write so fast), with the ability to search and convert handwritting to text for use in documents. Also, now I’m not using a ton of paper or losing track of things because they’re in an old notebook that I don’t happen to have on me.
The Notability app is fantastic for iPad with Apple pencil.
Concepts is a recent addition to my iPad apps. It offers some great tools for drawing and an infinite canvas which can be great when trying to quickly capture complex data flows and system architecture during meetings.
I can’t say enough good things about Alfred. I use it with the powerpack and aside from my code editor, it is probably my most used application. I use it to launch applications, to search my file system, as a calculator, to display text and urls when presenting (it has a feature called Large Type that is pretty handy when I remember it’s there) and that’s before I get into the workflows! With workflows, I can add notes to Evernote, shorten a URL with bit.ly, add an entry to DayOne, even search the Ramda docs!
I end up with a lot of applications running and like to have certain windows in view together, like my editor, a browser for testing my work and a terminal window to monitor builds, tests and the like. I use Moom to move windows around, save layout configurations and generally wrangle my windows, all without having to take my hands off the keyboard.
To switch between my work laptop and my personal iMac, I use the IOGEAR Thunderbolt 2 KVM Docking Station. Being able to work on either machine with the same monitors, keyboard and mouse make life much simpler and allows me to avoid that keyboard on the new MBP anytime I’m not travelling.
Some tools aren’t used anymore for one reason or another, but they’re still work noting, so they’ll find a home down here.
I’m a huge fan of the open source Atom editor. But, I recently switched over to VSCode as my primary editor.
Before making the switch to VS Code, I was using the Atom Material Themes for UI and syntax along with the file icons plugin for my file tree. I also used the minimap plugin with git integration with the minimap-git-diff. That covers the bulk of visble UI elements that people have asked about in my videos.