Biz Idea: Software Developer Sourcing Tool

12_resume Here’s an idea I’m surprised doesn’t exist yet. At least, I haven’t heard of one. If you know of one, please let me know!

Back when I was a technical manager at Yahoo! (YHOO), I had to wade through hundreds of resumes given to me by our recruiters. After feeling desponded about the poor quality in the candidate pool, I started looking at the people behind the developer blogs I read. If the person was awesome, I sent that person an email to try attracting him/her to Yahoo!. Sometimes I succeeded, sometimes I failed. But when I succeeded, that person often became a fantastic hire.

I later discovered that this is called sourcing in recruiting parlance. And it was not something hiring managers do regularly, though they perhaps should. However, many are too busy. After all, that’s why there is a recruiting department, right? I was busy too, but I realized that great hires made my work easier. If I spent more time up-front hiring great people, then I could better optimize my time downstream.

To be fair, the HR team at Yahoo! noticed me doing this, then had a dedicated recruiter follow my techniques to scale them across the company. This recruiter and I spent a lot of time fine-tuning our sourcing & evaluation process. She is now a rock-star technical recruiter working for an amazing startup, and I have no doubt she will help them find incredible people.

Target Market

The actual users of such a tool would be recruiters and hiring managers. The buyers will generally be within the HR organization, as they own the vendor relationships for such tools.

Source Inputs

This tool would focus just on software developers. It’s possible this can be extended to other roles though, such as visual designers. More on that later.

There are some great online communities for software developers. A recruiter could look through these communities and pick out a few based on their contributions and participation level. It’s important to note that a developer’s reputation score in a specific community isn’t a direct correlation to being a good employee; many of the best software developers I know have a low profile on these communities. But it’s still a fair criteria. The communities, or inputs into this tool, are:

Then there are some more generic inputs that can flesh out a candidate’s background and personality:

Primary Inputs

This tool would go through these primary inputs and filter out a list of potential candidates using broad filters such as programming languages and location. Further filters could be applied to improve the relevance of the list.

The first input is GitHub, a social code repository popular for hosting open source software. Developers who participate in open source projects have their code and commits shared publicly. This means anyone can look at and evaluate their code. Whenever I evaluate a candidate, I always ask for code samples. GitHub saves me the time spent in asking and waiting for a response. Instead, I can look at a developer’s GitHub account and easily examine examples of their work.

The fine folks at GitHub realized that recruiters & hiring managers were doing this and built the GitHub Resume, an easy way to view the highlights of a developer’s contributions. This snapshot is nice, though it’s still important to dig through a candidate’s code.

There is some debate as to the value of the number of followers a developer has on GitHub. I would use the follower number sparingly. The quality of the code is still my top assessment priority.

The second input is StackOverflow, the most popular question & answer network for software developers. Again, a developer’s reputation on StackOverflow may not map directly to his/her value as an employee, as some great developers don’t put in the time necessary to cultivate a high reputation. Instead, look at the quality of individual answers as an example of written communication and concept clarity. It’s tough to explain complex code, but doing so well is a great sign.

The fine folks at StackOverflow know their value to recruiters & hiring managers and have a great job board. They are also working on a resume builder, similar to GitHub’s.

There are other niches within their StackExchange family, such as ServerFault, Programmers, Mathematics, Web Applications, Android Enthusiasts, Game Development, and more.

Syncing up a members’s profile on both GitHub and StackOverflow would be key. Not all members use the same username, however, so it would take some thinking to map a single member. I would start by trying to match the username and then website. There are also other profile elements, such as profile image and location. This is a tough enough problem that it arguably will be a barrier to entry for competitors.

Secondary Inputs

Once a list of candidates has been sourced from GitHub and StackOverflow, each profile can be fleshed out using information from LinkedIn (LNKD), Hacker News, Quora and Twitter. I personally don’t find Facebook as useful, though other employers may.

LinkedIn can provide a candidate’s education and previous work experience. Getting to this data would require authentication, so some thinking behind the user account structure of this tool would be required. For example, is there a master account that grants access to others? Or does each user create his/her own account? My gut is to have a master account that pays for a certain number of seats, though there are many alternatives.

Hacker News is a forum created by Y Combinator. This community originated around programming and startup topics, though some long-time members argue its focus has widened, bringing down the quality of the overall community. Whatever the case, many non-developers are members here, which is why HN is a supplementary resource rather than a primary one. Once again, a member’s karma on Hacker News isn’t a direct correlation of employee value, but that member’s answers may be useful.

Quora’s value is similar to StackOverflow and HN’s – the member’s answers may provide some insights into the candidate’s communication prowess. Since Quora covers a wider range of topics, this source can also offer a peek into other areas of expertise (if the candidate has many answers) or interest (if the candidate has many followed topics).

Finally, there is Twitter. For me, Twitter provides a glimpse into the candidate’s current frame of mind. All of your research could be for naught if you see the candidate tweeting about leaving this career behind to become a monk. It’s also possible to discern the candidate’s interests via Twitter. For some employers, Facebook can provide similar data if it is publicly available.

Other Sources

If the candidate has a self-hosted blog or hosted blog on Tumblr, Posterous, WordPress, etc, that would be relevant as well. Bonus points if that blog contains lots of entries on programming.

And last, but not least, is the candidate’s contact information. Somewhere amongst all of this information should be a way to contact the candidate directly. Sometimes their email address will be directly visible. This tool should harvest that email address. Other times, the email address will be hidden for either privacy or spam reasons. To reach those candidates, you may need to send them a message via LinkedIn (as an invitation request or through a LinkedIn Premium account) or a contact form on their blog (if one exists). I wouldn’t suggest a public venue such as Twitter for contacting a candidate.

Just about every developer I’ve sourced offers some way to contact him/her. This tool should be intelligent enough to find that information.

Final Output

The final product should be a list of potential candidates. A relevancy score could be added, though I’m not sure about its accuracy. I don’t believe the inputs paint a clear picture of a candidate – they only offer a fuzzy image. But say you build such a tool and notice some patterns of quality. It’s certainly imaginable that a relevancy score could be constructed if you have enough data. This, I would argue, should include data on your organization’s particular needs as well, since every company is different. As is every team. In other words, a good relevancy score should mean: this particular candidate is XX% relevant to this particular hiring manager within this particular department of your particular company.

From this list, the hiring manager can view more details about each candidate. The details would include:

  • Name
  • Current location
  • Contact info (direct email address or link to a contact form)
  • Sample code from GitHub
  • Repository membership on GitHub (own or participating repositories)
  • Programming languages used on GitHub
  • Answers from StackOverflow
  • Topics participated on StackOverflow
  • Answers from Hacker News
  • Answers from Quora
  • Education details from LinkedIn
  • Current & previous work history from LinkedIn
  • Personal website URL (and most recent blog posts)
  • Twitter account (and most recent tweets)
  • Reputation scores on all community sites

These listings could be emailed to the recruiter & hiring manager while the position is open. Ideally, this tool would hook into HR’s existing candidate management tools, such as Taleo (TLEO), Kenexa (KNXA), SuccessFactors (SFSF), Peopleclick Authoria, Bullhorn, Zoho Recruit, Recruiterbox, Resumator, etc. Yes, this is a huge market. There are a lot of players, big & small, old & new, that help manage candidates & employees. But they are all relatively weak at sourcing, especially for the niche of software developers.

Business Model

This sourcing tool would work well as a premium subscription. A free query with limited results could be offered to test drive the product, with carefully placed upsells to promote a subscription.

I touched upon this briefly, but having a master account holder for an organization may be the easiest model for users, since it’s generally a single buyer within the HR organization. The buyer can then purchase a monthly subscription based on the number of seats, or additional accounts, he/she wishes to give out within the company. There should be an easy upgrade path – like a single click – in case the account hits the seat limit.

I would experiment with this model a bit. It’s possible a seat-driven model drives some users to share accounts, thereby avoiding this payment system. I would highlight the benefits of individual seats though, because knowing an individual hiring manager’s needs can aid in the relevancy of the candidates as well as the potential relevancy score.

There are other payment models to consider too, such as number of search results and number of saved searches & positions.

Enhancements

Other inputs could be added, such as GitHub competitors Bitbucket and CodePlex, or social coding game coderwall. Other developer forums could also be added, such as SitePoint, Dev Shed and CodeGuru, as well as niche communities for specific programming languages, like the Android Developer Forums, Apple Developer Forums, Ruby on Rails: Talk, jQuery Forums, etc. The list is vast.

The candidate profile screen can be continuously tweaked and optimized for hiring managers as well. Perhaps they’d like a photo of the candidate. Or not. A/B testing is our friend here.

Other Markets

I don’t have the market size of software developer recruitment handy, but there are many other professions to consider beyond this one. The value of this tool is its ability to use very niche and relevant inputs, sync a profile across all of them, and return the necessary criteria for evaluating a candidate. For software developers, this means code samples and answers in related topics.

What are other roles that have rich online communities and profiles? How about those in the creative disciplines? For visual designers, possible inputs could be portfolio sites such as Dribble, Carbonmade, deviantART, Creative Hotlist, AIGA, Behance Network, Coroflot, etc.

Question and answer sites may not be as relevant for creative professionals, so repurposing this tool for this discipline would require significant customization on the candidate profile UI. But the underlying platform would be the same.

Although professions with definitive online outputs are easiest to source with this tool, others could be aided as well. For professors and researchers, this tool could fetch their research papers. For lawyers, this tool could fetch their previous court cases. I’m not sure what could be fetched for a truck driver, but with more and more information being recorded on the web, such a platform could become a very powerful recruiting tool.

Photo by: wisdomandwonder.com

Cafes vs Coworking Spaces

I’ve been debating the use of coworking space. If you aren’t familiar with the term, coworking is the act of working in a shared space with other people who aren’t necessarily in your company or organization. It typically is held in some kind of office space and includes independent contractors, startup entrepreneurs, freelance writers, and those who travel frequently.

Within San Francisco, there are dozens of coworking spaces. I’ve listed all that I could find below alphabetically. Some have certain entry requirements, others are affiliated with investment organizations. The prices listed are for 24/7 first-come, first-serve seating. There’s a higher fee for dedicated desks.


Coworking Space Price per month Entry Affiliations
Citizen Space $300, $150 for 9-5 access Open to anyone None
Dogpatch Labs Not publicly stated Interview required Polaris Ventures
Hub Bay Area $445 Application required, social change startups preferred Hub Ventures
NextSpace $285, $235 for a 12-month pack Open to anyone None
pariSoma $275 Open to anyone None
Sandbox Suites $345, $295 for 8-6 weekday access Open to anyone None
Founders Den Not publicly stated Invite only None
Mission Social $300 Open to anyone None
RocketSpace $650 Open to anyone Kicklabs and Kauffman Labs
rezerv.it $275 Open to anyone None
Reactor SF Not publicly stated Open to anyone None
PeopleBrowsr Labs $600 Application required None, but offers the use of their products
Social Venture Technology Group Not publicly stated Interview required None
The Summit SF Not publicly stated, though the 8am-10pm cafe area is free Interview required through I/O Ventures I/O Ventures
Krux Labs $500 Open to anyone, 3-month contract minimum None

The alternatives for me happen to be cheaper: working from home or working in a cafe. Working at home isn’t effective because I tend to get distracted easily. It’s just too easy to get up, get a snack, or take a nap. Bad me, I know.

I love working in cafes though. I luckily found a great cafe near me that has free wifi, friendly proprietors who know my name, and available seating. It is also relatively quiet, yet has enough stimulation to keep me energized. That’s important too; I love cafes because of the buzz of activity there. The people-watching, the conversations, the music, all of it adds to this vibrant ambiance that helps me focus. It’s relatively cheap too, though I don’t skimp on making drink and food purchases to pay for my fair share of their space.

The downside is that it’s not easy to work with others in cafes. There’s no guarantee that a colleague will find a free table next to mine. Add two to four more colleagues, and it becomes near impossible.

Enter coworking spaces.

Coworking spaces aren’t as cheap as working alone in cafes. But with colleagues, having a guaranteed space together is important. As is the energy of the community within many of the coworking spaces listed above. They all have a particular vibe. Some are more professional, some are more scrappy, some are more artsy. But all offer a community of like-minded people who could help my colleagues and I in unexpected ways. And us them.

So it’s time to start winding down my cafe days and find a new home in a coworking space. Goodbye cafes, hello coworking spaces!

Biz Vision: Social Engineering Prevention

Mask Social engineering is the act of manipulating people into performing actions or divulging confidential information. It is usually committed using technology.

Unlike hacking, which only uses technology to seek the weak points in a system, social engineering uses both technology and people. The belief is that people are the weak points in a system. And in many cases, that assertion is correct.

Two common examples of social engineering are phishing (the use of fraudulent emails or websites to acquire private information such as passwords or credit card details) and the Facebook Western Union scam (where someone chats you via Facebook saying they are in London and asks you to wire them some money).

Last year, Thomas Ryan, co-founder of Provide Security, was able to get a fair bit of sensitive information from information security, military and intelligence personnel using a fake profile of an attractive & flirty young woman named Robin Sage. Although a few people realized her profiles (on Facebook, LinkedIn and Twitter) were fake, there was no central place for them to warn others.

More recently, the hacker group Anonymous made headlines by breaking into the HBGary Federal website and (now former) CEO Aaron Barr’s email account. They did this using a combination of social engineering and hacking. Despite HBGary’s high profile in the security industry, they were undermined by fairly basic psychological and technical exploits. If a professional security firm had such leaks, imagine how many security vulnerabilities exist with the average Internet user.

In this age of social media, I can only imagine this kind of social engineering occurring more and more frequently. Anyone armed with Robert Cialdini’s book Influence, an Internet connection, a little ingenuity, a lot of time, and an insidious motive could craft a social media scam nowadays. People are falling for them all the time.

This tells me the need for social engineering prevention is going to emerge and grow. How such prevention will take place, I don’t know. Here are some preliminary ideas:

  • Formal classes held at schools and education centers
  • A central website (Snopes for social media, perhaps?)
  • A new breed of social media security consultants
  • Social media security software that verifies websites & people to you

The last option could be turned into a viable business too (wink wink), if implemented reliably. That’s perhaps easier written than done though.

There’s no question that social media is becoming more pervasive. In such an open society, there will certainly be people who will try to take advantage of others. And hopefully, there will be organizations (for- and not-for-profit) that will protect the people from such predators.

Photo by: Ben Fredericson

An Example of Critical Thinking

Homer Simpson's Brain At the heart of critical thinking is Why? To examine a topic critically means to examine and understand the currently-held beliefs and challenge them in an objective manner. Are the beliefs based on facts or opinions? Where did the beliefs originate? Why are these beliefs in place today? Does modern research and knowledge refute any of these beliefs?

Let’s look at the task of organizing a new conference in the Internet industry. We can start with a single problem statement and go from there.

  • It is difficult to get a lot of people to a new conference.
  • Why?
    Some don’t know about it, some can’t pay for it, and some don’t want to pay for it.
  • Why don’t some know about it?
    There are a lot of conferences in this industry and we haven’t been able to distinguish ourselves yet.
  • Why haven’t we been able to distinguish ourselves?
    Our topics and speakers are not unique or famous enough.
  • Why are our topics and speakers not unique or famous enough?
    We have chosen common topics that our immediate friends and colleagues can speak about.
  • Why have we chosen common topics by our immediate friends and colleagues?
    Those are the topics we thought mass audiences would want to hear, and we don’t know any famous speakers ourselves, so we chose our friends and colleagues.
  • Why do we think those are the topics mass audiences want to hear?
    We assumed those are mass appeal topics, but aren’t sure exactly.

Ah ha, our first insight! With the power of Why?, we’ve drilled down to a fundamental assumption that was made. This assumption could be true or false, but it is nevertheless an unproven assumption.

Let’s say it is not true. The topics chosen for this make-believe conference aren’t the only ones with mass appeal. With that in mind, we do some brainstorming and come up with a list of topics not commonly covered by other conferences. Our list includes somewhat obscure or difficult – yet unique – topics.

And voila, with critical thinking, we have a potential differentiator. Go through this exercise a few more times, perhaps with the questions, “Why can’t some pay for it?” and “Why don’t some want to pay for it?” as starting points, and we may uncover additional insights. With enough effective insights, we may be able to make this conference a success.

It’s All About Asking Questions

Curious Perhaps the most important question in the world is: Why? This question leads to all kinds of insight, and occasionally, innovation & invention.

Why? Because questioning the reasons behind “the way things are” allows you the opportunity to usurp the status quo and find interconnections that you otherwise may not have realized. This curiosity digs deep into the foundations of assumptions and beliefs. Armed with such a tool, you can unearth some very interesting artifacts.

It’s also one of the main tools I use in my Serenity Philosophy of Entrepreneurship. This philosophy is all about accepting what cannot be changed, changing what can, and knowing the difference between the two.

Why do we have to carry all these heavy books around? Think: Amazon Kindle.

Why do the screens on electronic devices have to break if we accidentally bend them? Think: Electronic paper.

Why do I have to worry about losing all of my data if my computer is stolen? Think: Dropbox.

These example questions are perhaps a little too specific, but you get the point. Start with a why and keep on asking it until you get to the foundation of the issue. Ask it relentlessly, like a wide-eyed seven-year-old. You may end up with a dead end, more questions, or perhaps some ingenious insight.

Such curiosity is the impetus for two types of thinking: critical thinking and lateral thinking. As an entrepreneur, these modes of thinking give birth to creativity and can separate the boring & useless businesses from the delightful & useful businesses.

Photo by: re-ality

The Serenity Philosophy of Entrepreneurship

Toji Temple in Kyoto, Japan One of the main guiding principles of my life is the Serenity Prayer:

God grant me the serenity
to accept the things I cannot change;
courage to change the things I can;
and wisdom to know the difference.

As an entrepreneur, the line that impresses upon me the most is the third: having the courage to change the things I can. It encourages me to challenge the status quo, to know that “the way things are” isn’t an immutable rule.

Just because we’ve always had to buy shoes from a shoe store doesn’t mean that’s the only way to purchase them. Think: Zappos.

Just because we’ve always gotten the latest news from a journalist doesn’t mean that’s the only way to get the news. Think: Twitter.

Just because we’ve always had to charge an electronic device in a wall socket doesn’t mean that’s the only way to keep a device powered up. Think: Inductive charging.

That’s what I call my Serenity Philosophy of Entrepreneurship. The title is perhaps a little misleading. It’s not about being serene and accepting things the way they are. It’s quite the opposite.

There are things we cannot change. The laws of mathematics and physics, for example. And taxes. Those are things we must accept. But to be a successful entrepreneur, you will need to know what you can change – and there is often more you can change than you think.

TweetWalls Are Bad For Conference Speakers

Dear Silicon Valley Mobile Monday Organizers,

Thank you for setting up the great talk on NFC technologies and lining up interesting speakers.

I dig the fact that you try out new products and like incorporating social media into your events. Very web-savvy of you. Although you don’t declare a hashtag before your events, you graciously acknowledge them at the start of the events. That’s awesome. (Tip: declare a hashtag before your events, like on your blog or Eventbrite registration page.)

But please please please, don’t project two large screens of TweetWalls behind your panelists again. Please.

Sure, some of the tweets to #mobilemonday and #momosv were insightful and thought-provoking. Seeing them enlarged like that probably motivated many more people to tweet too. Cheers to that gentle use of ego gratification. (Tip: some people love seeing their names or products on huge screens.)

But I’m not so sure everyone found the TweetWall as helpful as you might have. (Tip: not everyone likes to see other people’s names or products on huge screens.)

For me, they were visually distracting. Two bright screens makes for tough competition against dimly-lit panelists. Try sitting with the audience next time and to focus on the panelists. It’s not impossible, but it’s a might difficult.

To put it another way: those screens were like animated gifs on a page of text. Do you like animated gifs? Nah, me neither. (Tip: no one likes animated gifs.)

The TweetWall also attracted tweets that were, ah, less-than-related to the topic at hand. I’m glad some members of the audience got a chance to say Hi to their Moms or declare how they like long walks on the beach. Bully for them, really.

But I noticed the members of the audience were starting to pay more attention to the TweetWall than to the panelists. Perhaps you didn’t notice, but I did. Some were more obvious than others, pointing at the screens and taking pictures of their tweets.

The panelists eventually noticed too, when the audience started reacting and laughing at the tweets. I felt bad when one of the panelists asked, “Is anyone still listening?”

That’s kind of bad, don’t you think? You don’t want these great panelists thinking you’re running a comedy act, right? I mean, I guess it’s entirely possible a General Partner at Khosla Ventures, the founder of Vivotech, and directors at Qualcomm (QCOM), Motorola (MMI), NXP (NXPI), and Google (GOOG) were all in on the joke and secretly holding a contest for the funniest, most distracting tweet. I kind of doubt it though.

Again, I love how you’re embracing social media and experimenting with new technologies. That’s cool. But distracting the audience with said new technology is not so cool.

My last tip of the night – and this one comes from a TweetWall competitor, Wall of Tweets:

We suggest you to use our Wall of Tweets in front of the conference room (like in a lobby or some networking space) and not really during the presentation itself. We do support cases where you want to use our Wall of Tweets in the conference room itself but we suggest you to use it during the QnA session or breaks. Even then, our Wall of Tweets in non-intrusive, in-context solution that is situated in background allowing the real starts to shine.

Good advice there, don’t you think?

Thanks for reading. Here’s to another great (and hopefully, TweetWall-less) event in the future!

Five More Great Interview Questions

Want more great interview questions?

  1. What is an area in which you excel? Assume I know nothing about it and explain it to me.

    This tests the candidate’s ability to explain a potentially complex topic. For many people, it is difficult to “un-know” something in which they excel. The ability to break a topic down and explain its most essential components tells you a lot about a candidate’s effectiveness as a communicator.

  2. In what kind of work environment are you most effective?

    Everyone has a particular working style. If the candidate’s working preferences match your organization’s environment fairly well, there may be a good fit. If not, there may be, at best, a rough ramp-up time. Or, at worst, barriers to this candidate’s success in your organization.

  3. What are you deeply passionate about? It does not have to be work-related.

    This question seeks to understand the candidate’s core motivations in life. If those motivations run parallel (or close to parallel) to your organization’s goals, there is a good chance this person will put his/her heart & soul into the work. For startups, this is very important.

  4. What was the last product or technology that got you really excited? Why?

    Somewhat similar to understanding the candidate’s motivations is to have the candidate explain a concrete entity (product or technology) and the reasons for his/her excitement. Where the previous question examines global motivations, this question focuses on a specific motivation. Plus, it gives you another motivation datapoint and tells you how up-to-date the candidate is on current news.

  5. I want to solve problem X. What would you propose?

    Be creative with the problem statement. It can be something entirely made up, or something your organization or industry is actually facing. The solution(s) the candidate proposes are a test of his/her on-the-spot creativity and thinking, though the real value here is the follow-up questions. Probe into the candidate’s solution. Question it. Ask how it would be designed, built, marketed, measured, etc. Offer constraints that could change his/her solution. This is a good way to see how the candidate solves product problems.

These questions can work for most roles. Or you can tweak them a bit to fit your particular needs.

Comic from: Dilbert