Say you’re about to begin a task that will involve working with some files. Perhaps you’re creating a diagram or encoding some GIFs. Where do you put the files?
I suspect almost everyone reading this blog has taken notes before, especially in a classroom setting. As my career has progressed from college student to professional developer and finally to a managing partner, I’ve also found that note taking is useful while developing software. In fact, note taking is a transferable skill—one of those abilities […]
If you are doing any sort of object-oriented development, you’re bound to reach a point where the number of objects in your codebase is greater than the amount you can keep in your head. Eventually, you will have so many different types of objects (services, managers, service-manager-helpers, etc.) that it gets hard to remember what […]
A recent project required our team to transfer knowledge of our code base to another remote team. We decided that remote pairing would be the most effective way to do that. Since our project is written in TypeScript and all of us were on board with using Visual Studio Code, we decided to try Visual […]
While rewriting some validation logic recently, I got to thinking about how “validation” tends to be an umbrella term that covers related, but distinct, operations. So I went back to the basics in order to find more accurate terminology for each step of the process.
Wednesday morning, I pulled out my phone to Slack my team and let them know I was running late. At first glance, Slack seemed to be missing. I scrolled through my app list twice before finally locating it. When I got in to work, office chatter was about Slack’s new logo, with everybody asking, “Have […]
Refactoring isn’t just about optimization or replacing some ugly code with something more elegant. It’s also a chance to keep things organized and consistent, which: Helps new team members understand things better. Helps everyone contribute faster because they don’t have to consider competing patterns or conventions.
If your software team develops multiple new features simultaneously, you need to be able to deploy and test them in isolation. The gold standard for this is to use Heroku’s review apps, which are temporary environments automatically spun up for each pull request. Unfortunately, the feature only works with GitHub; if you’re using another source […]
Most projects that last more than a few weeks accumulate some form or another of automation. Some carefully craft jobs in a package.json file and run them with yarn automation. Some stuff their Makefiles full of .PHONY targets and run them with make my-automation-better. Still others fill up a directory with Bash scripts and run […]
When it comes to writing documentation, nobody wants to do the job. And whatever documentation does get written is quickly outdated because nobody wants to update it, either. The most accurate documentation of how a system works is the code itself, but even “self-documenting” code falls short of describing why it was written that way. […]