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.
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 π 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.
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.
These are the tools that I'm currently using to get work done. I'd love to hear what's in your tool belt for getting your work done. Share your tools below in the comments.
Cover photo by Jo Szczepanska on Unsplash
Originally posted on michaelsoolee.com.
Thanks for taking the time to read this article! I'd love to stay in contact and send you tips on programming and design, working from home and making side projects through my newsletter. Click here to sign up.
Top comments (21)
Whenever I see a post like this, Iβm always in search for the category of tools I donβt event use, and for me the design stuff is where Iβm lacking. I do little more than rough sketches and fluff long with the code. I need to find some tools to help me express myself more effectively.
Definitely checking through this list carefully.
Very cool Ben. I'm not sure if you've tried Balsamiq before, but it's a nice wire framing tool. It provides you with a lo-fi, sketchy, set of elements that lets you focus on piecing together ideas instead of getting side tracked with things like color or pushing pixels here and there. I've also played around with Whimsical which has tools for creating flow charts and wire framing. The wire framing is a little lacking in my opinion but it's getting there.
As mentioned above Figma is my tool of choice with design related stuff. I've created some components that serve as my elements for generating wireframes. Which allows me to use Figma for several workflows besides just UI design. Where Figma really shines is being web-based and collaborative.
If you've got any other questions, let me know. Would love to help out.
With this are you pointing the applications directly to wherever 1Password stores them (after typing that out this kinda sounds like a dumb question, but here we are), or do you just have them there and then copy them to the env file?
Hey hey Jack, you're write in that I do the latter. I store them in 1Password and when I'm setting up a new machine to dev on the application, I just need to access 1Password and I can set env files by copying them from 1Password.
Thanks for sharing the list.
Here are the tools I regularly use, in no particular order
The reason for using many similar tools of the same category is due to easy of doing something at that moment, and no particular loyalty or affinity to one.
Thanks for sharing Anurag!
I believe I've done something similar in another post, but I guess it's time for a nice update anyway:
Since I've been using Windows at work (ugh), WSL has become a nice stopgap for my terminal needs. Using it along with ConEmu has made things a bit less painful. At home I use xfce4-terminal because it just werks.
For my terminal usage I've been using zsh with oh-my-zsh and my own theme.
Sublime is my favorite text editor, and the one I mostly use at home, but since I do no own a valid license (yet, I swear I'll buy it... someday), I've been using VSCode at work, it's a bit slower but manages to get things done. I also like to have Wakatime installed, as to track how uΜΆnΜΆproductive I am.
Chrome has been my browser of choice for a couple years now, gotta love all the integration and sync it offers.
As for miscellaneous tools, the ones I use most are clang, gcc, avrdude, openocd and picocom (putty on Windows). Oh let's not forget about git, of course.
Congratulations!
I tried tmux for a while but I went back to screen because it's super basic enough for me :D
I migrated to Firefox for the same reason, I also use it on my Android with sync between them. I keep Chrome around for testing and for Google Hangouts/Meet that doesn't work on Firefox :-( - the developers tools are great, I just miss Lighthouse (which is from Google :D).
Didn't know about Figma, thanks for the tip! It must be a huge React app...
Yay notion! I was recently I introduced to it and I love it so much as a knowledgebase. I am getting ready to introduce it to my team and a little nervous they might not want to adopt it. People are getting tired of new software it seems... :p
Nice Nayeon! Let me know how it goes with your team. Definitely adoption is a little tough, but I think as long as someone is maintaining it, folks will see the value and really support it.
I'm not :)
Right on Alex! Yeah I've been using it for a few weeks now and it's a really cool tool with a lot of options. I just ran a test doing real time collaboration on a single doc with others yesterday and it lagged compared to Google docs, but I imagine it will only get better from here.
For what I was looking for, which is a knowledge/wiki for my team, it helps create diverse content and I love how you can organize things.
Would love to know what you're using it for and how your experience goes!
I'm not using it professionally, but I've started using it as a knowledge base/information sharing here at home with my wife and for myself.
I read a good blog post a while back that brought up some tips for home owners and how to stay on top of things. For example they suggested simple quarterly checklists for things you do once a month or less (clean drains in the bathrooms, deep cleaning the house, testing fire/smoke detectors, etc.) to make sure you don't miss things. So I keep templates of those in Notion.
Another tip they had was to keep a "project list" of things you'd like to do that aren't something you just whip up after work one day. Repainting rooms, rip up those old bushes and plant new ones, build that fence, re-carpet that other room, etc. So I made a Kanban-esque board in Notion where we dump those ideas and use simple tags to arrange them by priority, roughly estimated duration etc. So if we feel like doing something and we know we have X hours we pick something appropriate from the board and get it done.
We also use it to store things like trip ideas, movies we want to watch, and favorite recipes.
It's all set up to be fairly asynchronous so we rarely edit the same page simultaneously so we never run into any sluggishness related to that. It is also very easy to (on web or desktop, not mobile) import data from other sources with existing integration with many of the tools you mention (Dropbox, Figma, etc.)
It's also trivial to get a full data dump by going to the top level of your setup and hit "Export All As Markdown", it gets you a zip file with everything including imported images. So you aren't locked into Notion forever and you aren't screwed if they go belly up.
Thomas! I love this. Thanks for sharing. That was definitely one of my fears for adoption of Notion, since it's new and there's always they risk of it disappearing. I hope for their long term success but nice to know you can export all to markdown :)
Great article, you gave us a lot of new tools to check out!
Congrats on the CTO job!!!! I am also obsessed with Spectacle. Have you used Sketch before, if so how does it compare to Figma?
Thanks Ali! ππΌ
Spectacle is sooo good right?
I have used Sketch before and thought it was the bees knees.
Figma is a powerful tool. For me what appealed to me is, it is web-based so it is agnostic to a specific OS which makes it is more accessible than other options. I think for most of what Sketch was providing me of putting together design for UI interfaces and vector based illustrations it is awesome. I have used it for creating icons, app interfaces and illustrations so it is versatile. Where it really shines is collaboration.
In my last team at CloudBees design, we had explored other options, Sketch being the tool they had used across the entire team. But as we were ramping up our UI architecture, advocating for a design led approach and figuring out ways for dev and design to have better hand off, Figma, although didn't do everything well, checked off enough marks for us to adopt as a team.
It was nice cause we got to consolidate tools by switching to Figma since we got real time collaboration, commenting, building prototypes and team shared components all in one app/service.
One draw back for me though was the web-based approach as well. Although the desktop app will generate a .fig extension for offline use, I do like working offline at times or am forced to work offline because of a lack of wifi. This made me nervous cause I wasn't sure if Figma would reconcile changes from two sources well; meaning offline file with cloud save.
But yeah if you haven't tried it out yet, totally encourage you to check it out!