blogUncategorized

**Special thanks to Griffin Caprio, Pek Pongpaet, Ray Hightower, Dave Hoover, and Raymond Reinhart for their contributions.**

So you’re looking for talented developers, huh?  Well you better grab a number and get in line because you’re one of literally hundreds of people hunting for them as well right now.

You may think it’s the only obstacle standing between you and being the next Groupon. At events audience members jockey for the opportunity to ask successful entrepreneurs the “developer question”; not to mention it’s a quarterly agenda item for practically any company doing business in 2011.

There is certainly no shortage of opportunity for great developers, so unless you have Groupon-sized pile of cash, you’re going to have to be smart and creative about your search.  Raymond Reinhardt, account executive at the Nerdery, put it best, “Finding great developers in Chicago is no easy task.”  True, but, there are certain things you can do to increase your chances of landing a great developer (or any developer for that matter).

1. Get your story straight before you start looking.

If you’ve been thinking about an idea for any length of time, chances are good that it’s grown in complexity from when the lighting first struck.  Each time you sit down to think about it, the app becomes more grandiose and the feature list expands.  By the time you’re actually pitching it to people, you no longer need a developer, you need a small team of developers; and let’s be honest, the only thing that’s harder than convincing one developer to join you, is convincing several developers to join you.

Start by reducing your idea to its most simple functionality or version 1.0.  Also known as a minimum viable product (MVP) in the lean start-up approach which encourages you to “ship early and ship often.”

The lean start-up approach is based on the ideal that, “Usage is like oxygen for ideas…and if you’re not embarrassed when you ship your first version, you’ve waited too long.”  The goal here is not to debate for weeks on end whether this app is or isn’t going to usher in web 3.0; the goal is to get an app to market so your users can decide with their time and wallet if this is something that will solve a pressing need of theirs.  Coming to the table with something that’s digestible for a developer to build is a critical first step.

While it’s important to launch your minimum viable product, you also must do your best to clarify the app and your vision. “Never assume that just because “you’ve thought really hard about the problem, that you’ve done the hard work,”  recommends Griffin Caprio, Founder of 1530 Technologies, Inc.  “Your app is harder than just saying “It’s GMail plus LinkedIn.”  

Whether you choose Adobe fireworks or Powerpoint, Derek Sivers recommends that you write down in a text file, “every thing you know this Version 1.0 needs to do. Every click. Every action. A long list of small simple things. The goal is to keep this long list of actions very clear and simple, so that a programmer can see it, and see that each step is easy. For them it should be like eating chips, not an elephant.”

2. How to not sound like an idiot when you approach developers.

As Raymond Reinhardt stresses, “Before approaching a developer, learn all you can about the technologies that might be used to tackle your particular needs.”

What Raymond is underscoring is not that you need to go learn how to code, but rather that you need to have a base-level understanding of how the science of programming works, how long projects typically take, and what skill-sets you are looking for. In order to grab a basic knowledge of what you should know before talking to a developer, here is a good place to start off.

Additionally, just like you when your friends ask, “What’s everyone in the mood to eat?” and you always suggest “Burgers!”, coders have their strong preferences as well. “Realize that if you approach any developer, they are likely to steer you towards the technology that they are most comfortable with,” advises Raymond. “A .NET developer is likely to steer you toward .NET technologies, a Ruby on Rails developer is likely to steer you towards Rails, etc…”

We can make either argument that it’s a good thing or it’s a bad thing to just let the developer decide which language is best to develop your project in. Holding your ground that you can only code the site in Perl because your best friend’s cousin said “Perl is the best coding language ever!!”, can end up unnecessarily restricting you into a really shallow pool of potential developers in case you need to make additional hires or your primary developer quits.

On the opposite end, the reverse of that problem is also true. You completely leave it up to your developer to choose, and they end up choosing to build your app in an obscure coding language because it is what they are most comfortable with. Again, you can be left with very few potential candidates to replace them or add to your team if they choose a very uncommon coding language.

In general, Raymond suggests, “Be wary of developers who try to push a technology on you without first fully understanding your particular requirements. Be aware of the buzz words, however, the best developers can explain the technologies without getting too buzzy. A great developer will also research and make a good case for any particular technologies proposed. A good developer will take into account future considerations, scalability requirements, and limitations of the proposed technologies.”

At the end of the day, however, Griffin believes that, “If someone has the chops to be in a start-up, you should verify they can actually get things done & shipped, not wax & wane forever on the benefits of Rails over PHP.  Startups live and die more by customer development and less by technical achievement.  You need a developer who understands that the world is a bit gray and sometimes you just need to get it done.”

3. Let’s find your developer.

Once you’re ready to tell someone other than your mom, your best friend and your dog, you’ll need to both find someone who has the skills to help you get your idea off the ground and then convince them that your idea is a winner.  “Good developers are very approachable, although they may be very busy.” -Raymond Reinhardt

When you do feel as though it’s an appropriate time to bring up your idea, Dave suggests you, “Practice an elevator pitch that focuses on how your software will make an impact. And then unpractice the pitch so you sound authentic when you’re talking to a developer.”

There are hundreds of how-to articles across the web on pulling together a great elevator pitch, but for this particular audience, Joe Stump, Co-Founder and CTO of GeoSimple writes, “Great engineers generally seek out two things when looking for new employment: interesting problems and awesome people. If your start-up is “like Twitter plus blah”, you’re not likely going to be able to recruit top engineers.”  A great elevator pitch is important, but not as not as important as the problem you’re trying to solve.  “The best developers are artists and live to create masterpieces that they are proud of even if only their peers understand why what they have developed is a masterpiece. Inspire them and they will come out of the woodwork.” Raymond Reinhardt

When it comes to the age old question of intellectual property, “Do not make them sign an NDA – that’s a complete turn off especially if all you have is an idea,” advises Pek Pongpaet, creator of ShelfLuv and VP of Product at SpotOn.  “Tell them everything – they aren’t going to steal your idea. They are too busy working on their own ideas.”

Additionally, “It’s a huge HUGE bonus if you’ve tried to build something yourself, no matter how shoddy,” explains Griffin Caprio, “There’s a world of difference in respect you’ll get from developers if you try and fail vs. if you just hand over a PowerPoint with screenshots.  If you can actually show some level of understanding and respect for what they’re building for you, it will go a long way.”

In summary: set out to solve an interesting problem, ideas without execution and early stage NDAs are worthless, be awesome and give it the ol’ college try before enlisting help.

If you’re trying to attract software developers, you should be reading what they’re reading, and hanging out where they’re hanging out.  Luckily, Chicago has a rapidly growing tech community/network community.  Here are a few resources you should consider:

Attend re-occurring events and meet-ups held throughout the city and suburbs such as: Technori Pitch, where the top Chicago-based Tech companies present their latest and greatest apps every month.  Check out upcoming events from Bernhard Kappe and Chicago Lean Start-up group and the Refresh Chicago Meet-Up.  Join Ruby on Rails enthusiasts at ChicagoRuby event for networking and discussion around one of the hottest web languages right now.  Alternatively, join Drupal enthusiast at Chicago Drupal Meet-Ups, self-proclaimed “database nerds” at the Chicago Database group or general software zealots at the Chicago Software Craftsmanship gathersus.  If you’re a fan of breakfast, join other active bootstrappers at the monthly Bootstrapper’s breakfast curated by Griffen Caprio or dine with other Chicago “Geeks” at the Chicago Geek Breakfast.  If you’re freelancing/working from home, grab a coffee and a conversation at JellyChicago, “a biweekly gathering of freelancers, entrepreneurs, and telecommuters.”

Join one of the dozens of tech communities in Chicago including: Built in Chicago, which was founded by Matt Moog of Viewpoints and boosts over 4,000 Windy City “digital professionals.”  The Illinois Technology Association (ITA) hosts a plethora of over 250 collaboration, acceleration and visibility/talent events throughout the year, all designed to support the Chicago tech community.  TiE Midwest members “are entrepreneurs or aspiring entrepreneurs, professionals or students, interested in networking with mentors and industry veterans from a diverse range of background.”  The Chicagoland Entrepreneurial Center, in conjunction with the Chicago Chamber of Commerce, works primarily with early-stage companies and supporters of those companies.  And, once your million dollar company takes flight, join other founders in the Entrepreneurs’ Organization, Chicago.

Read the weekly, in-depth profiles of Chicago entrepreneurs published by, (shameless plug) Technori, follow Ann Dwyer’s small business blog on Crain’s Chicago, check out the network of bloggers on Built in Chicago, check in on happenings from Technology Industry News Chicago and peruse the TECH Cocktail blog for great chi-town content and upcoming events.

Tap into one of the richest urban, collegiate ecosystems in the world.  Among other resources, colleges and universities around the city offer classes, events, competitions, and can be a great place to look for mentors and co-founders. The Computer Science departments of Illinois Institute of Technology, University of Illinois Chicago, Northwestern University, University of Chicago, DePaul University, Columbia College (particularly for game design) and Loyola University all offer an immense amount of resources for the entrepreneurial types (You might also want keep an eye on the people coming out of Code Academy later this year).

Mark your calendars for annual or semi-annual events happening around town like: Techweek, one of the Midwest’s largest tech conferences held in July, SocialDevCamp, a weekend conference + unconference + hackathon all about making the most of the social web, coming up in September is WindyCityRails, a day-long conference packed with an abundance of Rails knowledge and organized by Ray Hightower, President of WisdomGroup, WindyCityGo, a day-long conference focused on iOS, Android and mobile advertising, WindyCityDB, a day-long conference that explores the emerging class of NoSQL databases, DrupalCon, a multi-day event that brings together the people who use, develop, design, and support the Drupal platform, the BarCamp unconference which focuses on some of the best parts of conferences: between session discussions, knowledge sharing and socializing,  and ChicagoCodeCamp, a daylong event aimed at developers of all skill levels and interests. Also, potentially find your technical co-founder at the 54 hour Startup Weekends that occur in Chicago regularly.

Post your project or hunt for great talent on the 37 Signals job board or BuiltInChicago.

Or, if you really want to get creative…

Host your own event, as Raymond Reinhardt and The Nerdery recently did, “We had our overnight website challenge this past weekend to build ten websites for deserving non-profits attracting 120+ people and some of the top developers in Chicago.”

Like any other exercise in human interaction, rallying people around an idea is often as much about building rapport with a community as it is about pitching a great idea.  “You won’t find a place where you just show up and “find a developer,” says Dave Hoover of Groupon/formerly Obtiva.  “You’re going to need to engage the community and start learning about technology. It’s in your best interest as someone running a software-focused start-up to learn more about the platform you’re building your business on.”

Consider getting to know several developers and figuring out what makes them tick.  “You initiate the conversation like you would with anyone else. Ask them what they’re into. Then listen,” recommends Dave.  “Depending on where you’re having the conversation, they might not talk about technology at first. So ask them specifically about the technologies they’re into, and what sort of things they like to build with those technologies.”

It is possible they’ve been working on a killer app and could just as easily use your help.  You never know until you ask, and without a strong track record or an ongoing relationship or two, hawking business cards isn’t likely to get you very far.

“In addition, good developers can be found on forums helping other developers. There’s a well known interesting paradox: Your friends have more friends than you do. Well (and this is a little confusing) a good developer knows developers that know more developers than they do. Find one good developer and your one step closer to finding a bunch of awesome ones.” -Raymond Reinhardt

4. DO NOT DO ANYTHING ON THIS LIST.

If those are all of the things you should do to recruit and assess a developer, here are a few pitfalls to avoid (you may laugh, but at some point or another, a developer has endured the following) :

  • Do not act like marketing/sales are only what matters and say things like “I just need someone to code this for me.” This pretty much immediately tells the developer where they stand in your eyes and how they will be treated.
  • Do not offer them some pitiful amount of equity like 5% to build everything, when your idea is currently nothing more than a PowerPoint slide. You need them just as badly, if not much more so, than they need you at the very early stages of a tech startup.
  • Do not say that you are looking for someone with substantial Rails, mobile, NoSQL, Ajax, CSS3, HTML5, server admin, UX/UI design, Photoshop, and Flash experience….  While your at it, why don’t you ask if they lay golden eggs, spit diamonds, and piss Chanel No. 5. You are not going to find a developer that is great at EVERYTHING.
  • Under no circumstances should you talk down to them by referencing “geeks” “nerds” “code monkeys” etc… or other asinine comments about the world of developers such as them all being “fat” “virgins” “afraid of sunlight” etc… You only have one chance to make a good first impression on them and you better believe the developer community talks to one another. You don’t want to be known as “that a–hole with the Groupon clone idea.”
  • Do not offer them an unpaid internship with lots of great “experience.” Otherwise known as asking them to work full-time for you for free.
  • Refrain from telling them that their idea is “not good as yours”, so they should come work for you instead. Poking holes in their project and while talking yours up, is a surefire way to come across like an a–hole.
  • Do not present your past experience as an MBA student/graduate, your one year stint as a consultant at Accenture/Deloitte, or your degree from Harvard as the only evidence they need to know you are a rockstar. You’re usually going to be shot down.
  • Do not ask,  “Do you develop in Windows or Google? I think we’re going to need both.”  Remember what we said earlier in this article about reading a couple books before talking to a developer so you don’t sound like an idiot?
  • Do not offer to pay them $15 an hour and then act shocked when they blankly stare at you like a moron.

For more fun examples on what not to say and do, read How to find a crappy coder and Whatoniteseekscodemonkey.

5. Finding the right developer.

There are any number of ways to assess a developer’s skill, but you usually can’t go wrong starting with Google, “I’II start by finding either a blog URL, a Twitter id, or a Github account,  then I look them up on Google.” explains Dave Hoover.  “I poke around, looking for evidence of a passion and thoughtfulness for creating great software.  This usually means blog posts about some aspect of software development process or practice, open source contributions, interesting Twitter or Hacker News conversations, or side projects.”

In a great post written on the topic of how to recognize good programmers, blogger/rails hacker/entrepreneur Daniel Tenner does a nice job summarizing common criteria themes from across the web; his criteria range from passion to formal qualifications.  In summary, he notes:

Positive indicators:

  • Passionate about technology
  • Programs as a hobby
  • Will talk your ear off on a technical subject if encouraged
  • Significant (and often numerous) personal side-projects over the years
  • Learns new technologies on his/her own
  • Opinionated about which technologies are better for various usages
  • Very uncomfortable about the idea of working with a technology he doesn’t believe to be “right”
  • Clearly smart, can have great conversations on a variety of topics
  • Started programming long before university/work
  • Has some hidden “icebergs”, large personal projects under the CV radar
  • Knowledge of a large variety of unrelated technologies (may not be on CV)

Negative indicators:

  • Programming is a “day job”
  • Don’t really want to “talk shop”, even when encouraged to
  • Learns new technologies only in company-sponsored courses
  • Happy to work with whatever technology you’ve picked, “all technologies are good”
  • Started programming for the first time in college classes
  • All programming experience is on the CV
  • Focused mainly on one technology platform (e.g. everything to do with developing a java application), but with very little experience outside of it

Having hired an employee or two over the years, Griffin Caprio will advise, “A lot of people will say “Open Source” work or “Talk / Publications.”  I think that’s a good recommendation, but not a hard & fast rule.  My secret is to look for finishers.  Anyone can start something & have 6 half-baked Github projects.  I’m looking for someone who’s been through something for a few cycles and has had to live with their decisions.  Any good developer, no matter how old & experienced, usually looks at code they wrote 6 months ago and winces, knowing they now have to refactor things given new circumstances.”

Ask anyone who’s participated in the hiring game and they’ll confirm that finding the right talent is as much about the intangibles as the tangibles.  While Google and Github are a great places to start, there is no substitute for working  with someone.  This is the approach that Pek recommends, “Consider “dating” the developer before “marrying” him. Instead of giving him the one big project and then finding out it’s not a good fit, try out a really small project first. If that goes well, try one a bit bigger. If you can still stand each other by then, maybe it’s a good fit.”

6. Congratulations, you’ve piqued the interest of a developer!

You have a planned out MVP which will be built in Rails and Techcrunch.com writers are drawing straws to allowed to cover it.  Now comes the compensation discussion.

For an early-stage entrepreneur, equity is often the go-to hammer from the bootstrapper’s toolbox.  But is that always the correct route to go?  Drawing from his experience, Pek will tell you that, “Unless you have a track record – consider hiring (paying) said developer to build your Minimal Viable Product. Track record means you’ve done this before (you’ve raised money, built something, had a successful acquisition, gotten investors, etc).”

If your multiple-million-dollar-exit track record is a bit thin, and the money equation isn’t adding up, consider getting creative.  “Focus on one of the other dimensions of a job: quality of life, education and experience.  Try to offer something outside the box.  Maybe you can teach them about internet marketing, sales, or business development.  Maybe you are a good cook and your developer is tired of eating take out. Offer to cook their meal 2x a week. Get creative. Creativity is the parachute an entrepreneur steers with,” suggests Griffin.  Furthermore, “Never try and nickel and dime or wear down a developers cost in order to work with you.  If you can’t afford them, move on.”

If you do decide to go the equity route, you may need to put on your best salesmen hat and communicate the steps you’re going to take to turn a profit.  “Most developers will not work for equity unless there is a very good chance of a start-ups success.” –Raymond Reinhardt

7. Getting them to say “Yes” is not enough.

Once you’ve locked in a top developer to join your team, keeping him/her happy is an equally important, but equally lengthy conversation.  Rob Walling of the blog Software by Rob addresses the topic quite thoroughly in the post, Nine things developers want more than money.

Also, if you’re look for books on the topic, Ray Hightower endorses “The Gifted Boss” by Dale Dauten. “It’s a short book about building and leading teams of highly intelligent, independent people. Many developers fit that profile…the best employees want to work in an environment that is free from managers, mediocrity, and morons. The best people want to work on exciting projects that are bigger than what they could do as an individual. Yes, good people expect to be paid well. But high pay won’t keep a developer engaged in a project unless the project is meaningful.”

Any other tips for finding a great developer in Chicago?  Please do share.