How to Facilitate a Knowledge Transfer Remotely

At the end of a recent project, I was scheduled to visit our clients for a week to hold a knowledge transfer for their development team. Due to the coronavirus pandemic, we were forced to change plans, and we opted to run the knowledge transfer remotely. I’d spent the previous weeks creating and refining an […]

Design Thinking Toolkit, Activity 21 – How Can I Help…?

You’ve conducted user interviews and now need to identify problem statements or areas of opportunity. This activity will give you a quick structure to begin synthesizing feedback and framing your thoughts. This is part of our series on Design Thinking Methods and Activities. You’ll find a full list of posts in this series at the […]

Separating Data with a Generic Recursive Partition Function in Scala

On a recent project, I took a list of items and grouped them into categories using a recursive partition function. Today I’ll explain that concept and show you how to implement it in Scala. As my example, I’ll be categorizing fun, delicious M&M’s by color. (Because, as everyone knows, blues are best and should be […]

Getting Through Limitation Fatigue in Software Design

Design thrives on rules and limitations. It’s within these boundaries that we can flex our creative problem-solving skills and come up with great solutions. Sometimes, however, a project’s limitations can feel like an absolute brick wall that we can’t see beyond. It can be incredibly draining. How do we get beyond this rut? I want […]

Why Multiple SSH Keys Don’t Work with Git, and How to Make Them

Good security hygiene includes keeping your credentials separate. You should have separate identities for work and personal tasks. Unfortunately, that’s not so easy with SSH and Git. If you generate multiple SSH keys and try to clone a GitHub repository, you may find that you don’t have access — even though you have the correct […]

Bringing Modern Design Practices to Legacy Technology

Almost all of the work we do at Atomic is forward-facing. We design cutting-edge mobile applications, rethink software that defines businesses, and develop code that automates the way our cars, batteries, and trucks manage themselves. Occasionally, we have to make software for legacy hardware. I recently finished designing for an embedded touch screen the size […]

Three Levels of Software Project Closeout Documentation

I find that authoring documentation is best done at the end of a project. Writing it too early means it needs to be re-written as things change. Unfortunately, life happens. On many projects, almost no time is available for documentation at the project’s end. This may seem irresponsible, but it’s the tradeoff teams and clients […]