Everybody needs an occasional vacation — time set aside to relax, recharge, get inspired, expand your horizons, etc. You don’t need to travel far to get these things, but it certainly helps to move yourself out of familiar territory. As a programmer, it’s also important to occasionally get away from the codebases you use on […]
Amazon’s S3 service comes with some pretty handy server-side encryption features. In fact, the S3 web app provides a single control to automatically encrypt all new objects in a bucket with SSE-S3 or SSE-KMS. Unfortunately, these controls only affect new objects. If your bucket already contains 10,000 unencrypted objects, then turning on automatic encryption does […]
Pytest’s fixtures are a pretty convenient route to dependency injection throughout your tests. They’re flexible, too, and involve very little “magic.” This means they’re easy to learn, understand, and use correctly. The Pytest documentation explains that a fixture can pass back anything to the caller, including a function. This allows you to essentially create parameterized […]
Yesterday, I explained the different ways that errors can be represented in your code. Today I’ll talk about error handling, which is what makes errors such a tricky subject to begin with. Why is error handling so difficult? There are typically many more ways for a system or operation to fail than to succeed. Error […]
Yesterday, I talked about the many types of errors in software and how you can categorize them strategically. Now let’s talk about how you can capture and represent errors in a useful way.
Errors are under-appreciated. I discovered that on a greenfield project when it occurred to me that I had essentially no tools in my developer utility belt for architecting them.
I’ve completed a few projects that involved prototyping software in a very short timeframe. This situation can differ drastically from the normal pace of agile projects because results and certainty have to be prioritized above long-term considerations. If you find yourself in a situation where you need to push code out quickly (and won’t be […]
I recently worked through a seemingly-endless problem inside of a tech stack that I have little experience with. After about half a year inside of a different project that I knew everything about, this process felt pretty painful and frustrating. In fact, I had to experiment with a number of solutions before I found one […]
At Atomic, many people have read and enjoyed Cal Newport’s book Deep Work. This book is all about the importance and the art of achieving great things by eliminating distractions and maximizing flow.
Recently, I needed to implement an unusual feature for a React front end: a reusable component that displays server-rendered pages from a legacy version of the same app. If you’ve found yourself in a similar situation, I hope this guide will make life easy for you!