Don't hire a team, form a rock band!

posted by pete on June 30th, 2008

There have been some exceptionally good articles this week about how to hire great Ruby developers, kicked off by Ryan Sobol’s list of 15 questions to ask during a Ruby interview. I thought it was a pretty good list, but some of the comments really rubbed me the wrong way. For example, weeding out people who don’t know the difference between a Lambda and a Proc.

Peter Cooper picked up on my response in Hiring Ruby Developers over on RubyInside.

The best way to recruit amazing talent is to approach people that you already know are at the top of their game. At this point, the most important question becomes whether their personality is a good fit for the existing team.

Really, if an awesome person who is clearly smart doesn’t know the answer to one of these questions, they can learn it quickly with a little direction. That’s the advantage of having a team - you help each other move forward.

Peter touches on the fact that the demand for top Ruby talent is much bigger than the availability. This is awesome, because it means that people willing to take the leap and quit their Java day job to make Ruby hacking their full time gig likely have their pick of cool startups to work with.

Toronto Ruby developer Andrew Burke saw Wall-E on the weekend, and pointed me to an interview with Andrew Stanton at Pixar:

And I think some of that is because we had a mentality when we were young to hire people based on who they were, not based on their talents. They had to have the right requirements on their résumés, but the most important thing was, “Do I get along working with you? Can I work with you all night in the trenches? If you can get along with everyone in the group, then we’ll see if you’re the person with the best requirements for whatever the task is.” And we’ve kind of kept that attitude ever since we’ve grown. It’s almost this theory of “If you put a whole bunch of good apples in the barrel, the bad apples just can’t stay.”

People often ask us if we’re hiring, and the truth is that we’re never hiring. We don’t consciously recruit people for our development team, but when we meet someone that seems like a perfect fit, we evaluate if it feels like time to grow. We’re very sensitive about company size, and keeping it “single digits” meant that everyone could sit around a dinner table together. We started as three people, and every time a person is added, it’s a big deal. When a person leaves, there is no rush to replace them because they were unique in the first place.

Unspace made an early decision that everyone we bring on has to be the smartest person we’ve ever met. When we met Hampton Catlin, he blew me away and to this day runs circles around me in Ruby coding. However, the first time he came to Unspace, there was no interview. He didn’t have a resume, and we didn’t look at his code. It was just obvious that he was awesome and if we were serious, we should get him before someone else did! We trusted our collective gut, and hired on personality.

We begged Jeffrey Hardy to join after a weekend road trip to RailsConf; if you can enjoy a weekend in a car with someone, chances are you’d work well together. Mike Ferrier came to Rails Pub Nite, and he had awesome rock star hair. He started asking questions that illustrated a problem solving process that made Hampton and I exchange knowing looks. Tyler Rooney was the same story; we met him at RailsConf and he just seemed like someone we wanted to have around. Obviously if he’s doing Rails work at Amazon, someone else has vetted him technically, and dumb people don’t say the things Tyler was saying.

None of these people showed up with resumes, and we didn’t sit them down and ask trick questions about blocks and closures. That’s not to say we couldn’t have asked, but sitting down to audit code is not how we want to choose our friends.

Much like a rock band, building a team is like agreeing to be married to several people at once. You get a lot of face time, and you’re only ever as strong as your weakest link. Next time you find yourself considering someone new, ask yourself if you’d enjoy taking a weekend road trip with them. If you can’t imagine that being fun, perhaps that’s a sign that this A+ candidate your recruiter found might not be a good fit.

Pro tip: we’ve noticed that some of the best developers are also amazing musicians. Make of that what you will!

“Music is a hidden exercise in mathematics by minds unconscious of dealing with numbers.” — Gottfried Wilhelm Leibnitz

Tyler Rooney has joined Unspace

posted by pete on June 25th, 2008

We’re a few weeks behind in announcing the newest addition to the Unspace team, Tyler Rooney.

We met Tyler at RailsConf 2007 in Portland, and he made an instant impression on us. Tyler is a Toronto guy who was living in Seattle and working at Amazon building Rails apps for internal use. With plans to move back for personal and family reasons, we started discussing a possible future with him back in October.

Immediately after RailsConf 2008, Tyler jammed all his worldly possessions into a car and drove across the US (making a stop in Minneapolis to meet up with RubyFringe speaker Dan Grigsby) to Toronto, and now he’s here with us. We love Tyler for his casual manner, sharp dress, and excellent taste in music. He also has some pretty fascinating stories about ordering and shipping, which you’d think would be kind of dry… but have you ever wondered what it takes to get Harry Potter to millions of people on a Saturday?

Tyler’s addition means there are now nine people in our little company. That’s the biggest we’ve ever been, and possibly the biggest we want to be.

Build a home wherever you go

posted by pete on June 19th, 2008

Make 14 has a fascinating interview entitled Mall Living where an artist couple describe their benevolent illegal occupation of an architectural anomaly in a shopping mall. They had a cozy setup, with power, a couch and television… much of which was purchased inside the mall itself.

For me the takeaway quote which blew my mind was right at the end:

It’s worth noting that you can put a cinder block in a backpack. That means you can build a house anywhere you want.

RubyFringe Registration Comes To A Close

posted by pete on June 11th, 2008

There’s about 60 minutes left to register for RubyFringe, and it’s fun watching all of the last minute stragglers jump on board. (Don’t worry, we won’t let you down!) We were told early on that most people sign up on the last day, and it’s true. I’d ask why, but I’ve done it myself in the past. Humans are fickle, and Rubyists are human.

I want to thank everyone who is on board to attend in July, and say hello to the folks traveling with them who are going to participate in the companion activity track. We’re close enough to sold out that we feel like we’ve pulled off a feat many folks were skeptical about.

We have certainly learned a lot about what actually goes into making an event like this happen. Meghann Millard has been tirelessly coordinating venues and speakers since we announced RF back in February - none of this would be happening without her. We also learned that we were dramatically underestimating the amount of unglamourous work involved, and now we have a new respect for event organizers. No wonder David Crow had a heart attack!

For those of you not attending, we have good news for you anyhow: Amy Hoy and Thomas Fuchs are coming to the conference, and they are organizing the first ever FailCamp to happen on Friday afternoon, July 18th. It’ll be a public opportunity for people to talk candidly about their failures, in the name of fun.

Unspace gets an audit

posted by pete on June 6th, 2008

Daniel Haran is a neat fellow: he’s lived in Paris and Montreal, he is a chocolate connoisseur, and from what we hear, an expert dancer.

He is also a Rails developer who was able to to join us at Unspace HQ in Toronto for a few weeks when we needed help on a significant milestone with the CommunityLend project. While we frequently invite guests and travelers to work out of our office, we don’t typically bring on contractors. Yet, we knew Daniel’s brother Gary Haran (another great developer - must be genetics!) and the arrangement was a good fit.

Coming back from RailsConf in Portland earlier this week, I read Daniel’s “review” of his time with us. I won’t spoil the punch line, but Daniel spoke positively of his experience. (Thanks, dude!) Specifically, it sounds like two weeks in our compound was enough for him to drink the Kool-aid and reconsider his position on the value of programmatic testing.

It’s not that we don’t test; however, we emphasize simplicity and iteration in our development. And we have a real warm, squishy human named Steph that actually loads up pages and tests them in various browsers before we consider it done. She catches things that our tests never would, because we write tests to reflect an ideal that is not reflected in reality.

I’m looking forward to Luke Francl’s talk on testing at RubyFringe. He thinks developers hide behind coverage stats (while never loading up IE) and I think he’s on to something. Programmers who boast 1:1 coverage but never look at their pages are not doing anyone any favours.

Creative Graphics: Art and Design

posted by pete on June 6th, 2008

Unspace has three really amazing design talents on the team, each with their own strengths and specialties. I am always shocked when I meet development teams that don’t have people with a design background on board. We would not be half as efficient without their input.

Lukas Dryja is our goto person for branding and visual identity. He teaches a course at the Ontario College of Art and Design on designing interactions for the social web. Like most of us here, he has lots of side projects and labours of love.

Recently Lukas relaunched a freshly redesigned version of cgart.com, a showcase for creative video content that has a large following. The response has been very positive, and it’s on the front page of del.icio.us as I write this.

Congratulations, Lukas!

Prompt Payment and Service

posted by hampton on June 6th, 2008

This is probably the most obvious article I’ve ever written, but its amazing how many people just don’t get it. I’ll sum it up with this:

Prompt payment breeds amazing service from independent contractors. Slow payments bring about bad service and dissatisfaction.

It’s so simple from the contractor’s side. If you’re “floating” the clients bill with your own time and life, and they don’t respect you by paying quickly, then you get nervous and less passionate about doing the work. You’d be amazed how many clients don’t understand this simple truism.

Working for clients that are slow-paying is always a frustration for contractors. They will call and request some work done… and it gets lowest priority, because you don’t know when you are going to get paid (6 months later?) and other clients are always waiting in the wings willing to pay. Its probably not good PR to say something like that, but its absolutely the truth. And not just at Unspace. This applies to all contractors. Contractors have to live invoice to invoice. They don’t have salaries or huge bank accounts. We rely on the payments to live our lives. The money isn’t guaranteed. The contractor is floating you credit usually when they are doing work, and it can make them very nervous to be wondering if they will have rent money while working on your project.

That’s why at Unspace, we work on a 2 week billing cycle (1 week for projects going quickly). When we are working for a client, its important that the client can keep tabs of the work being done ($$$ they have spent) and that we always ensure we aren’t floating much debt. Keeps everyone happy. We notice bum clients faster.

This post isn’t prompted by a bad client right now that isn’t paying. It’s actually because one of our clients (guess who… read back) is so good at paying quickly. And I’ve noticed what a difference it makes in the team here. We work on that project at the drop of the hat. Its not just about the money, its about trust and respect and passion. That’s what keeps contractors going.

Also, its tough in a company like ours, because our contractors get paid when the client pays. So, a client that doesn’t pay means that our team doesn’t get paid. No salaries here. All work done that is a direct line from the client to the contractor. Unspace being the team of contractors all working in unison within a small company structure.

The final point: If you are paying a contractor right now for some work, make sure you pay immediately. In fact, write the cheque the moment you get the invoice— right in front of them. You will get passionate, amazing work from them and much better bang for your buck.

NDA == fail

posted by hampton on June 5th, 2008

Today I read this article on the Union Square Ventures blog about the correlation between how secretive an entrepreneur is about their idea and the overall success of the venture. To quote:

“Simply put the entrepreneurs who are aggressively open in describing their plans seem to do better than the ones who are cagey. There is absolutely no data underneath this observation. It is just my sense after meeting hundreds of entrepreneurs over 15 years as a VC.”

I absolutely agree with this from our experiences here at Unspace. Occasionally we’ll get a call from a potential client who demands that we fax them an NDA before they will discuss any aspect of their project. We used to fax back the NDA, but then we started noticing that the guys with the NDAs generally had ideas like “it’s like , but with _” and often had no experience or funding. If someone asks for an NDA with no actual product, then it’s a clear indicator to us that the only thing they have is an idea.

In today’s world, an idea is nearly worthless. What really matters is execution, implementation, and details. To acquire these, clients require experience and funding. It’s possible to take a bad idea and make it work with proper execution, but the opposite is not true. A good idea without flawless execution will always fail.

However, Unspace does sign NDAs for clients in active development or clients with an actual product. We don’t really think that NDAs are necessary, but we understand that investors want some legal protection for their investment.

Entrepreneurs: Share your idea with the world. If you aren’t convinced you can execute the idea better than anyone else in the world, then you should probably go back to your desk job.

The Company We Keep: CommunityLend

posted by pete on June 4th, 2008

A few Internet decades ago in 2006, our friend John Philip Green introduced us to Michael Garrity, who was looking to leave Canada Post to pursue a belief that social lending was going to be a huge catalyst for change in the finance industry. Canada has strict regulatory requirements of financial interests and there was no competition; companies like Prosper don’t have a presence here, even though they do well in the US. However, it was clear from the start that Michael had no interest in simply cloning an existing success, and we were hooked.

Ryan McMinn and I started to brainstorm at length with Michael and Colin Henderson (who we think of as being “like Sean Connery with humility and credibility”) and eventually brainstorming became prototyping. The ideas came easily, and the hardest part was not blogging or telling our friends about the amazing things in the works. Mr. Jeffrey Allan Hardy took the lead on the project right out of the gate, and coordinated contributions from various Unspacers over several iterations of the platform, which is called CommunityLend.

Hampton Catlin and Mike Ferrier ran with the torch after Jeff joined 37Signals in January. Today’s team includes Anthony Watts and Shawn Allison on the design side, Steph Malek doing extensive user testing, and guest-starring developer Daniel Haran from Montreal. CommunityLend’s team has grown as well; Duarte da Silva has been a joy to work with, and a huge piece of the puzzle.

Recently, Michael announced some high level partnerships including Unspace, which means we can finally blog about it. While it’s been less of a secret over the past while, it’s annoying to be tight-lipped about a project we’re all quite proud of. We make it a policy to not work with clients we wouldn’t be friends with, but CommunityLend has really been an exceptional effort to be a part of.

Congratulations to everyone involved so far, and thanks to CommunityLend for being the kind of development partners every team wishes they could have.