We're hiring!

We're actively seeking developers and designers for our Detroit & Ann Arbor locations.

Evolving the Industry

Cross-Train to Become a Better Programmer

last-minute-code-review-smallProgramming attracts people from a huge number of backgrounds. I’ve seen great programmers who started as mathematicians, journalists, musicians, physicists, and mechanical engineers. Even formally-trained programmers come from a wide range of liberal arts, engineering, and business schools. It’s one of few professions where you can be rewarded just for being smart and working hard.

To be honest, I’ve always been embarrassed by how personal our methods are — it’s difficult to separate effective methods from natural talent. Maybe our diversity is the reason I’ve heard us criticized as navel gazers pretending to be engineers. “Herding cats” was coined for us after all!

We are taught data structures, formal methods, computer architecture and technology. We self organize into communities and movements like literate, agile, and craftsman. We write tests, review code, follow best practices, decouple our classes, encapsulate our designs. It’s a little half-baked — even cargo-cultish on a bad day.

Fundamental software design is almost completely missing from programming. Is design valuable? Can we learn how to design? I think so, but not yet from the software community. Cross-train into mechanical design! Read more on Cross-Train to Become a Better Programmer…

Posted in Evolving the Industry | 2 Comments

A Scratch-Based Elementary School Computer Club Curriculum


This past winter I ran an after-school Computer Club for a group of about 40 4th and 5th graders at my local public elementary school. Teaching elementary school kids basic computer programming skills was definitely a challenge, but a rewarding experience and one that I would recommend to any software developer who has kids and likes to spend time with them.

Last week I offered some tips about how to organize and run your Computer Club. In this post I provide a week-by-week curriculum to help you plan what you’ll do at the club. Read more on A Scratch-Based Elementary School Computer Club Curriculum…

Posted in Evolving the Industry | 2 Comments

10 Tips for Running an Elementary School Computer Club


While I’m a software developer by trade, I’m also the mother of two school-aged kids, so one of my pastimes is volunteering in various capacities at our local public elementary school. At some point early this school year, in a moment of temporary insanity, I found myself nodding my head “Yes” when a wiser full-time-working parent would be saying “No”, and next thing you know, I had agreed to lead an after-school Computer Club for 4th and 5th graders.

Something I’ve observed that you may have also: by the time a kid is 9 or 10 years old, they are already incredibly capable of wasting copious amounts of time on a computer. This age group (ok, all age groups?) would happily spend all their time playing computer games — Minecraft being the game of choice these days.

My goal with Computer Club was to get the kids away from just playing games and into creating something with their computers — maybe even creating their own games. After a quick survey of developers with kids and the Internet, I settled on teaching basic programming concepts with a language/platform called Scratch. Read more on 10 Tips for Running an Elementary School Computer Club…

Posted in Evolving the Industry | Tagged , | 2 Comments

Change the World: Mentor FIRST Robotics


Team 3322 pit crew hard at work during the 2013 Bloomfield Girls Robotics Competition.

Atomic Object is a company of poly-skilled, generalist makers. Chances are, you too are a maker or manage makers. You understand the world can be reimagined, improved, and changed in big ways. You understand that technology isn’t some force of nature, but the creative output of many people.

Unfortunately that isn’t true for most kids these days. Schools mainly teach past theory. The present world is controlling, protecting, and closed. Students use technology, but they don’t own it. Read more on Change the World: Mentor FIRST Robotics…

Posted in Evolving the Industry | Tagged | Leave a comment

Elevating Digital Design with Mentorship & Guided Training


Does design have a seat at the table?

Academic professions such as law, medicine, business, and education have formal levels of training that are usually equated with an individual’s level of certification. These milestones are usually required to move forward in that career.

For the profession of digital design, this is less so. The fields I’m referring to cover user experience and product design. Read more on Elevating Digital Design with Mentorship & Guided Training…

Posted in Evolving the Industry | 1 Comment

GoldieBlox – Inspiring Girls Early with Engineering

When I started taking my first engineering classes at Michigan State University to get my Electrical/Computer Engineering degree, it was clear to me that women were highly under-represented. As I entered the workforce to start my career at IBM, and then X-Rite, it was obvious this wasn’t just my observation. It was reality.

My wife, Kelli, recently told me about a viral video from GoldieBlox that has been getting all kinds of attention on the Web… and it is downright genius! This company is making a very valiant effort to help close this gap of women in engineering. Debbie Sterling (CEO) got her Mechanical Engineering degree from Stanford, and is on a mission of “disrupting the pink aisle” with products that are geared to inspire girls at an early in the art of Engineering.

I am the proud father of 2 intelligent, beautiful, and budding girls! My oldest, Natalie, who is just turned 9, has always shown an extremely strong interest in art, science, engineering, and just general tinkering. Her hobby/career endeavors include the desires to be an astronaut, artist, musician, robotics engineer, and animator. Don’t tell Natalie, but she has some exciting GoldieBlox goodness on the way for Christmas!

Read more on GoldieBlox – Inspiring Girls Early with Engineering…

Posted in Evolving the Industry | Tagged | Leave a comment

The Right Things for IT to Outsource – Embracing the Cloud

Having been a direct and/or contracted developer within several corporations, I have seen and felt the pains of having most or all of the data I need to access within the “walls” built up by corporate IT. Although there’s much evidence to the contrary, it’s commonly believed that if data is on a private corporate network and “secured” behind a VPN, it will be much safer.

The birth of “Cloud Computing” has opened a wealth of possibilities that are still being digested and realized by corporations and their IT staff. Unfortunately, corporations too often believe that data stored in the cloud is much less secure, and that cloud computing is therefore unacceptable for companies with a wealth of confidential data, including IP (Intellectual Property).

I hope to allay some of those concerns in this post and empower companies to realize the power of the cloud to better manage and disseminate their data and provide even better security than what they currently have… There, I said it. Yes, your company’s data may very well be more secure in the cloud.

Read more on The Right Things for IT to Outsource – Embracing the Cloud…

Posted in Evolving the Industry | Comments closed

Science vs. Craft in Computing Education

atomic-bookshelfMaking the extreme context switch from a university to a very modern software company has caused me to stop and think about the utility of my formal education.

In thinking about it, I realized I have always had a suspicion that a computing education can only teach you so much about the world of software engineering and design. It can never be a substitute for engaging your skills and refining your architectural taste. For me, being stuck in a classroom while the technology I was learning raced onward out of the scope of my learning was indeed a frustrating experience — especially in a profession and major that depends as much on skills as it does on knowledge.

Science or Craft?

Anyone who cares about computing education must ask themselves the question: “What do we value in technical higher education, and how do we teach it?” The battle to answer this usually swings between Computer Science as a real science (diving deep into the capabilities and direction of computation) and Computer Science as a skill or craft of building programs. These two perspectives have some overlap, but if someone is so inclined (and they usually are), they can focus on one or the other for their entire career without much concern for anything else.

Read more on Science vs. Craft in Computing Education…

Posted in Evolving the Industry | Comments closed

Ubuntu’s Biggest Bug Squashed

linux and windows iconsUbuntu’s leader Mark Shuttleworth closed the operating system’s Bug #1 on May 30th, 8 years after the system was first written.

Bug #1 (liberation) was that “Microsoft has a majority market share” in the then-new desktop PC marketplace. According to Shuttleworth’s comment about closing the bug, the definition of PC has changed since 2004. “PC” doesn’t just mean laptops and desktops anymore. Now people do a large majority of their computing on smartphones, tablets, wearable devices, and other devices. Shuttleworth also mentions that it’s better for Ubuntu to focus on excellence in their own right rather than on impacting someone else’s products.

When I first saw this, I was frustrated because it seemed Ubuntu was copping out. But the more I think about it, the more I realize that he is right. A lot of things have changed since the bug was first opened. For the longest time, Windows was really the only operating system in use. I myself had never heard of Linux, and very few people I knew had Macs. Open source wasn’t widely used.

Read more on Ubuntu’s Biggest Bug Squashed…

Posted in Evolving the Industry | Tagged , | Comments closed

Checking Your Derivers’ License

Sharing by Toban Black on Flickr

Sharing by Toban Black on Flickr

Recently, an OEM contacted me about a problem with heatshrink. They said that it worked well for their needs, except there was a snag with the license. Huh? I had released it under the 3-clause BSD license, not the GPL or something. Isn’t the BSD license as commercially permissive as they get? It turns out that there’s a clause in the BSD License that is problematic for anything distributed solely as hardware:

“Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.”

I am not a lawyer, but their objection makes sense to me. As an OEM, they don’t usually provide documentation or other disclaimers for end-users with their hardware — it just gets installed in other vendors’ products. (Do you know, or necessarily care, who supplied the brakes in your car? The GPS in your smartphone? The controller in your thermostat?). That clause would put an extra burden on their customers, who would have to print and distribute an extra disclaimer just to indicate that an upstream vendor was using my library. Looks like I found another leaky abstraction.

Read more on Checking Your Derivers’ License…

Posted in Evolving the Industry | Tagged | Comments closed