We're hiring!

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

Letter to an Undergraduate Computer Science Class

Last week I spoke to an undergraduate data structures class at GVSU. The talk was partially about data structures, but mostly about becoming a good developer. Most of this is old hat, but I think it’s good advice to just about anyone.
Posted in Community, Culture, Design & Development, Languages, Tools, Unix, Linux, and Bash | Tagged | Leave a comment

Some Notes on Clojure Performance

We learned two major performance lessons very quickly while working on the hottest part of our recent Clojure application: Laziness Laziness is amazing. As Debasish Ghosh explained on his blog, laziness lets you effectively reify and compose loops. Code that looks like it’s producing intermediate data structures is actually composing together patterns of iteration. When...

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

Higher-order Contextual Functions in Clojure

A lot of functions in Clojure take the form (f args1* f2 args2*), where (f args1) represents a context and (f2 args2) represents a computation to perform in that context. I’m going to call this Clojure’s “contextual function” pattern (since I’ve never seen it named before). This pattern is easy to overlook, but it’s powerful,...

Read More »
Posted in Languages | Tagged | 3 Comments

Project Stories: HealthInSite

Atomic Object engages with customers of all types and sizes. Each project is a little or a lot different from projects we’ve completed in the past. Beyond the different problem domains, technical challenges, and design needs there are different customers. Different customer cultures. Different sizes. Different organizational structures. Different personalities. Each customer needs to be...

Read More »
Posted in Project Stories | Tagged , , | Leave a comment

Clojure Desktop Applications with Swing

Starting a Clojure Desktop Application We’re starting up our first desktop application in Clojure. We’re a heavy vim and ruby shop. We’ve done several desktop applications in JRuby. This is the first time we’ve tackled swing UIs and GUI testing in Clojure. It’s still early in the process, but here’s what we’ve found so far.
Posted in Languages | 15 Comments

Planning for Scale

How much traffic does my site need to support? How much do I need to pay for site hosting? How big should my database server be? These are core technical considerations for anyone starting a new software project. But what’s the right context and direction for this discussion? At this year’s Business of Software conference,...

Read More »
Posted in Business of Software | Tagged | Leave a comment

Optimize Page Speed with jQuery Waypoints

My current project is a web reporting tool. Each report includes several highcharts to present data interactively to the user. The site performs just fine in modern browsers, but IE 7 and 8 just can’t take the workload. With the charts enabled, pages were taking seconds longer to load in IE for some users. All...

Read More »
Posted in Web | Tagged , , , | Leave a comment

Poly-skilled Teams Deliver Products

A lot of what sets Atomic Object apart is our people – we work very hard to ensure we hire the best. But hiring great people isn’t enough. The best people need to be set up in an environment where they can use their skills effectively and translate their excellence into business value. Atomic’s strategy of...

Read More »
Posted in Business of Software, Company, Culture, Pairing, Project Management | 5 Comments

Atomic Vim

Over the last couple of years, most of us here have settled on a shared base vim config. I originally assembled this config after leaving vim for TextMate for a while, only to return wanting the best of both worlds. This isn’t exactly an original endeavor, but the result is a little different from other...

Read More »
Posted in Tools, Unix, Linux, and Bash | 3 Comments

Structural Templating with jquery.expand

With templating libraries, there are usually at least three pieces: your data, a collection of static content, and rules for interpolating the data into said content. Most templating libraries (e.g. ERB and Mustache) include an interpolation syntax for embedding the rules directly in structureless text. This makes sense when a library will be used for...

Read More »
Posted in Tools, Web | Tagged , | 1 Comment