How to Improve your Daily Working EnvironmentGet the most out of your daily working environment by using the right tools and the right processes.
The Importance of a Seamless Workspace
What makes a developer's workplace an efficient one? Throughout my varying work experiences, I've learned that an efficient workplace is one that promotes visibility and reduces the guesswork involved in any process on your machine. Defining all open space and reducing clutter where possible allows any developer to log on and jump back into whatever they were working on previously, with little to no mental exertion.
In the same way, getting the most of any application means using extensions to further simplify interactions while navigating and completing tasks. Default applications have features that work well, but extensions can create better flows for unique user cases. For example: Google Chrome as a browser has many powerful features such as user profiles and tab groupings that improve user experience. Extensions in a calendar application and the browser, however, can allow someone to immediately enter a meeting with a specific user profile and add a new tab directly to a tab grouping. An ideal setup for me is assigning apps to screens that will remain upon startup and grouping apps that complement each other on similar screens.
The image above details the desktop setup I've set up. This setup allows for quick navigation between development and communication centric workflows as I can swap out the second and third desktops as needed on my external monitor. This setup also works well with changes that will be made to applications like chrome and the default calendar application. The tab manager and calendar applications that will be discussed in later sections allow for quick joining of meetings outside of Gather and eliminate the need for multiple Chrome windows for the same profile.
Improvements to Applications
The main additions required while setting up my workspace were two third-party applications for mail and calendar processes. My main goal for a mail app was to find one that would have more advanced email search capabilities like those of the Gmail web application and that would have better visual display options overall. I found these improvements in MailSpring, which has all original capacities as the default Apple Mail with an addition of advanced search queries like from, has attached and sent before. Additionally, MailSpring also lets users compact multiple emails sent with the same subject line and has better editability based on screen sizing as well. These elements make a lot of sense for a developer workspace, allowing for customization of windows and viewing development updates in a cleaner format. One thing to note about MailSpring is that setup needs to take place using IMAP and a workaround with Google account settings.
Another application that met all the criteria was Fantastical. This calendar app seamlessly interfaces with meeting invitations, reduces the number of notifications system-wide and has cleaner support towards multi-calendar views with a system of Calendar Sets. Fantastical makes it easier to quickly jump into a meeting with menu bar support and for grouping individual calendars into Calendar Sets for quick access to different personal and subscribed calendars with one click.
Calendar views also automatically merge events with the same time and title to declutter meeting overviews. This works exceptionally well with third-party applications that have internal meeting planning mechanics and task notifications of their own. This calendar is a great tool for me, it doesn't have as many features in its free version; with minimal customizability and event synching, the UI alone is enough to consider adding this to your toolset either way.
The final main addition to my workflow was the task manager Workona and its support extension, Tab Groups Helper. This Google Chrome extension does an excellent job of taking tab groups and moving them under workspaces to reduce the number of tabs open in one window. This tab manager also supports quick switching between created workspaces as well as moving tabs between workspaces with a quick click of a button. The interface allows for better definitions of workspaces where notes, tasks and key documents can be saved for quick access.
With backups being stored for all tabs connected to this manager, Workona makes it simple to use only one window for your main Google profile, and all its shortcuts make it a very useful addition to a developer's computer environment. Both Fantastical and Workona have privacy systems in place that are enforced by GDPR that allow them access to minimal personal data like user emails, names of devices the applications are used on and website cookies. They promise end-to-end encryption between their servers and or the multiple devices that their services can be used on. This means that it would be safe to keep personal notes inside of Workona as needed, as well as personal tasks between both applications.
It is also worth mentioning a couple smaller useful additions that make development easier either directly inside of the IDE or the local web application. LERA is a web accessibility tool that tests webpages for WCAG standards, looking directly at color contrasts, discernibility of text and so on. Fake Filler is another extension that populates forms on a webpage with one click and Auto Rename Tag is VScode extension that matches HTML tags to allow for quicker renaming directly in the editor.
SPACE Framework Improvements
To represent measurements of success more accurately during this process, I used the SPACE framework for developer productivity. SPACE deals with five levels of productivity, both through behavior and the use of productivity tools. These five levels can be summarized by satisfaction, performance, activity, communication and collaboration and efficiency.
Overall, I enjoy having these application and extension customizations included in my workflow because I like to have full customizability of my working environment and the simplicity that goes hand in hand with this process makes me happier in my workspace. Reliability is another important factor that measures how consistent a feature performs. Fantastical does a great job of staying reliable for larger volumes of meetings and events for multiple accounts with Calendar Sets. The default Mac calendar application gets very cluttered easily and treats duplicate items separately, making the reliability very low for more complicated calendars. In a similar way, there is a certain amount of reduced reliability in the default mail application when a development update email is added to, every update is expanded. MailSpring improves reliability by collapsing these updates and color coding emails based on accounts, improving readability.
Activity measures the outputs and actions of a developer during their workflow. Workona reduces the number of actions needed to open an existing tab in a grouping. An addition happens directly inside workspaces and can no longer happen outside of a grouping which takes a process that can have a maximum of three steps into one. Form completion is also simplified when needed with Fake Filler, a process that would take x many steps based on the number of fields is now at the click of a button. Communication and collaboration are also improved in Fantastical; it is much easier to swap between groupings of calendar subscriptions and your main calendar views to check for scheduling conflicts. LERA is also beneficial in better communicating issues with accessibility across the application, which in turn can lead to better ticket definition.
Finally, efficiency and flow are improved using these workspace tools by decluttering with the loss of many interruptions in Google Chrome and calendar processes. Workona drops the need for minimizing tab groupings and in turn expanding the groupings when they are needed since tab workspaces are completely separated. Interruptions in the form of meeting notifications are also reduced with Fantastical as notifications are automatically dismissible, as opposed to the default notifications in the default Mac calendar application.
Learnings and Next Steps
In my search for a cleaner, more well-defined working environment, I found a lot of resources that fit my development and communication practices. Overall, these added extensions and personalized applications allow for more efficient startup with reduced clutter, faster navigation between tabs in Google Chrome as well as easier methods for joining meetings. Most areas of environment development were especially useful, except for VSCode extensions, where the availability fell short. Most extensions that were documented have very minimal additions to the IDE specifically for Ruby code and are difficult to search for in the marketplace libraries. Finding good VSCode extensions would require more thorough testing of possible solutions.
Interested in realizing your full potential? If so, we'd love to have you on the team and to share your take on the toolchain and workflow that gives you superpowers! Check out our open positions!
About the author
Vlad is a Systems Design Engineering graduate from the University of Waterloo and now holds the role of Jr Full Stack Developer at Harled.