One of my goals as I started my first software engineering job, was to learn as much as I can from the talented people around me. Whether that be from the engineers, product, or designers, there is always something to learn by having an open mind and being inquisitive about the process. Over the last two months, I have soaked up information, of all kinds, from my colleagues. I’d like to share my recent discoveries on development tools, my self-driven quest to upgrade my workflow, and lastly, the resulting productivity boost.
Visual Studio Code
Visual Studio Code — Debugging Express.js applications
Postman — Pre-request Script
Most developers have used an HTTP client of some sorts: curl, Postman, Paw, or another tool that sends HTTP requests to a remote API. Nearly all of the popular websites today use OAuth for authorization to access specific API endpoints. To query an authenticated endpoint, you have to log in the user with one request and then send another request using the authenticated user’s bearer token in the header. Saving the token doesn’t tell you which account the token belongs to nor when that token will inevitably expire.
Xcode 9 — Refactoring code made easy
There is no replacement application for Xcode, but there are a ton of settings to help fine tune the application to your needs. I never touched these settings until I saw an engineer on my team use them during a pair programming session. Once I saw his workflow, I knew I had to integrate it. It was a simple setup with three tabs in Xcode with one tab for coding, one tab for debugging with the debugger and console view, and the last tab for showing the modified files from git. Separating priorities into three distinct tabs makes Xcode feel organized. After setting up the tabs, I added the behavior to open my tab named “Debug” when the running application hits a breakpoint, to complete my setup.
git — $ git add -p
I have been using git for source code control for years, but there are many git commands that I have never touched. Using git is straightforward, but using it well is challenging. As I started working, I realized how I spent a large portion of my time using git on the command line. Therefore, I should improve my knowledge on the tool to save myself time. My biggest improvement was learning how to use the git staging patches, thanks to my coworker. Now I can commit specific chunks of my code from my files. Before I would have debug statements in my code that I would remove before I committed, but now I can merely choose to ignore that chunk of code in my commit and then drop those changes completely. It also helps me review my changes because it acts like a chunked diff.
Source: CNET — Macbook Pro 2017
As I upgraded my knowledge in development tools, I felt considerably more productive every day. It is a continuous process to stay up to date on the latest tools, but it comes with great benefits. Previously, I was comfortable with my tools and my knowledge with these tools for too long because I thought my output was satisfactory. I was wrong. While working with others, I was exposed to their preferred applications, settings, and style which helped me shape my setup.
Some of my changes were small and some were large, but together they compounded to make a noticeable difference. I create new features faster, I get less frustrated, and overall I’m happier. I believe everyone should audit their development tools, skillset, and knowledge to improve their output quality and quantity while sparking a renewed interest in the never-ending pursuit of learning.