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 […]
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.
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. […]
When you’re working on a piece of software for a long time, it can be easy to overlook poor architecture or an awkward UX. You may spend your day avoiding the dark corners of your app and choosing to forget that they even exist. Unfortunately, when this happens, the health of our codebase and application […]
Bluetooth is one of those technologies that seems like a very simple thing from the perspective of a user—you set it up once and forget about it. But in reality, there’s a lot of complexity hidden behind the scenes. As we all know, wherever there’s complexity, there’s more that can potentially go wrong.
In the last two years, I’ve worked on a few projects passed on to me by other teams. Inheriting an existing codebase can be a challenge, given you weren’t there when architectural decisions were made, you are less familiar with the project domain and client needs, and you are just new to the codebase. In […]