Self-Hosting Your Own Cloud – Part 6: Ad & Tracker Blocking with Pi-Hole

We can block trackers and ads while we browse the web with Firefox. But there are still a lot of apps and connected devices that may be tracking us. By setting up network-level ad blocking through DNS, we can further protect our privacy and prevent annoying ads. We will be using Pi-Hole, an excellent free […]

How to Add a Timeout to Promises in Node.js

Even though Node.js has great out-of-the-box support for asynchronous programming and promises with its async/await syntax, it doesn’t include the ability to add a timeout to these promises. I had to deal with this on a recent React Native project while integrating with a third-party library. This library had a number of functions that were […]

Software Rot, Part 2 – What Maintenance Looks Like

Software applications (like homes, cars, and nearly everything else) need maintenance. Even when the software itself doesn’t change, the systems/devices it runs on and the larger software environment are always moving forward. This is called Software Rot. Most software maintenance falls into one of these categories: Updating Dependencies – Upating the frameworks, libraries, etc. that […]

Three Crucial Times To Gather Client Feedback on a Project

The relentless push to improve is core to our culture at Atomic Object. We spend a lot of time focused on professional development and introspecting about how we can better develop software products. Over the last few years, we’ve also been sharpening our approach to gathering client feedback — we believe it’s essential to our […]

Diagnosing and Relieving Pain in Software Development

I’ve heard the term “pain” thrown around the developer community quite a bit. This “pain” comes from the vast amount of learning every developer needs to do to evolve in an ever-changing technological landscape. There are always new languages and patterns to learn and countless legacy systems which need to be integrated. Stretching one’s knowledge […]

Overcoming Pair-formance Anxiety

Pair programming is fantastic. And daunting. It’s one of the most effective ways to build high-quality code quickly and efficiently in a flexible way. But your first time pairing can be terrifying. If solo programming is like making your own lunch in the morning, switching to pair programming can feel like being asked to make […]