I saw some questions on David’s last posts about remote work and hiring asking how we evaluate potential employees. Racing metaphors aside, tossing new developers on real projects is a time honored tradition here, and one that we haven’t written yet about “what” exactly happens along with the “why”. Here’s how my trial month went, and what I learned.
The first week
I’ve never been to Chicago, outside of O’Hare airport. I have terrifying memories of that airport, so I was cautious to visit. I once left an a320 Pocket Retro Emulator in a seat pocket while deboarding, and didn’t realize it until soon before my connection was to leave. I sprinted back through 2 terminals to find the plane had already left for Nashville. I hope someone else is enjoying a slightly buggy version of Tetris Attack. My first week at 37signals went much better than this experience.
The first week in the office was great. Getting up to speed was a breeze: I fired Ruby and Rails up on a fresh box with rbenv and ruby-build. After cloning down a few repositories, and the usual run-around of “what passwords/sites do I need access to”, I was tossed into the fray of our support queue.
I was introduced to Assistly, which we use for customer support. I have to say, our support team is awesome to work with. We typically have 3 developers rotating in on-call, usually on a weekly or so basis. Here’s basically what on-call for a 37signals developer looks like:
- Support is stuck with an issue, and our set of internal tools isn’t helping.
- An issue is called out for developers to look at.
- Cue hacking montage as we dive into that specific product and various gems’ codebase to find the problem. This usually involves a trip into our server cluster to look for logs, find emails that didn’t process or hook up to a Rails console and hit the database.
- If it’s a bug, try to squash it. At least make sure we know about it in GitHub Issues.
- Ship it! Bug fixes and more are logged through Champagne, our internal change tracking tool. Champagne is in charge of publishing our Changes page.
Sometimes there’s not always an easy fix, or it’s a deeper issue. Typically we’ll discuss these over in Campfire to begin and see if anyone’s seen it before. This usually escalates into kicking off or contribute to ongoing discussion in Basecamp about how to solve the root problem.
Back to remote
On my first week back in Buffalo, I was tasked with creating a fresh application we’ve needed for a while. The workflow for discussing changes and features was pretty much what I expected: Here’s a list of things to accomplish, let’s see what we can get done in a week. The timeboxed aspect of the project was definitely new to me, and I think it was a great factor in focusing on what needed to get done instead of what could be done. I’m very new to a product-focused company, and this was a great way to be dropped into the environment where it’s really the customer and user experience that comes first and foremost.
After that second week remote, I went back to on-call. I really enjoy the balance of the on-call work. It’s usually split 50/50 between helping customers with issues blocking their work, and improving our infrastructure and apps. There’s lots of dirt to sweep up, including deep bugs that need investigating and apps/gems that need a fresh coat of Ruby or Rails.
Top score!
One thing I learned really quickly was that our users are creative: If you give them the ability to do anything, they will do everything! I found this out the hard way when we got a support issue for an extremely broken Basecamp page. After some investigation, I found out that Basecamp todos allow HTML tags, and they forgot to close one. After a fruitless hunt for why this behavior existed, I shipped a fix to strip out HTML tags and clean up ones that might cause the page to break.
The flood of support issues started almost immediately. Apparently a lot of users customize their todos with colors, images, and more. Suddenly, they couldn’t, and it was my fault. This might be a new personal top score for breaking things at a new job. I reverted the fix and deployed once again, and we apologized to those users.
Keep kickin’
I’m still getting used to remote work, but I’m enjoying the greater freedom and flexibility so far. The discipline of working near so many distractions is something I’ll be working on for a while.
This is my second official month being a signal, and I’m definitely still learning about our infrastructure and the internals of our products. I have to say though, it’s been a lot of fun and I’m excited for what’s next. If you have any other questions about the trial month experience let me know!
Michael
on 13 Jan 12Is that Gino’s?
Anonymous Coward
on 13 Jan 12Hopefully it’s Malnati’s. Nothing but the best for 37s.
Nick
on 13 Jan 12It was Giordano’s. Sounds like I have some more pizza places to check out next time I’m in Chicago.
Matt Hooks
on 13 Jan 12If you’re looking for the best deep dish, I’d try Pequod’s Pizza: http://www.pequodspizza.com
Will Jessop
on 13 Jan 12I’m a big fan of Giordano’s, the sysadmin team usually make at least one visit when we are in town :)
Michael
on 13 Jan 12Ahh, I should have known by the tablecloth. My bad.
Michael
on 13 Jan 12All respect to Sam, but why not use rvm? I can’t think of why anything else was needed to be developed.
Mike Busch
on 13 Jan 12I’m with Matt. If you’re in Chicago, you owe it to yourself to head to Pequod’s Pizza – it’s life changing pizza.
Aaron Gray
on 13 Jan 12I’m 99% sure that support ticket was us at AMB3R tshirts. I was having trouble rearranging our template to-do list and an unclosed tag turned out to be the problem.
If so thanks again for the help!
Americo Savinon
on 13 Jan 12Nice post Micheal.
Greg
on 13 Jan 12When will BASECAMP NEXT be released?
Nate
on 13 Jan 12If you like Lou’s you’ll love Pizanos. http://www.pizanoschicago.com/
Z
on 13 Jan 12So what was the hiring process like before your trial month? I am super curious on how they decided to give you a trial month and how they make their decision on who to pick.
Jarin Udom
on 13 Jan 12I totally did not realize that you could use HTML in todos. This changes everything :)
Anonymous Coward
on 13 Jan 12As long as we’re on food, out-of-town signals should make sure they get to Superdawg for a classic Chicago hot dog, and Hot Dougs for a haute one when visiting.
Frank
on 14 Jan 12“On my first week back in Buffalo”
Buffalo NY?
IT Rush
on 14 Jan 12Keep it going and you’ll be fine..
Mark Josef
on 14 Jan 12Frank: Yep. Buffalo has a decent Ruby community for a city of our size. We’ve also got half a dozen current or former EY employees here, including Wayne Seguin (author of RVM).
David Andersen
on 14 Jan 12I can’t believe a fix (or in this case – a ‘fix’) can be released so quickly into the prod system w/o any apparent QA, especially by a new guy. Really?
GeeUWonder
on 14 Jan 12@David Andersen I was wondering the same thing. Sounds like a bunch of cowboy programmers at the OK corral.
Peaches
on 15 Jan 12Pitty you yanks have no lue about pizza. Vomit on a plate every time.
Michael
on 16 Jan 12Please, I’ve had excellent pizza in Italy but Chicago does it better.
JS
on 16 Jan 12What Nick forgot to mention in this post is that his family has a super cute Husky dog, which is why the support team gave him the final nod.
Chris
on 16 Jan 12Anthony’s coal fired pizza is the best pizza on earth.
Nik
on 16 Jan 12Would like to have a sneak peak of Champagne. We are looking for some small changes tracking system, 37signals, why not make something like this for production?
Sebastian
on 17 Jan 12Nick, what things did surprise you the most about being in a product-focused company?? I work somewhere I feel this kind of culture has to be developed. I can play a role in it but would love to hear your input about what you think is characteristic or different in a product-focused company.
Thanks!
Nick
on 17 Jan 12@Z: Sounds like it could be an entire post! The company has talked about it a bit already:
http://37signals.com/svn/posts/2739-podcast-episode-25-hiring http://blog.activeinterview.com/2010/02/14/jason-fried-37signals-comments-on-hiring/
@Frank: Yep! Buffalo, NY! I wouldn’t trade it for anywhere else.
@Sebastian: I think another post in a few months will answer that better…my thoughts on customer first (vs. a client or someone internally) is all I have right now.
David Andersen
on 17 Jan 12Radio silence on the fix question I guess.
This discussion is closed.