Here are some of the things that I’ve done to improve my productivity as a software engineer. I hope you find them useful!
Touch typing
I’ve mentioned touch typing (typing with all 10 fingers without looking at the keyboard) in my blog post about improving my posture, because it does great wonders for keeping my posture correct while sitting. I love it when a technique improves both health and productivity!
I used the site called keybr to learn touch typing. It is free, simple, and very practical. In total, it took me about a month of 10 minutes per day of practice on keybr to get good enough at touch typing to start using it in everyday work on the computer.
The result is that I can type much faster now. But it’s not just about speed - touch typing also unlocks a lot of other productivity improvements, which I’ve described below.
Vim
Vim is a text editor that is optimized for mouseless development. It allows me to navigate my code editor without reaching for the mouse. This again has two benefits - it speeds me up and also improves good posture.
Another benefit of not using the mouse is that I can code almost anywhere - for example, at the airport.
I’ll write a blog post about how I learned Vim in the future, but here are some tips:
- Learn touch typing first - Vim keybindings are based on touch typing.
- Start by working with Vim in your spare time, and learn it gradually.
- Use Vimimum (see next chapter) first to get used to the keybindings.
Vimimum
Vimium is a browser extension that allows you to use the browser without using the mouse. When you get used to it, it is much faster than using the mouse.
The extensions is based on Vim keybindings, so it’s also a great way to get used to Vim keybindings before you start using Vim itself.
AI
It’s the era of AI, and whether we like it or not, it amplifies our productivity. I believe that AI will be a part of every software engineer’s productivity stack in the future. I currently use:
- ChatGPT for brainstorming, validating existing ideas, and getting unstuck.
- Copilot for writing code. It automates the writing of boilerplate code, and it often saves me from having to Google for a trivial solution.
Hotkeys
I used to be really intimidated by hotkeys. I felt like each application had its own set of hotkeys, and I could never remember them all.
I however quickly realized that the human brain can be very good at remembering hotkeys. As long as I managed to remember to use a hotkey a few times, the hotkey would get baked into my muscle memory, and from there it would be effortless to use it. It is similar to driving a car - once it is in your blood, you can use it without thinking about it.
My way of learning hotkeys is to learn them by using them in practice. Whenever I don’t remember the hotkey, I Google it and then use it. With time, the hotkey gets into long-term memory so I no longer need to Google it, and from there, it gets into my muscle memory.
Fish shell
Fish shell is a shell that is optimized for productivity. My favorite feature is autocomplete.
Linux (Pop!_OS)
I’m a big fan of Linux. I wouldn’t say that using any other operating system would make me less productive, but what I like about Linux is that it is open-source and customizable.
Equipment
I’ve invested in some equipment that makes me more productive.
- Laptop stand - easily the most important piece of equipment. It allows me to keep my laptop at eye level, which is important for good posture.
- System76 Lemur Pro laptop - it is light, fast, with long battery life, and Linux-based.
- Logitech G915 TKL keyboard - it is wireless, mechanical, and small enough to fit in a backpack. It is a must since I use a laptop stand.
- Wrist rest for the keyboard - helps keep the wrists in a neutral position while typing.
- Logitech MX Vertical ergonomic mouse - it prevents wrist pain.
All of these items can be packed into my backpack, so I can bring my productivity stack with me wherever I go.
Window management with workspaces
I’ve written about this one in the post Managing windows productively. Instead of using multiple monitors, I use Pop!_OS workspaces to manage my windows. This allows me to not depend my productivity on having two monitors, and it enables me to use an unlimited amount of (virtual) monitors.
Of course, there is nothing special about Pop!_OS workspaces - any operating system that supports workspaces works.
Sleep schedule
Sleep is the foundation of productivity. For most of my life, I thought that I was the most productive at night. I would therefore go to sleep late and wake up late, but I would never wake up feeling refreshed.
Last year I decided to experiment with different sleep schedules. I’ve realized that I am actually a morning person - when I wake up early, I feel more motivated, productive, and happy.
My message here is that you should experiment with your sleep schedule. You might be surprised by the results like I was!
To-do list
I use a to-do list to keep track of all my obligations. This helps me stay organized and not forget anything. I can focus on the task at hand without stressing about other tasks that I need to do in the future, which improves my well-being and increases productivity.
I use Todoist, and I base my system on the Getting Things Done methodology. I strongly suggest reading the book - even if you don’t end up using it, it might inspire you to come up with your own productivity system.
Password manager
I use a password manager to keep track of all my passwords. This allows me to use strong passwords without having to remember them. It’s not only faster, it is also more secure.
Exercise
It’s a paradox, but I’ve found that I am more productive when I exercise. It’s probably because exercise gives me more energy and makes me feel better. I try to exercise in the morning, before my work, so I can transfer the energy boost from the exercise into my work.
Preventing procrastination and eliminating distractions
This topic deserves a blog post of its own, but to give a brief overview, I use the following techniques to prevent procrastination and eliminate distractions:
- Using a website blocker to block distracting websites.
- Hiding elements on websites that distract me (example: Distraction Free YouTube hides all elements on Youtube, except the video itself)
- Blocking websites and apps on my phone: I use Stay Focused.
Pomodoro technique
I use the Pomodoro technique to take regular breaks. I work for 25 minutes, and then take a 3-minute break. After 4 pomodoros, I take a longer break of 5 minutes. During the break, I do at least the following: stand up, make 50 steps, take a drink of water, and look out of the window.
It might seem counterintuitive to take breaks when you want to be productive, but I’ve found that it actually helps me stay productive for longer. It also helps me stay healthy, because I don’t sit for too long.
Conclusion
I hope you’ve found some of these tips useful. I’ve found that the key to productivity is to make small improvements to the way I work and then to keep improving over time.
Of course, these tips will change in the future - the key is to keep exploring new ways to be productive and eliminate the old ones that no longer work.
Thank you for reading!