Productivity Tips for Software Engineers | Version 0 | 4 General Tips

Many of which would apply to anyone who uses a computer

Let’s just dive straight into it!

1. Shortcuts

If there’s anything that SCREAMS productivity like nothing else, it’s shortcuts. With that said, just learning all the shortcuts isn’t the best strategy here. Instead, there’s this concept called the “80/20 rule” which I recommend applying to shortcuts.

The 80/20 rule says that roughly 80% of the outcome comes from 20% of the work. A twist on this rule would be to say that 80% of your work happens within 20% of the applications that you use (and if you’re reading too much into this you know I’m kind of extrapolating here—but stay with me). Knowing that, here’s how you can best use shortcuts:

First, figure out which applications you use the most.

There’s no need to do some crazy time tracking thing: instead just pay attention to the apps you spend most of your time on. For software engineers, it’s probably your text editor / IDE.

Finally, may it be VS Code, IntelliJ, or whatever else you use, learn the shortcuts for the actions you take most often within the application.

Using VS Code for example, here are some of the shortcuts I basically memorized (and these are Mac shortcuts):

  • Searching for a particular line? <command> + F
  • Searching for a file to open? <command> + P
  • Running a command? <command> + <shift> + P
  • Copy the currently open file name? <command> + <shift> + P, then type “Copy” and choose the right copy action
  • Want to change some settings? <command> + ,, then search the necessary setting
  • Toggle the sidebar? <command> + B
  • On the sidebar, want to navigate to the explore tab? <command> + <shift> + E
  • On the sidebar, want to search something? <command> + <shift> + F

And on and on.

To recap on how to best use shortcuts to boost your productivity, you should focus on the most common actions within the most common applications you use, and then you should learn and use the shortcuts for those actions.

2. Chrome Browser Features

If you work as a software engineer, chances are that you use the Chrome browser for your work (and if you don’t, what are you? 😤). One thing that makes Chrome great is that it has a ton of features that allow you to be more productive. I’m going to share some of them.

Bookmarks + Bookmark Folders

When you save a website as a bookmark, you make it much easier to re-open that same website. It works by pressing on the little star icon, and if you do it’ll show the following prompt (and if it’s your first time doing this, the “Folder” will be “Bookmarks Bar”):

My Own Screenshot: Prompt when you click on the star icon to save a bookmark

Fun fact: You can also press <command> + D, and it’ll trigger that same prompt :).

Now, what I really like about bookmarks is this idea of “Folder”. Essentially, you can dump a bunch of related links into the same folder, and what’s cool is that you can more easily access those links in there. For instance, I have a “Programming” folder that looks like this:

My Own Screenshot: The programming folder in my bookmark bar. Note how I have two other folders there: “Life” and “Finance”.

Finally, the last tip I would give here is that if you choose to not name the link (blank name), then they’d still show up in your bookmark bar except it’ll only be the icons. I found this handy for websites that are easily recognizable: Google Calendar, Youtube, GoogleDrive, and Netflix. See below.

My Own Screenshot: Bookmark bar with icon only websites.

Combining all of this, you can do something really special with your bookmark bar that boosts up your productivity.

Chrome Tab Groups

Chrome tab groups are powerful for when you open a bunch of windows related to one task and want to keep them grouped together. I think I have over 100 windows open on my browser—and without tab groups it’d be a huge mess!

Now, how you do this is you select all the tabs that you want to group (by holding <command> and pressing on each tab that you want in the group), right click, and then select “Add Tabs o New Group”, like below:

My Own Screenshot: How to create a tab group.

This then leads to a prompt where you can name and color the particular group:

My Own Screenshot: Example tab group. Here I named it “Blogs to Read”.

There you go! Play away with these groups, they’re really powerful for your productivity.

Chrome Link Shortcut

Chrome link shortcuts are one of my favorites features of Chrome. Normally when you type something on your browser, you’re searching for a page. With Chrome link shortcuts, you can essentially program a word or prompt to do pretty much anything!

I know that sounds vague, so I’ll give you a couple of examples that I have set up on my browser and then explain how to set them up:

  • If I want to open a new tab right next to the current tab I’m on, I just navigate to the search bar and type tt
  • If I want to remove the focus from the search bar, I just type u and it will bring the focus back to the page
  • If I want to search something on Amazon, I just type amazon , then press the space bar, and then search whatever I want—and this will take me directly to the Amazon search page with what I queried. I have set up similar search queries for Medium (with medium), Facebook (with fb), Android Developer Documentations (with android), CDC, Github (with gh), with Google Maps (with map), and other websites. See the Gif below for an example in practice.
My Own Screenshot: Example of using this chrome link shortcut

I’ll explain how to set up the examples I gave, and they all follow a general pattern. First, the pattern. Open your chrome settings (by pressing <command> + ,), click on “Search Engine” on the left sidebar, then press on manage search engine, like this:

My Own Screenshot: How to get to the Search Engine page.

The next step is to add new “search engines”. Each search engine essentially maps a given keyword (say map) to take a particular action (say take you to the Google Maps site with the words you queried). You can do pretty powerful stuff here. To add a new search engine, navigate over to the “Other search engines” section and click on “Add”.

My Own Screenshot: Click “Add” here to add a new Search Engine.

Then, it gives you a prompt with 3 things to fill out: (1) the name of the search engine, (2) the keyword (what you’d type on the search bar to trigger it), and (3) the URL. Here’s an example with adding the map keyword for Google Maps search (though it complains in this video because I already had map, it should work for you if you want to add this):

My Own Screenshot: Example of how I create a shortcut to Google Maps search.

One question you might have: What should the URL be? Well, that depends on the site. You kind of just have to play with it. I’ll give you below the urls I used for the examples I gave above:

  • map (search on Google Maps): https://www.google.com/maps/search/%s?hl=en&source=opensearch
  • amazon (search on Amazon): https://smile.amazon.com/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=%s
  • tt (open a new tab right next to the current tab I’m on): javascript:window.open()
  • u (remove focus from the search bar): javascript:

Take a note of how the last two use javascript:<something>. These are the “tricks” that basically allow you to run any javascript function. Try this on your search bar for an example: javascript:alert("Hey there!").

That’s all for the chrome link shortcuts! What you now have to do is figure out which actions you’d like to take the most often in here and then create these shortcuts for yourself to boost your productivity. 🙂

One last thing, a Chrome shortcut that works really well with this one is <command> + L, which puts the focus on the Chrome search bar.

Chrome Extensions

Do I even need to mention this? One thing I will say about Google Chrome Extensions though is that I’ve actually spent time writing one before. It was for a class on digital security, and the project was to audit and evaluate whether there exists security vulnerabilities in the ways the Chrome Extension library is set up. While my group found that Google’s policies and guidelines are somewhat safe, many of the extensions still break at least one security guideline set forth by Google. All of this to say: carefully vet the extensions you choose to download.

If you pay attention, these Chrome features are essentially “shortcuts”, they are just not keyboard shortcuts. So, you can probably see how the same things I said about shortcuts conceptually apply to “features” of an application that you use often—especially when those features are there to save you some time and make you more productive.

3. Mac Features

A lot of software engineer use Macs for their work. So, it only makes sense to talk about ways we can speed up our work with Mac features.

Quick Toggle Between Apps: Command + Tab

It works just as written there: press <command> + <tab> and it will give your this prompt where you can quickly toggle between different apps. If you keep pressing the <tab> key, it will let you select the application that you want. If you press <shift> with it, it will move to the previous app.

NOTE that you have to keep holding the <command> key, and it is when you release it that it will bring up the window of the app you selected.

Quick Toggle Between Different Windows of the Same App: Command +`

This one is the same as the previous one except you’re toggling between windows of the same app in the same desktop. Press <command> + ` to do so. I use this often when I have a bunch of Chrome or iTerminal windows.

Spotlight Search: Cmd + Spacebar

If you press <command> + <space>, it will open the spotlight search, which allows you to search for pretty much anything on your Mac. This is powerful for opening stuffs quickly. I often use this to open applications or do quick mathematical calculations. For instance, if you press CMD + <space> and then type 1200 * 0.093 (which computes 9.3% of 1,200 if curious), it will give you the result which is 111.6.

Hot Corners

If you open the Mac settings (<command> + <space> then search System Preferences— and it will usually autocomplete for you and you can just press Enter when you see it). Then, go to “Mission Control” and then in the bottom right corner, there’s the “Hot Corners” button. Click on that.

My Own Screenshot: The “Hot Corners” button.

Then, select the options you want for your hot corners. For me, I have “Desktop” (which shows me the desktop) and “Launchpad” (which shows me all my applications which I can open).

My Own Screenshot: The hot corners that I have set up.

What does this do? It makes it so that if you navigate your mouse to that specific corner of your monitor with your mouse, the action you’ve selected will be done. So, for me if I move to the bottom left corner, it shows my desktop and the bottom right corner triggers the launchpad.

A word of caution: hot corners are not everyone’s cup of tea. I would suggest you try it and see how you like it, and then you can disable them if you don’t like it.

(Super Niche) Mac Services: Custom Actions

Mac custom actions are sort of Mac’s way of allowing you to create actions that you do repeatedly. I’ll give you an example. When you take a picture on your iPhone, the format is .heic. However, Google Drive does not accept this format (if you wanted to upload a photo to it). So, you have to convert that picture to one of the accepted formats (say, .jpeg) if you want to upload it to Google Drive. Converting to JPEG is annoying: open the image on Previews, click on “save as” or “export”, select JPEG format, and then save it. That’s a whole bunch of annoying, repeatable steps that could be automated.

Custom actions can help you do this kind of automation—the action of converting to .jpeg is actually something that I’ve created myself. With that said, these are kind of annoying and jank to set up—so I’d suggest doing them only when you have something super specific that you want to do. You can either follow this guide from Apple or try to learn it yourself (I learned from an online Google search). The application you use to create these actions is called “Automator”.

My Own Screenshot: The automator app! It’s a bit of a learning curve, so I’m not bothering explaining it in this blog unfortunately :P

With that said, here’s me dropping the action I created to convert images to JPEG if you want that:

My Own Screenshot: Automator action to convert an image to JPEG (which can take in any input such as “.heic” images from iPhones).

Honorable Mentions for Mac Features Tips

These are tips that I still use but that I thought didn’t really need their own sections:

  • In the system preferences, navigate over to either mouse or trackpad. Within that, there are swipe actions that already exists or that you can customize to your liking.
  • Also in the system preferences, navigate over to keyboard, and from there you can create word shortcuts. E.g., you can make “msg” turn into “message” whenever you type it, or even a shortcut like “myaddr” turn into your full “123 Street Name, City, State 45678” address.
  • To close a window, press <command> + W. To close an application (i.e., “force quit”), press <command> + Q. If that doesn’t work, open the Activity Monitor app and close it from there. If that doesn’t work, then there is a command to close it from your terminal—see below.
  • Swipe up with 4 fingers on your trackpad to see all open applications within a desktop and easily switch among them.
  • You can take screenshots using <command> + <shift> + 3—that takes a screenshot of the entire screen. If you want to select an area though, you can do <command> + <shift> + 4 and then select it. If you want to record a particular section, you can do <command> + <shift> + 5 (and here you can either screenshot or screen-record, full size or section—it’s like the master screen capture option).

4. Terminal Commands

First of all, outside of the tasks that you have to do to actually do your job, do you use your terminal? If not, then I highly suggest that you do. The use of the terminal—as opposed to any GUI of any kind—unlocks a ton of power and productivity to your advantage. And yes, I know that using a terminal is super hard at first. The terminal application is so intimidating and hard to learn—and you’re just afraid you will run the wrong command that will literally make your computer explode. Thankfully, not only the benefits of it are insane in boosting your productivity but also, I haven’t heard of any command to blow up a computer so I think we’re gonna be safe on that front.

There’s a lot of terminal commands out there, but similar to shortcuts, the 80/20 rule apply. So, I would ask a similar set of questions: what actions do I need to take the most often? Then keep a list of commands handy for those.

First, you have to learn all the super basic terminal commands. This website/blog lists many of them, but among those I would focus on mastering or understanding the following basic commands: cd, pwd, ls, mkdir, touch, cp, mv, rm, cat.

Then after that and in general with terminal commands, you just end up learning a bunch of them over time. For me though, here are the ones I use often:

  • man : This stands for “manual”, and it is a command that tells you how another command works. For instance, man mv will explain how the mv command works.
  • grep: If you’re a regex user, grep is useful for searching for various things within a file or many files.
  • | (pipe): This essentially takes the outputs of the first command and sends them as input to the second command. So, command1 | command2 will make whatever command1 returns the input of command2.
  • Keyboard shortcut <command> + K: this clears the terminal outputs.
  • kill -N PID: This kills a particular program/process that’s running based on the ID of the program (with is what the PID is). For instance, kill -9 34255 will kill the process with id 34255 and the -9 means that we want to kill that process. There are other numbers available, which you can find by running man kill.

In addition, you can create your own commands which are made up of other commands, and you can even create your own scripts (which is basically what a command is)—and that would definitely be an article for another day.

Photo by Federico Beccari on Unsplash

Conclusion: Why I call this Version 0?

Productivity is honestly like a cult, and this article barely touches the surface of it—and it’s already LENGTHY! I previously wrote an article summarizing the book The Effective Engineer—a book my manager suggested to me to read soon after I joined my company.

I wrote that article over a year ago and since then have grown so much, and when you grow, you practically tend to do more with the same amount of time (technically, not necessarily—you do different stuff, prioritize better, and potentially delegate more, but it still feels like “more work”). To do that, you have to work more efficiently and effectively, so productivity becomes more and more part of your every day life.

One thing I hope you got out of this is the general underlying theme around the 80/20 rule. To me, this rule is the cornerstone of productivity. Knowing tricks isn’t as important as knowing the right tricks that get the job done, and the 80/20 rule guides you towards figuring out the right tricks for you.

I plan on writing more articles like this to touch further on this topic of productivity. There’s so many things: regular expressions, vim, productivity systems, terminal customizations—bashrc or zshrc, bash scripts, collaboration and communication tips, organizations around meetings, typing faster, etc.

So, let’s see how many versions we get. 🙂

Hey there, you made it this far! I regularly write on medium about book reviews, philosophical topics, life reflections, or any other topics that peek my interest. If you’d like to be notified whenever I publish a new story like this one, you can subscribe here, and I promise you one thing: these articles will make you think. See you soon and thanks for reading ☺️

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Robert M. Vunabandi

Robert M. Vunabandi

I’m a human, living on earth, and doing Software Engineering. I enjoy reading thoughtful posts, and I like to write! So, here we are.