Every project eventually hits a point where a big change needs to be made, and it’s going to break everything. And you’re going to be the one stuck putting it back together. Whether it’s a language or tool change that causes your application to no longer compile, a third-party SaaS service change that breaks features […]
Technical debt occurs when we knowingly or unknowingly make a decision that will require parts of our system to be reworked later. Maybe we write some messy code in the interest of rapid prototyping and iteration, or maybe we avoid updating a library because it introduces changes that will require a lot of refactoring. We […]
Some error messages, like C++ template errors, are inscrutable, and some, like the venerable favorite “segmentation fault,” are uselessly vague. But the merely unhelpful messages aren’t the worst. It’s the misleading error messages that take the prize.
I recently started using Exercism to enhance my proficiency with Ruby. It’s an excellent tool for learning a new language or refining your knowledge in a language you already know. The best part about it is that you can submit your solutions for a mentor to review and provide feedback.
Nearly all applications developed today will integrate with an external service of some kind (HTTP, Bluetooth, etc.). These integrations can pose problems for automated testing, exploratory testing, and even demonstrating functionality to a stakeholder.
Software development is a mentally challenging activity. Recently, I was thinking about this when I came across a psychology theory called cognitive load.
Dealing with undefined or null values is an issue that can range from being a mild inconvenience to a giant source of bugs and regret. Today, I’m going to talk about a relatively elegant way to deal with undefined and null values: the Maybe monad. Goals My plan with this post is to avoid the […]
In any moderately complex application, there comes a time for major upgrades. These upgrades are often deprioritized until some business case knocks on your door to make the update more urgent, which can raise insanity levels and make jumping this hurdle seem insurmountable. After having gone through this process several times on various projects, I […]
Lately, I’ve noticed a transition in my craft as a software developer. While I once devoted almost all of my mental energy to getting code to run properly, I’m now putting more thought into writing clear and maintainable code. I’ve started to understand that programming languages are not only a way for me to “talk […]
Code reviews are becoming more and more essential to the software development process. The days of cowboy coders building software alone in private offices with no collaboration or oversight are mostly gone. Instead, we’ve realized the value of building things with others who can point out hazards in our blind spots and spur us to […]