We're hiring!

We're actively seeking designers and developers for all three of our locations.

Tools & Practices for Remote Teams, Part 2 – Communicate, Communicate, Communicate!

Two developers stand in front of a large monitor, conversing with two other developers via a video call.

This is part two of a two-part series on tools and practices for maintaining a healthy and effective remote team. In part one, I discussed infrastructure and tools for remote teams. In this second part, I’ll be focusing on day-to-day practices and attitudes. As with part one, this advice is not only for remote teams — you’ll find it beneficial even if you work on a co-located team.

The central tenet of maintaining a healthy and effective team is to make morale, cohesion, and communication a priority. Read More »

Posted in Project & Team Management | Tagged | Leave a comment

Nature Matters – Insights on Biomimicry


Image courtesy GreenWizard.

Biomimicry, biophic design, nature-based design — these are all terms that describe how natural systems offer powerful models that influence the built world (including architecture, workplace design, and technology). It’s all about finding design inspiration from nature to solve human problems.

Here are some insights on biomimicry and the potential it holds for long term sustainability in architecture, workplace design and software development. Read More »

Posted in Workplace | Tagged , , , , | Leave a comment

Finding Inspiration at CreativeMornings Grand Rapids

I’ve had the pleasure of attending the last two CreativeMornings events in Grand Rapids. And though the themes for each event were minimal and heritage, when I think back on them, the word inspiration is what comes to mind.

A shelving unit whose design was inspired by the unexpected.

Nicolai Czumaj-Bront’s piece Resonate was inspired in the most unexpected of circumstances.
Image credit Nicolai Czumaj-Bront.

Inspiration Is Valuable

Nicolai Czumaj-Bront spoke at the June 2014 CreativeMornings event and Chuck Saylor spoke at the July 2014 event, and in each talk, the speaker discussed the importance of inspiration. Saying that “I need inspiration” or “I’m going for a walk so as to feel more inspired” has an unfortunate negative connotation; in some ways, it’s like the person is saying “I’m going to keep procrastinating and putting off my work.”

I’m sure Chuck would disagree with that statement, as he reminded us of the value of sitting and watching the ocean for a while. And Nicolai gave a concrete example: one day while driving through the the midwest United States, he noticed the slightly undulating hills in the landscape in a way he has not noticed before. It inspired him to draw out some quick sketches — sketches that ultimately became Haworth’s Resonate. Read More »

Posted in Growing as Makers | Tagged | Leave a comment

Why Software Design Matters

not intuitiveAre preschoolers smarter than college students? When it comes to figuring out gadgets and iPhone apps, it certainly does seem that way sometimes.

I heard an interesting piece on NPR several weeks back about this very issue. Researchers at the University of California, Berkeley, have found that 3- and 4-year-olds use a different process than older children and adults to figure out how things work. In experiments conducted by the researchers, children had to figure out how to operate a specially designed music box. According to the NPR story,  “Children try a variety of novel ideas and unusual strategies to get the gadget to go.” For that reason they are often quicker to figure out how novel technologies work.

As we age, we start to expect things to work a certain way. And when new gadgets don’t meet our expectations, we struggle with them. Read More »

Posted in Designing for Users | Tagged , | Leave a comment

App Review: Frank Deloupe Color Picker

There’s a very small number of apps on my Macbook, but Frank Deloupe has made the cut. It’s a beautifully simple color picker that integrates with Adobe Photoshop and offers a number of very useful features. So far, it’s been well worth the $0.99 price tag.

Screen Shot 2014-08-05 at 8.09.32 AM

Frank Deloupe’s Features

  • Highly accurate color picker. – Frank Deloupe allows you to select from many color profiles, including RGB, RGBA, and Hex codes with or without the ‘#’ symbol. The ‘loupe’ will pick colors down to the individual pixel.
  • Read More »

Posted in UX/Design Tools | Leave a comment

How to Animate Images in a UIImageView with Completion Handler

I needed to do a simple animation on my iOS project recently, and I was frustrated by how difficult it turned out to be. I wasn’t writing a game, so I didn’t need to bring in the power of the Sprite Kit libraries. All I needed was to show a series of images in a UIImageView.  

My first attempt was to use the UIImageView.animationImages api to do my animation. This was incredibly easy, but very limiting. After the animation was complete, I needed to show the last frame of the animation in the UIImageView. This proved to be very difficult if not impossible with the animationImages API. After the animation completes, the UIImageView is reset to the original image that was displayed before the animation started. If my animation had been symmetric, it would not have been a problem.

Attempt #1 – Using the AnimationImages Property for Animation

This API is really simple. Load up a series of images in an array and set the UIImageView.animationImages property to that array of images. Next tell the UIImageView how long your animation is and whether to repeat the animation and call start. It is that easy. Read More »

Posted in iOS / OS X | Tagged , , | Leave a comment

Plays Well with Others – Lessons in Reusable Tooling

I’ve used many languages for my scripting needs, but my favorite — believe it or not — is probably Bash. Bash may not have any types, and scripting with Bash may be fraught with pitfalls, but sometimes the problem at hand is solved most succinctly and elegantly with small focused programs that compose well.

Bash’s composition comes in the form of piping one program’s output into the next program. No program needs to know where its input comes from, just like Lego blocks don’t care what block they stack on. This is an incredibly useful approach. For instance, take a look at how easy it is process the contents of the clipboard:

pbpaste | base64 | pbcopy

We just base64-encoded whatever was in the clipboard (at least, on Mac OS X; Linux has similar programs under different names, and on Windows you may need to write your own versions of pbpaste and pbcopy). You can use pbpaste and pbcopy and the rest of the Bash toolbox to do whatever processing of clipboard text you have in mind, and thanks to pipes, you can do it very concisely. Read More »

Posted in Development Techniques, Growing as Makers | Tagged | Leave a comment

Fixed Price vs. Time & Materials vs. FBSC (Fixed-Budget, Scope-Controlled)

Atomic Object builds custom software for our customers. Because of the complexity involved in building a great software product, software development projects are always more difficult to price than a product.

As a result two different strategies for pricing services, such as building software, have traditionally been used by most companies. These are called “Fixed Price” and “Time And Materials”.

Fixed Price

A Fixed Price strategy locks in the total price of the project upfront.

  • Static Variables: Scope, Cost
  • Flexible Variable: Quality
  • Assumption: The estimate and plan are correct and will not need to be changed.
  • Risk: On Consultant (Responds by inflating cost; may compromise quality if estimates are inaccurate.)
  • Effect of New Information: Causes conflict about what’s covered by the scope vs. what requires a change order. New ideas are rarely incorporated.

In this strategy, the vendor is taking on all the financial risk of a project. They have committed to completing the project for a specific price. If they complete the job early, it’s a bonus for the vendor (and you the client has overpaid), if they don’t then the vendor loses. In order to mitigate this risk, they will want to know all that can be known about this project and the risks before it will commit to a fixed price. Read More »

Posted in Planning Your Project | Tagged | Leave a comment

25 Reasons I Love Being an Atom!


I always find myself unintentionally bragging about my job to Facebook, my friends and family – and recently, I took a survey for the 2014 Crain’s Cool Places to Work in Michigan. It motivated me to give my perspective as to why I love my job and why working at Atomic Object is so flipping awesome!

Respect & Encouragement

  1. I’m on the A Team! – My boss Shawn once explained to me that everyone who works for Atomic is part of the A-team and that we don’t have room for a B-team. And if you met some of my co-workers you’d understand why. I work with some of the most brilliant individuals in the industry and it rocks for me to be apart of the team!
  2. Our bosses trust us. – Since we are the A-team our bosses trust us to do a great job. No micro managing exists here.
  3. 1 on 1’s – Once a quarter our Managing Partners take time out of their busy schedules to check in with each and everyone of us to check in to see how we’re doing. They care about our well-being and want to provide us the opportunity to share any concerns, worries, or excitements!
  4. Read More »

Posted in Culture | Leave a comment

JRuby, Rails, and Jetty – Where Are my Assets?

Recently, I was spinning up an extremely simple Rails 4 project, which was to serve as a portal to several other applications deployed on the same Jetty instance. This was not my first JRuby on Rails rodeo, so I was expecting a smooth deployment.

When I deployed the WAR into a Jetty instance on my local machine, neither the CSS nor images were being served correctly. The application server was giving me a 200 return code with the correct content length header, and then giving me a zero-byte response. Having never encountered this issue before, I talked to my pair on the project, who was standing up a separate Rails 4 app for the same application server. He was seeing it too. We compared notes. Heads were scratched. Read More »

Posted in jRuby | Leave a comment