
The Beltline Bikeshop App, Bike Spot, is LIVE and available to install on your iOS device!
If you know us, you know we love bikes here at Highgroove. Any cyclist in Atlanta has encountered the 'parking' headache of looking for a spot, much less a rack to lock to while getting around on two wheels. Bike Spot is a bike rack locator designed to track, record, and locate bike racks around town.
Sounds awesome, right? "But how can I use it?" you ask.
→ Read More
Sunspot, a Ruby interface for Solr
usually backed by ActiveRecord objects, recently introduced native geospatial
searching capability in the master branch (currently a 2.0.0 prerelease).
While the functionality has not been released as a stable version yet, I felt
that a blog post introducing the features is appropriate with the hope that
folks will try it out and give feedback!
Read on for a short example.
→ Read More
Read on for why you should be using a combination of Sublime Text 2 and Vim instead of Textmate…

→ Read More
At Highgroove we really like testing and are constantly looking for ways to
improve our testing process, how quickly our tests run,
and how exactly we execute our tests. How often during your Test Driven
Development (TDD) cycle do your tests fail "mysteriously"? You've written your
tests, written your code, and most of them pass but one or two stubbornly fail
even though you are fairly certain they should pass given the testing setup
you've provided? At Highgroove we bias towards action so we are likely to
launch a debugger session or a pry session to get
to the bottom of this. Another approach, which won't break your existing TDD
workflow, is to use your test-suite in place of a more traditional debugger.
After the jump we'll talk about how we've been using this strategy to dig into
code quickly and easily.
→ Read More

Database-bound tests are a drag. Inconsistent tests are a pain.
Database-bound, inconsistently failing tests are the worst!
The following commit message is from a real code base:
Run in transactions by default.
When we added controller specs they weren't being run w/any kind of DB
cleaner b/c there was no default strategy and they weren't explicitly included
in a group. Now, we use :transactions be default, setting request specs to
use :truncation
Also, I saw a 2 second speed up from this change!
Let's look at what we changed in this commit to turn our inconsistently
failing database-bound tests into slightly faster, consistent, database-bound
tests.
→ Read More

I started watching Gary Bernhardt's Destroy All Software screencasts
recently and after watching a specific episode, I had to have his Ruby
testing setup. After sitting in Vim config for a while, with some
improvements I made, I started feeling like I should somehow contribute my
changes back. After I started adding a few more changes suggested by fellow
Taconaut Steven Harman, I decided it really needed to be a Vim Plugin.
→ Read More

This weekend we Highgroovers (a.k.a. Taconauts) took some time to do one
of the things we really love: create and release Open Source Software. In
fact, we released not one, but three new tools into the world:
grocer, git_tracker, and puppet-osx_defaults.
→ Read More

Anyone that knows anyone at Highgroove knows we're not your run of the mill rapidly growing Ruby development shop. We're a unique team of creative individuals bent on productivity hacking and iterating on client needs until the app is awesome. Sure we've got some great perks and compelling reasons to make the commute into the office despite being a ROWE. What do we do at Highgroove as a group to intentionally keep our culture cool/unique as we continue to grow? Read more to learn about we stay keep our groove at Highgroove.
→ Read More
At Highgroove, I've become a stronger developer, consultant, and mentor every day. This didn't happen on accident! On one hand, Highgroove's philosophy to provide the best tools possible in the software development industry saves me time because I spent less of it waiting for tests to run and more time analyzing hard problems.
On the other hand, I have a Results Only Work Environment (ROWE) where I can leave when my work is finished, take a mental break whenever I need to, and work when where and how I please.
Despite these things that set Highgroove apart from most employers, I have found the dark side to all of this productivity: What do I do with all of the free time I have now? When you don't have to stay at the office for 10 hours a day just to save face, impress your bosses, and hopefully not get passed up by someone else who is better at sucking up than you are, this becomes a real problem!!! In this blog post I'll address this problem and show some creative ways to help unwind after a long day (or night!) of programming.
→ Read More

Meetings. Quick chats with our customers, daily if possible, don't count as
meetings. They keep everyone on the same page to make sure good progress is
being made for them, to address any questions or concerns they may have, and
possibly to plan the next steps to take in developing their app. By "meetings"
we mean that word that brings dread to the heart of anyone who has ever looked
at their schedule and seen only two hours of their daily schedule available for
actual work, and in fifteen minute blocks no less.
At Highgroove we have a few tactics for avoiding just that. Firstly, we don't
have many. Moreover, all meetings are optional, and you can come and go as you
like. A quick glance at my calendar shows vastly more pairings, personal
trainer sessions, hack nights, team dinners, and other informal team outings
than it does meetings. We consider this a win. Like all companies we still
need some variety of status updates, the kind of subject matter that would
usually go into a weekly company or organization meeting. To address that need
we "bring it in" for the weekly huddle emails.
→ Read More