We're hiring!

We're actively seeking developers & designers for our new Detroit location. Learn more

Conject – Modern Dependency Injection in Ruby

Dependency Injection is relevant in Ruby. I say this because solving problems with highly decomposed systems of collaborating, narrow-purpose objects is still the best way I know, if I want to drive my code with tests and be able to change it later. DI tools help enable this type of design by carrying the burden...

Read More »
Posted in Design & Development, Tools | Tagged , | Leave a comment

Be #patiently – FirePoll 1.2.0 Released

Ever come back to your terminal after a 15-minute test run and see a lone failure you know would have passed if your tests had been just a little more, um, patient? This happens to me all the time when I’m writing acceptance tests for web or desktop apps. If I were watching the app…

Read More »

Posted in Design & Development, Tools | Tagged , , , , , | 2 Comments

Successful Demo Software Is Hard to Support

We sometimes help customers build proof-of-concept products for internal demonstration, or better yet, run at a trade show in front of their customers and competitors. We help define features, scope and budget, drive code with tests, and deliver continuously to provide as much control over the demo as possible. Sounds almost like production code. Though…

Read More »

Posted in Process & Practices | Tagged | 1 Comment

Atomic Object’s Summer Interns 2012

A mentor working with two interns on an iPhone app

Happy New Year! It’s time to apply to Atomic Object for you 2012 summer internship. Some of you early birds have already applied… the competition’s already looking tough! Atomic is working on a large number of challenging, interesting projects, so we’re looking for a group of the best apprentices we can put together to help…

Read More »

Posted in Company, Culture | Tagged , , , | 3 Comments

Usability testing pays off in surprising ways

Atomic’s been formalizing our usability testing approach for the last year or so. This is one part of the broader initiative and long-term effort of integrating design with our agile development process. We’ve sent Atoms to the Norman Nielsen Group Usability Week training, had brown bags on the subject, bought some books, tested prototypes, and,…

Read More »

Posted in Project Management, Project Planning, Startups, Testing, Usability, Visual Design | Tagged , , , | 1 Comment

How To Sell Your Apprentices on Test Driven Development

Wayne Seymour emailed me the other day and asked: “I find it difficult to ‘sell’ junior developers on test driven development; however, I do find it easy to relate design patterns to them. Have you any advice on what techniques you’ve found useful for getting the idea of software craftsmanship across to junior developers?” I found myself…

Read More »

Posted in Company, Culture, Pairing, Process & Practices, Testing | Tagged , , , , , | Leave a comment

Everyday Source Control at GVSU

Karlin Fox and I recently visited some CIS students at GVSU and gave a presentation on source control during one of the cool Lunchtime Seminar slots they run over there. We got a warm reception, saw some familiar faces, and had a good time talking. Our clandestine purpose in visiting GVSU is to get a…

Read More »

Posted in Community, Marketing, Tools | Tagged | 1 Comment

Programming Matters. Duh!

AO is a software development company. Read: we write programs for our customers. But we realized a long time ago that excellent software developers are so much more than excellent programmers: we’re excellent workers, teammates, communicators, customer liaisons, problem solvers, process creators, project managers and technical marketers. (And entreprenuers, businessmen, designers, facilitators…) And… you need…

Read More »

Posted in Company, Culture | Tagged , | Leave a comment

Vim setup for Arduino: syntax and tags

I just started working on a new rev of some Arduino code originally written by someone else, consisting of half a dozen PDE files plus two contributed libraries.  The Arduino environment supplies a nice little editor/IDE tool, but my favorite way to explore and author code is in Vim. In addition to a nice base…

Read More »

Posted in Embedded Software, Languages, Tools | Tagged , | 2 Comments

Converting binary data to hex strings with HexString in Ruby

I’ve been copying a little utility called HexString around for about three years now. It’s a small extension to Ruby’s String class that provides methods String#to_hex_string and String#to_byte_string, which generate new strings by either: transforming all the bytes in a string into space-delimited string containing hexadecimal tuples, for human consumption converting a human-readable string of…

Read More »

Posted in Languages, Tools | Tagged , | 1 Comment