Ever since we transitioned to working remotely, there’s been a lot of remote pairing going on. Previous to this, I’d only done remote pairing for quick knowledge transfers (before going off to work solo or in person with a different pair). The benefits of pairing are well understood, and going remote means that some of […]
When you need to learn a bunch of new things at once, constantly context switching between them can be very counterproductive. Concepts can get jumbled together in your head, and it can become impossible to remember which information applies to which topic. Fortunately, there are a few simple things you can do to help you […]
Doing maintenance work on a codebase isn’t very glamorous, and it isn’t always much fun, but it’s an important piece of building lasting software. Everyone loves working on so-called greenfield projects because they can let their creativity run wild. Adding features and fixing bugs in a system that’s already been built doesn’t seem to generate […]
As a software developer, working alone can be very liberating. You can move at whatever speed you feel comfortable with. You have the freedom to explore ideas without having to explain or justify them to anyone else ahead of time. You can twist and turn — speed up or slow down. The mere presence of […]
Every developer has had to deal with the struggle of sifting through documentation that is incomplete, incoherent, outdated, or simply non-existent. Whether it’s libraries, frameworks, or platforms, the presence of good documentation can mean the difference between success and failure. The absence of good documentation is a serious enough downside to justify avoiding a certain […]
Code reviews are a common practice at many software companies. Being a good recipient of a code review is just as important as producing quality reviews for others. The key to handling both of these situations well is to approach them as learning opportunities. A good code review should maintain code health, encourage healthy team […]
Many people think of React and Redux as inseparable, despite the Redux author’s own advice to avoid using it “until you have problems with vanilla React.”
Picking the right libraries for your project is important. The wrong ones can create long-term headaches and introduce technical debt that will eventually be very expensive to correct. When making your choice, there are a few important things to think about, and a few common things to avoid.
Much has been written about the technical challenges of rewrites. In one of his most famous pieces, Joel Spolsky argued that rewrites are almost never a good idea. On the surface, it seems illogical to spend a lot of time and money duplicating code that’s already working, and in a lot of cases, it doesn’t […]
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.