As developers, having an efficient environment to work in can become an obsession. While learning a workflow it’s only natural to find areas for improvement and what you’re doing well. Once you’ve settled on a flow, bottlenecks will begin to emerge, and you may address them yourself. A constant self-feedback loop is a great habit to improve your own workflow!
Some inefficiencies won’t have an obvious fix like when you’ve found yourself vehemently stuck on a problem, or realizing that last `git push` was missing a small change. Here at BigCommerce, our internal team has experience with turning these obstacles into learning moments, and today we’re going to share some of our favorite tricks.
1. Have a side project (or two… or ten!)
Dan Murrell, BigCommerce Team Lead, Software Engineering
Side projects are an excellent way for developers and designers on a long-term project to get creative in ways that aren’t aligned with your day-to-day job. You can code creatively all day long, but if it’s constrained by the requirements of a narrow project you can lose opportunities to think outside of the box. Side projects allow you to scratch an itch, and you never know what kind of “lightbulb moment” will come of that! Those fresh ideas will come back to your day job and go into your developer toolkit forever. If you can make a little money doing it, all the better!
I’ve worked on a lot of different projects as a mobile software engineer, and not all of them have used frameworks I wanted to or explored the latest ideas in design. When mobile phones and operating systems with brand new features are released, it could often take years before you’re able to take advantage of them. I’ve used personal side projects to satisfy those urges, for example, a mobile app I’ve maintained on the App Store for the last ten years. I use it to test new ideas and capabilities. Every couple of years I rebuild the app from scratch and use the latest I’ve learned since the last one. Over the ten years, I’ve supplemented my income to various degrees using that app and others. These artifacts also go into your portfolio to show prospective clients and employers. I secured two of my last three jobs by demoing that app, then talking through how I built it and why.
2. Keep a list of tiny (1–2 point) quality of life tasks to take care of at any point in time
Meg Desko, BigCommerce Lead Software Engineer
I maintain a list of small fixes and quality of life tasks to do, which may include fixing warnings, adding documentation, or removing code we used to control a rollout that is now complete. When I’m stuck or feeling overwhelmed with whatever is in front of me, I go do one of these small things. It takes an hour or two but always seems to get me unstuck.
Sometimes the main task I have to do is daunting, I’m stuck, or I just need to feel like I’ve accomplished something in a day. These tiny tasks let me do something useful (fix a warning message, for example) and experience the dopamine rush that comes with getting something done. Then I can go back to whatever I’m supposed to be focused on with renewed energy.
3. Bash aliases
Brian Davenport, BigCommerce Sr. Product Support Engineer
Bash aliases (Linux/macOS) allow you to create your own shortcuts for commands in your terminal. You can add an alias to a .bashrc file, which is located in your home directory. Write your own keyword followed by the command (or series of commands) you want to run when you enter your keyword.
With a bash alias, I can navigate to directories I visit often by entering a single keyword. I also use aliases to chain different commands together without typing them over and over. This is really helpful for managing my development environment — I have aliases for navigating to different types of projects and running services they depend on.
4. Git aliases like my special command: “git-oops”
Lawrence Wilkowske, BigCommerce Software Engineer II
Have you ever committed something to GitHub, only to realize you made a small typo or left something silly out? Having to search “how to redo commit already pushed” every time is annoying, and I don’t want to commit the brainpower to remember all of the steps, which are obtuse.
Enter “git-oops”. It will redo your commit (with the files you just changed), and then allow you to edit the commit message. You can then manually push your freshly-redone change to GitHub (having this last part be manual is a bit of a safety mechanism).
Everybody makes mistakes and shouldn’t have to bend over backward to fix them. I use it several times a week and it ensures consistency for fixing my mistakes and gives me the confidence I didn’t forget one of the aforementioned obtuse steps.
5. Use a linting plugin in your Integrated Development Environment
Patrick Puente, Enterprise Solution Architect
Linting can (and arguably should) take place at several points during development and deployment. Getting feedback from a linter as soon as you type can save hours of rework by identifying issues in your code as soon as possible. By integrating your linter with your IDE, the feedback is instant, so problems in the code can be identified and resolved before you even finish writing it.
6. The Unix Command Line
Topher DeRosia, BigCommerce Sr. Developer Advocate
Unix, without any GUI at all, is a complete operating system. It comes with thousands of tools to create and manipulate data. The command line is incredibly fast once you get used to it, and it can dramatically speed up your workflow.
Not only are there thousands of free tutorials online, Unix itself comes with a complete manual built-in, called “man pages”.
As you become more comfortable with it, the more time you’ll find you spend on the command line. Tools like IDEs, database clients, chat tools, calculators, and every kind of text tool you can think of will soon feel like your most comfortable favorite jeans.
For a short introduction to some of the options, check out this video of a presentation I gave at WordCamp Grand Rapids 2014.
7. Use a Text Expander to stop repeating yourself
Kyle O’Brien, BigCommerce Developer Community Moderator
When I notice a piece of text that I frequently need to reference (or it isn’t easily memorized), I save a lot of time by adding it to a text expander. Text expanders allow you to enter a keyword and the text will be replaced with a snippet of your choosing, a feature seen in hotkey managers as well. For example, if you’re working with several BigCommerce stores and need a reference to the store hash you could add “~client_name_hash” as an auto text for each of them. Then when you enter the auto text, it’ll be replaced with the store hash.
There are many choices when it comes to text expanders and hotkey managers, but my personal favorite is PhraseExpress. It has a free version available on Windows, macOS, and Linux which makes switching between platforms easy. Windows also has AutoHotKey, which is free and open source.
What tips and tricks do you have for keeping your workday productive and your workload efficient? Share your thoughts in the comments below or tweet us at @BigCommerceDevs.