With us since: October 2001
I had a Commodore 64 computer when I was a kid, and since that time I’ve always been fascinated by the idea of typing words into a machine to make it do something new. It was fun.
I joined Atomic in the first week of business in October 2001, following a short stint of local software contracting at gNetworks and a year or so at Lockheed Martin. These days, I’m one of our Molecule Leads, an informal leadership position that lets me program full time while managing several projects.
Writing software well is a matter of craftsmanship—this means code that delights the customer and continues to work properly. It takes a love of programming and a passion for test-driven development… and a good, solid team. I’m very passionate about the tools I use and the people I work with.
By the way, read Kent Beck’s Extreme Programming Explained. (Be sure to get the 1st edition, not the 2nd). Hype aside, we’ve built a very successful company and culture around the core XP values.
At first, I used Java for desktop and web applications for local companies like Burke Porter Machinery and Valley City Linen, then went on to develop some software configuration tools for X-Rite in Java and C#, some internal data management and time-tracking applications for Priority Health in their Perl and Oracle -heavy infrastructure. Then I moved on to using Ruby for almost all personal software projects, and then into Rails for web app development. Lately I’ve been learning how to use Scheme (gauche, chicken) and already it’s making me a better Ruby programmer.
For Chrysler, I worked on a Rails/Ruby test architecture for automating the testing of their handheld diagnostic equipment, which was a huge multiplex of diagnostic tools and vehicle ECUs. I also developed a Rails application that serves as a portal for ECU manufacturers to upload and convert new Chrysler-standard firmware files and submit them to their service infrastructure.
As a result of our ongoing quest for testability, we evolved a software development pattern called Presenter First , and we’ve found it to be applicable in many situations and languages. I’ve written an article about it for Better Software magazine entitled Just Say When, and Scott Miller and I were featured on Ron Jacob’s ARCast talking at length about how (and why) we apply the Presenter First pattern.
See atomicobject.rb for some useful Ruby tools:- Hardmock – a mock objects library for unit testing. Features strict, inter-object method ordering and good readability.
- DIY – dependency injection in YAML
- Constructor – convenient declarative syntax for named-attribute initializers
- Publisher – Event subscription and dispatch
- Injection – plugin that brings DIY to Rails, letting you inject components into your Controllers
Copyright © Atomic Object LLC. - Grand Rapids, MI 49506 - (616) 776-6020 - Contact Us
