Four Steps To Maintaining a Clean Git History

Git is a very important tool. Not only does it keep a history of a project, but Git also makes it easy for a team to collaborate in a codebase. Although it’s such an important tool, it’s often under-utilized and on occasion, even neglected.

A clean Git history is easy to understand and tells a story about the project. It’s evident when features were added and how they were implemented. I’ve come to cherish a clean Git history on a project. The good news is, it’s not very difficult to keep this history clean. Read more on Four Steps To Maintaining a Clean Git History…

How to Programmatically Remove a Cell From a Static UITableView

There are two different ways to add cells to a UITableView.

The first is by using dynamic prototype cells in your table view. For a dynamic table view, you programmatically arrange the cells and sections of the table view by implementing the UITableViewDataSource protocol in code. Using this method, you can display a variable number of cells and sections at runtime. Read more on How to Programmatically Remove a Cell From a Static UITableView…

KPI Monitoring with Fabric.io

Until recently, all of the application monitoring solutions that I had seen suffered from one major pitfall or another. Either they were too difficult and time-consuming to set up, or they had convoluted and byzantine reporting mechanisms. After becoming disillusioned with Firebase, our team recently switched one client over to Fabric.io, and we’ve been extremely happy with the results.
Read more on KPI Monitoring with Fabric.io…

How I Learned to Love (or at Least Like) Pair Programming

Some people are naturally inclined to pair. Not me. My brain is all over the place when I code, so it’s difficult to focus energy on solving the problem at hand while explaining my reasoning and approaches to my pair.

This thing is, pair programming is a highly-regarded and widely-practiced convention here at Atomic. When I started here, I had never paired before. And I was quite surprised to see both how effective it was for others, and how difficult it was for me.
Read more on How I Learned to Love (or at Least Like) Pair Programming…

Code Like a Craftsman with a Vim Clutch

Stroll around our Grand Rapids office, and you’ll find some unique input methods. Curved, split, and mechanical keyboards, mice shaped like everything from sashimi to joysticks, giant trackpads, drawing tablets, Echo Dots, and Yetis. We like to keep things interesting when it comes to our workspaces.

For the last hundred days, I’ve been kicking around a centuries-old input method in a new context. Here’s how you can set up your own Vim clutch.
Read more on Code Like a Craftsman with a Vim Clutch…

Virtual Network Customization in VMware Fusion

When working on a project where we need to run software that typically runs on another operating system, virtualization can be a very useful tool. On macOS, VMware Fusion is an excellent choice for this; it has many time-saving features, and its compatibility is top-notch—especially if you need to run Windows or macOS itself in a VM. Read more on Virtual Network Customization in VMware Fusion…

Reflecting on Single-Page Applications

Although I was an early adopter of client-side web applications, it’s hard to fully divorce yourself from all the tradeoffs that go into a system you’ve built when analyzing a single aspect. Recently, I’ve been noticing that some of the websites and services that I rely on in my day-to-day life have been rewritten into SPAs, so I’ve taken the opportunity to step back and reflect on the effects that are visible to end users. Read more on Reflecting on Single-Page Applications…

Ancient Stoic Wisdom for Writing Better Software

My time at a software company has shown me how much focus there is on the new: new smartphone and laptop models, new revs, new development boards, new languages, and so on. But what about the old? I’m talking really old, like “two millennia before the Unix-Epoch” old.

The Stoic philosophers Zeno of Citium, Epictetus, and Seneca spoke at length about logic, control, and truth–all terms we discuss as programmers, but with very different meanings and applications. Still, Stoic works have lasted for thousands of years. What lessons do the ancient Greeks have for an industry with an obsession for the newest, latest thing?
Read more on Ancient Stoic Wisdom for Writing Better Software…