It’s been several weeks since I was hired here at 37signals so I thought it might be interesting to share some of my experiences so far.

Ready, set, go!

One of the best things has been how quickly I’ve been able to jump in and start contributing. The very first project I worked on was a refresh of the Account screen in Basecamp. What started as an exercise quickly escalated to a new design that we wanted to actually put into the app. So it wasn’t long before I moved from Photoshop right into the app code to integrate the new design. This required me to build on my limited experience with Ruby on Rails, setup my computer for development, learn enough Git to be dangerous, and get a feel for application structure and conventions. None of this could have happened without the patience of my co-workers and the solid development structure/process that is in place here. Here are a few general observations:

  • The 37signals community is huge! Every change is noticed — sometimes within minutes of being launched. Receiving instant feedback to your work is great (at least so far :)
  • Git has been a surprisingly nice addition to my workflow. The ability to quickly switch branches and compare my version to the original has saved me countless hours
  • There are new things being added to the apps constantly. It’s exciting to see all of the new features and improvements every day. It can be hard to appreciate all of this activity from outside the company, but we’re working on that
  • No longer supporting Internet Explorer 6 is liberating!

In the first ten days or so I was able to design and implement a single screen redesign, get it deployed and write it all up at Signal vs. Noise. It’s pretty great to feel like you’re contributing and making a meaningful impact so quickly.

Working remotely

One of the biggest changes for me when joining the company was working 100% remotely. 37signals is based in Chicago, but half the team works outside the office — even the Chicago crew isn’t in the office every day. So it has been great to join a company that knows how to work with a widely distributed team. As you might assume, communication is the key to making the team effective and productive. Here are a few ways we stay connected:

Campfire

I have to admit that I didn’t get Campfire before I started working here. I’d been a long time user of Basecamp and Backpack, but Campfire never clicked for me despite a couple of attempts to bring it into a team workflow. What I was surprised to see is that Campfire might be the most important app that we use.

Our “All Talk” Campfire room is where the entire team gathers each day — we all stay logged-in anytime we are “at work”. Throughout the day we post questions, share screenshots, get feedback, collaborate on copy, and troubleshoot code. Campfire also talks to our apps so we get notifications when they are updated as we develop. It also serves as a way to quickly note to the team that you’re heading to lunch or will be away from the computer for a short time. But it’s not all business. We also find time to talk about the latest gadget/news/link/app/controversy and generally have a good time. Campfire is where all the typical conversations that happen in a physical office occur, but the difference here is that everyone can hear them, anyone can pay attention to what they want to, and it’s all archived so we can search through it later.

Campfire is also used along with instant messaging for the one-on-one and sidebar conversations when we want to chat, but stay out of the noise of the All Talk room. Jumping into our Small Talk room to work through a bit of code lets me work directly with a co-worker AND allows me to save a link to that conversation for future reference. This has been immeasurably helpful for me as I dig more into the tech side of our apps. Screen sharing via iChat is another great way a couple of us can quickly work together on a tricky bit of code.

In/out

Another key part of knowing and sharing what is going on with the comapny is with Backpack’s Journal screen. The journal lets everyone on the team set their current status (e.g., “Reviewing design comps”, or “Out to lunch”) and log the last few things that they have recently completed. There is no forced structure to it, we typically just update it a couple times a day as necessary. It’s a great way to get a quick snapshot of what is going on, who is working right now, and what they’re working on.

Of course we also follow project updates in Basecamp and keep an eye on external communications by checking into our Highrise account. Everything is out there for us to keep up with as we need to or want to.

Perfect balance

At 37signals I really feel more connected and current with what is going on than in any physical workplace I’ve been a part of. It is effortless to keep up with what my co-workers are doing and how what I’m doing contributes to the whole. I’m free to keep up with projects and learn new skills as they fit my interests. We collaborate how and when it makes sense, and stay away from each other when that’s the best way to work. That makes for a really effective working environment.