We're hiring!

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

Acceptance tests, my hero!

I believe strongly in behavior driven development (BDD) and acceptance testing. My standard AO workflow looks something like: write high-level acceptance test write unit test for a component make unit test pass go to 2 until acceptance test passes This pattern has served me very well in the professional realm. However, when I sit down...

Read More »
Posted in Company, Culture, Process & Practices, Testing | Tagged | Leave a comment

Do what you love

If you won the lottery tomorrow and no longer had a single bill to pay, would you keep your day job? If the answer is yes, you are doing what you love. I recently had some time off to enjoy an addition to my family. This also gave me time for reflection.
Posted in Company, Culture | 2 Comments

Using namespaces in CoffeeScript

We previously posted about namespace in CoffeeScript. Using namespace is a useful way of organizing your CoffeeScript into meaningful modules. Unfortunately, it can bloat your code when you are using many classes from the same namespace. I’ve recently started using another helper similar to namespace called using. It takes a list of namespaces and merges...

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

2D Axis Aligned Bounding Box Trees

Here at AO we have a few game developer hobbyists. I’ve been tweaking the basic 2D collision detection in Gamebox for awhile now. When Chipmunk 6 released with performance gains, I decided to take a look. Part of the secret sauce was the use of an axis-aligned bounding box tree (AABB tree). Porting this simple...

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

Presenter First in Backbone.js

Presenter First is a pattern often used at Atomic. It allows you to drive your development from the business logic down. We recently tried this approach on our project in Backbone.js using CoffeeScript.
Posted in Testing, Web | Tagged , , | 2 Comments

Lunch break debugging

I spend quite a few of my lunch breaks playing around with some hobby game development in Ruby. I noticed that the game was running poorly. Eventually, I found that I had been needlessly creating many small Arrays in a very tight loop in my collision detection code. As with many things in life, the...

Read More »
Posted in Tools | Tagged | 3 Comments

Headphones Are Dangerous

As any friend of Atomic knows, we have a great open office environment and matching open culture. But not all open offices are created equal. My previous employer had the layout of an open office, but not a truly open environment. A fully open environment means new ideas are shared, problems can be globally solved,...

Read More »
Posted in Culture, Workplace | 8 Comments

Pry yourself away from IRB

.gist-meta {display: none;} For the past couple of weeks I’ve switched to using pry as my rails console / IRB replacement. I am loving it so far. Pry is a powerful alternative to the standard IRB shell for Ruby. It features syntax highlighting, a flexible plugin architecture, runtime invocation and source and documentation browsing.
Posted in Tools | Tagged , , , | Leave a comment

Smarter, Better, Faster, Stronger

Good programmers work hard, but great programmers are as lazy as possible. I’ve been reminded of this time and again while working at AO. From our guiding principles to the nitty-gritty details of implementation, we strive to make our lives easier while improving our efficiency and quality for our customers. We reduce the repetitive and...

Read More »
Posted in Culture, Process & Practices, Tools | Leave a comment

IE 8: Lost Without A Map

On my current project we’ve been working heavily with backbone.js and underscore.js. We were recently bit by a bug where all of our automated tests in Firefox and our manual tests in Firefox and Chrome passed. But, good ‘ol IE 8 raised nasty javascript errors.
Posted in Design & Development, Web | 3 Comments