エンジニアランキング検索|起業家・フリーランサー向け仲間探しサイト

Pocket

エンジニアを検索し、ランキング表示できるサイトを作りました。

エンジニアランキング検索|起業家・フリーランサー向け仲間探しサイト

宣伝の意味を込めてどんなサービスなのかを書いていきます。

何ができるのか

このサイトは https://qiita.com/ に登録している10万人を超えるエンジニアを検索できるサービスです。
細かい機能としては、下記があります。

エンジニアの検索・絞り込み

  • 言語やフレームワーク、ライブラリ等エンジニアのスキルセットから検索
    Qiitaでは記事にタグをつけて投稿することができます。なので、その特定のタグを投稿した経験が多いほどその内容に精通していると考えられます。
  • SNS情報が登録されているかどうかで絞り込み
    Twitter、Github、Facebook、LinkedInのアカウント情報を公開しているかでフィルタリングできます。
    直接コンタクトを取りやすい(声をかけやすい)エンジニアを探せます。
  • 居住地情報が登録されているかどうかで絞り込み
  • フリーワード検索
    ユーザーネーム、氏名、プロフィール文、居住地を横断してフリーワード検索ができます。
    例えばフリーランスと検索して、仕事を依頼できそうなフリーランサーを探すことができます。

検索・絞り込みはこんな画面です。

FireShot Capture 34 - Qiita エンジニア検索・ランキング I エンジニアランキング - http___tecqii.com_

エンジニアの詳細プロフィール

  • Qiitaに登録しているエンジニアの一人ひとりの情報を詳細ページで表示します。
  • 今までどんなタグに関して何回記事を投稿してきたかをグラフで表示します。
  • 最近の投稿データをテキストマイニングし、キーワードを抽出。タグ以上にどんな分野に強いか・興味があるかを分析しています。

エンジニア詳細ページはこんな画面です。

FireShot Capture 35 - Qiita エンジニア検索・ランキング I suin - http___tecqii.com_user_3

誰の何を解決するのか

エンジニアを探す、また将来的にはエンジニアが活躍の場を広げるということに利用できるようなサイトにできたらと考えています。

起業家・スタートアップがジョイン・業務を手伝ってくれるエンジニアを見つけられない

起業家・スタートアップがエンジニアを探すという場合、エージェント経由や知り合い経由、SNS経由で探すなどいくつか方法が考えられます。
このうちSNS経由で探すという方法に関して、それぞれのSNSで個別に探すという方法しかありません。
しかしこのサービスを利用すれば、エンジニアが利用している主要なSNSを横断して探すことができ、より効率的になります。

企業が案件を依頼できるフリーランサーを探すのが大変

企業には、人員を増やせないが一部スポットで開発の依頼をしたい。もしくは特定の技術を持った人が必要になったので依頼したいといったタイミングがあります。
そういった場合、これまでは開発要員を企業に提供するようなSIerに依頼することが多かったと思いますが、近年フリーランサーに依頼するということが増えています。
これは個人でも仕事を探せるプラットフォームが増加し、比例してフリーランサーが増えてきたという背景があると考えられます。

そのような際に、企業は通常フリーランスが登録しているようなサイト、クラウドワークスやレバテックなどで案件にマッチするようなエンジニアを探します。
この場合に手数料がかかるのはもちろん、実際にどのようなスキル・知識があるかはなかなか判断するのが難しかったりしますが、これをある程度解決できるかと思います。

エンジニアが仲間を探す

技術が武器であるエンジニアの場合、つねにその技術の知識をアップデート、拡張することが求められます。
なのでエンジニアは社内外問わず知り合い同士だったり、勉強会を企画・開催するようなことが多いです。
こんなときに、より自分と同じような興味範囲のエンジニアを探す、もしくは自分が広げたいと思っている領域に精通している方を探す、そういった用途に利用できると考えています。

Qiitaは優秀なエンジニアが集まるサイト

これは完全に私の所感ですが、Qiitaにはエンジニアの中でも下記のような方が多くいると感じています。
– 技術力が高い
ある程度自分からアウトプットできるような方はやはり技術力が高いです。
– スタートアップ・フリーランス基質の方が多い
自由にアウトプットできるような方、またアウトプットによって評価をあげようと考えている方は所属する組織によらず自分の能力・知識で勝負しようとする方が多いと考えられます。

ということで、総じて思い描いているような利用シーンに合致するエンジニアが高確率で検索できるのではないかと考えています。

サイトの技術的な背景

どんな技術を利用してこのサイトを構築したかに関してです。

Django

Python製のWebフレームワークです。豊富な機能で慣れると作りたいものを最小のコストで実装できるようになります。

VPS

インフラはconoHaのVPSを利用しています。このくらいのサイトだとHerokuを使うことが多いですが、いろいろプラグインを入れたりしているうちに価格がかさむのでもっと安くしかも自由度の高いVPSを利用しています。

Bootstrap4

フロントは見ての通りBootstrap4です。見た目はカスタマイズされたCSSファイルで少しBootstrapぽさをなくしていますが、HTML内で指定しているClass自体はすべてデフォルトで提供されているものを利用しています。

その他ライブラリ

キーワード抽出

キーワード抽出は、最近の記事を全て品詞分解し、名詞のみ抽出。
そしてその名詞を出現頻度などから重み付けしています。
前者はMeCabという形態素解析ライブラリを、後者はTermExtractというライブラリを利用しています。

ワードクラウド

抽出したキーワードはワードクラウド(単語を雲みたいにずらっと羅列・重要なものは大きな文字になる)としてフロントに表示しています。
これにはjQCloudというjQuery製のライブラリを利用しています。

Qiita API

情報の取得にはQiitaのAPIを利用しています。やや制限がありいくつか工夫したことがあります。

ユーザーを全て取得することが難しい

ユーザー(エンジニア)取得用のAPIエンドポイントは、100件づつの100ページまで、つまり10,000件が限界です。しかしQiitaに登録しているエンジニアのは10万人以上いるのでこれでは足りません。
ユーザーネームで一人ひとりプロフィール情報を取得するAPIはあるので、それを利用するにしても、全てのユーザーのユーザーネームが必要です。
最初にAPIではなく、Qiitaのページをスクレイピングし、ユーザーネームだけ全て取得しようかとしましたが、あまりスマートではないので途中で方針を変更しました。

記事の検索は可能

記事を取得するAPIはユーザー同様100件づつの100ページという制限があります。しかし、このAPIは検索用のクエリが利用可能です。
なので、頑張れば全ての記事を取得してそこから作者、つまりユーザー情報を取得することが可能です。
この場合記事を書いたことのないユーザーの情報は一切取得できなくなりますが、それでは結局そのエンジニアがどのような方なのかを判断できないので、そういった方は対象外とすることにしました。

記事を全て取得する

記事取得APIの検索クエリには、期間を利用可能です。なので、100件づつの100ページである10,000件を超えない期間で限界まで記事を取得→そして期間を変更して再度記事を取得、という方針で行くことにしました。もう少し具体的には、

  1. 今日の日付から過去15日の投稿を全て取得
  2. 100回のコールを超える前に取得件数が100件を下回ったら、その期間の記事は全て取得したということ。続いてさらに15日前の投稿を全て取得
  3. 1と2を繰り返す
  4. 一番古い記事(2011年のもの)を取得したら終了

という処理です。これによって記事を投稿したことのあるユーザーネームを全て取得できるので、この後にそれらのユーザー情報を一人づつ取得します。
Qiitaは1時間のAPIコール回数に1,000回という制限があります。そのためコール回数が1,000回に到達すると、1時間処理を止めるということもしています。

今後の展望

今後もし利用者が増える見込みが出てくれば、いろいろ機能を追加していきたいと考えています。
(ここまで書いたようなニーズがあること、そしてサービスがそのニーズに対応できているかと考えられたらというイメージです。)

エンジニアを探す側が募集をかける

今会員管理機能はありませんが、探す側が例えば案件の登録や勉強会、イベント等を登録できるとより双方向のアプローチが実現できると考えています。

Qiitaのユーザーアカウントと連携

Qiitaアカウントと連携、つまり本人だと特定できればいろいろな広がりがあると思っています。
例えば、募集に対して応募したり、募集者しか見えないような情報を記載できるようになります。こんなプロジェクトがしたい、こんな仕事がしたいといったことをプロフィールに追加できると、よりマッチングという意味で充実すると思います。
さらに、Qiitaには組織(Organization)という概念もあり、どんなスキルセットのエンジニアが所属しているかがわかるようになっています。
例えば自分のスキルセットから、同じようなスキルセットを持った人が多い会社を探せたりすると、自分の活躍のフィールドを見つける、広げるということの助けになるかと考えています。

想い

自分自身エンジニアのはしくれなので、よりエンジニアのためになるような形で強化していきたいと思っています。
なにかご意見・ご要望・ご指摘あればどしどしいただければと思います。

エンジニアランキング検索|起業家・フリーランサー向け仲間探しサイト

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>