What I Learned in 10 Years at a Software Consultancy

August 2015 marked the completion of my tenth year at Atomic Object. Inspired by Shawn Crowley’s recent post, Consultancies: The Smart First Job for Software Developers, I’m going to take a look back at the wide array of industries and technologies I’ve worked in while at Atomic. How might those 10 years have been different working for a non-consultancy, like a product company?

Read more on What I Learned in 10 Years at a Software Consultancy…

Configuring a Laptop with Ansible, Part One

Setting up a new laptop can be disorienting. It’s easy to forget all the configuration tweaks that accumulate over time. With just a little work upfront, a configuration management system can turn those notes into executable documentation, making it easy to reproduce a heavily customized setup on other laptops down the line.

Read more on Configuring a Laptop with Ansible, Part One…

Swiss Cheese and Pair Programming

Explaining the benefits of pair programming to someone new to the concept can be difficult, particularly when that person has the initial, understandable, reaction that they’ll be paying two developers to do the work of one—why would they want to do that?

But recently, on one of my favorite podcasts (The Skeptics’ Guide to the Universe), I heard an interesting dairy-based metaphor for how experts can work together to solve problems that one alone cannot. It provided a unique way of looking at the issue—one I think can quickly and effectively show how pair programming can be leveraged as a tool to help build the highest-quality software.

Read more on Swiss Cheese and Pair Programming…

The Easy Way to Switch Container Views in iOS

In my previous blog post, I offered a basic way to add a container view to your iOS project. Container views allow you to create a reusable component that other view controllers in your project can share.

Today, I will cover a simple way to switch between two container views—a useful trick when you have to show a different UI at runtime based on the state of your application or you design your app to transition to another view based on user interaction. Read more on The Easy Way to Switch Container Views in iOS…

An Introduction to Taxicab Geometry

The narrator of Edwin Abbott’s classic Victorian satire Flatland is a commoner, a simple, two-dimensional square. He lives in a two-dimensional world filled with other flat characters: line segments, triangles, higher-sided polygons, and circles.

Circles, in Flatland, constitute the upper classes of society, but if Abbott’s humble narrator had been born in a different flatland, he could have been a square and a circle.

Impossible, you say? Allow me to introduce you to TaxicabLand. Read more on An Introduction to Taxicab Geometry…

5 Questions to Ask When Bringing in Third-Party Code

At Atomic, we often create a lot of value for our customers by combining our high-quality custom software with open-source, third-party software libraries. This saves money that would otherwise need to be spent reimplementing core functionality, and it provides the quality that comes with the feedback loop only widely-used software can generate.

But selecting these libraries is not a task to be taken lightly. Just as the right library can offer a lot of value, the wrong library can create a lot of pain. To make sure your decision will benefit your project, ask yourself a set of questions. Read more on 5 Questions to Ask When Bringing in Third-Party Code…