The tools I use, July 2018 edition

Written by Michael Lee on July 31, 2018

I’ve always been interested in the tools that others use to get work done. I enjoy evaluating my tools to improve my workflows and get work done. As I’ve recently switched to a new role as CTO, I thought I’d share about the tools that I currently use to get work done.

Apple Mail: While I’ve been a big fan of Spark by Readdle since its release, with the most recent 2.0 update, I noticed that my email was getting a bit wonky. Recent email titles were coming up as titles from super old emails which confused me several times. While I loved Spark’s UI customizability, I needed an email client that just worked, across all platforms.

For this reason I’ve gone back to using Apple Mail on both my Mac and iPhone. The experience is seamless between platforms and I can always expect it to work.

Terminal: I spend a lot of time in the command line, as such I use Apple’s default shell app, Terminal.app. On top of Terminal, I’ve got Zsh installed more specifially Oh-my-zsh that provides some extra niceties such as git aliases. I also like to use the Dracula theme along with Fira Mono for my font, with size set to 16px (cause I’m getting old).

Brew: Brew is a command-line package manager for macOS. It makes installing various tools and apps on the Mac so much easier. It is one of the first tools I install when setting up a new machine.

Tmux: Along with my Terminal setup, I use tmux, a terminal multiplexer. What tmux provides is the ability to split a single session into multiple sessions, allow for attaching and detaching sessions without interrupting them and split my view into multiple panes. This is all done all via key strokes so it integrates with my text-editing workflow with Vim.

An example of my tmux setup

NeoVim: NeoVim is where I do all my text editing and the majority of my code editing. It is an improved flavor of Vim. Paired with Goyo, it is a very nice, distraction-free writing environment.

I’ve been a long time Atom user for editing code. While I’ve never seen speed issues as many have complained about what really made my relationship hard to keep up with Atom as my code editor of choice was the constant updates and that when updating, Atom would often hang. Which made the experience not so great.

I’ve never been that much of a fan of VS Code, although it seems a huge part of the developer community loves VS Code. I’ve decided to keep VS Code installed on my machine in place of Atom. Although it isn’t where I write most of my code, there are instances where I do prefer a text editor instead of using Vim, such as resolving merge conflicts in Git.

Jira: All work for myself and my team are tracked in Jira, a synonmous tool when it comes with project management. Although I’m not a pro in Jira, it helps me plan work, get work done and delegate and communicate with my team.

Dropbox: Dropbox is a huge part of my workflow. I create new notes daily. These notes contains my task list and notes that I jot down through out my day when I’m in meetings with clients and team members. As such, Dropbox is like my second brain. Putting all my notes in Dropbox, it allows me to access them on both my Mac and iPhone. Since my notes are all written in Markdown, it transfers seamlessly.

1Password: I put all my passwords into 1Password and with a family subscription, it’s great because I can have a subset of passwords that I share with my wife. I can also tag passwords so that I can quickly find work related passwords. I’ve also been placing environment variables in 1Password for safe keeping and being able to have access when setting up apps on new machines or getting other developers up and running.

I use both 1Password on my Mac and iPhone and heavily use the password generator so that I don’t have to use mental energy in creating passwords.

VS Code: Again, I’ve been a long time fan of Atom and a few months ago decided to make the switch to VS Code for when I need a code editor that has some more robust features such as Git. I can easily see merge conflicts and select which source to merge in when resolving them. Other than that, most code is written in NeoVim.

Spectacle: Spectacle is an open source Mac app that allows you to manage windows using key combinations. I’m still surprised Apple hasn’t baked in their own window management system in macOS. I enjoy being able to quickly put a browser window and my terminal window side by side to do research while I’m writing prose or code.

Firefox: I’ve been a fan of Chrome for a really long time. It’s a solid browser, but my concern of making it my main browser was the fact that Google knows so much of my life based on all the products I use from Google. While I will probably never be forever free from Google, I wanted to make a conscience effort to limit my relationship with Google.

Firefox claims to value privacy, so it felt like a good alternative. Mozilla has a podcast that’s called IRL that discusses issues around life online including privacy. Upon hearing a few episodes it made me appreciate the work they are doing and thus helped me decide on using Firefox as my main browser.

On top of that, since I do a lot of front-end development, I need developer tools. Firefox, more specifically the Developer Edition provides some really nice tools for developers. I also like that it provides thoughtful features such as generating screenshots.

Chrome: While Firefox is my default browser, I still keep Chrome around because it handles resource intense services really well such as video conferences. I do video conferences quite often as I’m remote from my team and clients from time to time. As such I need to make sure that my browser is reliable when doing video or sharing my screen via video.

I’ve tried video conferencing with Firefox, but shortly after, my Mac comes to a crawl while the fans whirl loudly and the laptop becomes really hot.

Appear.in: Our team uses Appear.in for video conferencing. It’s nice because we’ve got a few URLs that we use exclusively for our team or client meetings. Video and audio are top notch and the screensharing is done really well compared to Hangouts in my opinion. In Hangouts, when sharing your screen, your video profile will be replaced by the screen sharing. But with Appear.in both your screen and video profile will be shown.

Figma: Figma has become my design tool of choice. I do all my layout, vector designs and wireframing in Figma. While there are great tools for things like wireframing, Figma just works really well with how I think and work. So creating a set of components, I’m able to do wireframing really well in it.

Which being in the role as CTO in a digital agency, I do a lot of wireframing which has proved to be valuable in both communicating with project shareholders and developers.

Invision: Once I put together wireframes in Figma, I’ll export frames and post them up on Invision. Combined with comments, it’s a great way to talk through user journies in an application for a feature. It is also a great way to request copy from our clients.

Notion: I recently discovered Notion and it is the bees :bee: knees. In joining Pathos Ethos, I started documenting processes we’re developing and creating a knowledge base. As such we needed a robust wiki that did wikis well but also allowed for code centric editing. With Notion’s support for markdown and it’s ability to organize pages within other pages, it’s quickly becoming a really nice tool. While I’m still evaluating this tool for our tool belt, I can say it is a powerful tool and I’m excited to keep introducing it to our team.

Google Apps: Communication is key in my roles as the CTO. As such I write a good deal of emails. Gmail is what our team uses at Pathos Ethos. I actually prefer the Gmail browser app when I’m using my laptop or desktop versus using Apple’s Mail app. One tab I have dedicated at all times through my day in Firefox, is Gmail.

The past few weeks as I’ve been onboarded into the team, I’ve been having to have a ton of meetings. As such I heavily rely on Google’s calendar to keep track of client meetings, team meetings and 1-on-1’s with individual developers.

Slack: Our team uses Slack to communicate in real time. Our set up is pretty basic, as we have a channel where all our team members are in through out the work day. From there we have sub-teams where key members of the sub-team can talk to each other about more specific things. Such as the developer team has a channel called dev where we discuss things around client work and other dev related questions.

Outside of that we have a few integrations that I’ve utilized. /appear room-name allows us to quickly link an Appear.in room into a channel, thus directing folks to a meeting on the fly. We also use Giphy using /giphy search-term. Aside from emojis, gifs really help our team communicate. One option that I highly recommend turning on if you do have Giphy for your Slack is the preview option. By default, triggering giphy is like a wildcard and will return the first matching gif. This often has led to anxiety for me cause the gif that is returned might not be what intended to communicate with the gif. By turning on the preview option, it allows you to first preview the gif before it gets posted and it also allows you to shuffle if it isn’t the right one.

The option to preview gifs before messaging on Slack

I’m hoping to put together our own bot soon. As there are some things that are unique to our team and I believe by having a bot, it could help improve our workflow. I’ll be sure to share more about it as we put it together.

Fantastical: With all my calendar events in Google and having all my Google accounts set up on my phone, Fantastical is a great app to help manage my calendar. The reason for this is, it piggy backs off of iOS’ Calendar app. The great thing is, whenever I have a new device, simply setting up my Gmail accounts also means Fantastical is up and ready to go.

One of the advantages of using Fantastical is their natural language parsing. When creating an event, you can write out a sentence and Fantastical will fill in the event details based on what you type. Of course you can edit the event afterwards but it provides a good start.

1Writer: Since having notes and tasks stored as markdown files and synced on Dropbox is a crucial part of my day-to-day workflow, I use 1Writer on iOS to edit those same files.

1Writer’s support for Markdown is really good and paired with it’s support for Github flavored markdown, it works really well with my task list workflow, which I’m using Github task lists. In 1Writer’s preview mode, I can toggle tasks by tapping on checkboxes.

Thanks for taking the time to read this article. I'd love to stay in touch and share more tips on programming and design, side projects and working remotely. Sign up and I'll send you my articles straight to your email.

:wave: Hey hey, I'm Michael Lee! I really appreciate you taking the time to read this article.

Be sure to check out my other articles.