はてなブックマーク - エンジニアがエンジニア採用担当になってみる
    このエントリーをはてなブックマークに追加

    小山( @k1LoW )です。

    本日は自分がエンジニア採用担当になったお話をしたいと思います。

    Fusicは本当にエンジニアを採用したい

    さて、弊社Fusicもありがたいことに、慢性的にエンジニアが不足しており、
    エンジニアを採用したい」と常々考えています。

    特に昨年後半から体制を大きく変えている段階で、今年から大きく前進したいと思っています。

    そのためには、今の仲間同士のレベルアップも必要ですが、さらに一緒に働ける心強い仲間を増やすことも必要だと考えています。

    Fusicは本当に「エンジニアを採用したい」と思っています。

    どういうエンジニア採用の方法がいいのか?

    とはいえ、今までの「普通の」エンジニア採用だと、なんとなく受け身な気がしています。

    一方ですごいスタープログラマが在籍しているわけでもないので、ブラックホール的にエンジニア採用が成功するわけでもありません。

    エンジニア採用にはエンジニアが関わった方がいいらしい

    最近、Gihyo.jpで、連載していた「なぜ,エンジニアの採用は難しいのか?」が最終回を迎えましたね。
    自分はエンジニアですが、「エンジニアの採用って難しいよなあ」と、とても興味深く読ませてもらっていました。

    連載の中で、「エンジニアをエンジニア採用に積極的に関わらせるべき」という話がありましたが、「現場感が重要」なんだと感じました。

    たしかにFusicのエンジニア面接では、多くのエンジニアが面談に関わります(どういうものかはいつか書いてみたいと思います)。

    ということで、Fusicではエンジニアがエンジニア採用担当になってみました

    私はエンジニアです。お客様とのやり取りもしますが、エンジニアです。

    GitHubのContributionsを見てもらえばわかるかと思いますが、ちゃんと活動しています。

    で僭越ながら、エンジニアとしてエンジニア採用担当になりました。

    多分多くのエンジニア中心の会社でもやっていることかもしれませんが、Fusicとしては初めてのことじゃないかと思います。

    だけど「どういうエンジニア採用の方法がいいのか?」はわかっていない

    「困った時は聞けばいい」と思っているので、来週2月7日に社内のみんなを集めていろいろ聞こうと思っています。

    Fusicにも中途採用の人も新卒の人もいるので、「どうしてFusicを選ぼうと思ったのか」ということなどを聞いてみたりして、良いアイデアを思いつくきっかけにしようと思います。

    ちなみに、自分はFusic最初の新卒です。

    エンジニアブログですが、エンジニア採用についても書いていこうと思います。

    「どういうエンジニア採用の方法がいいのか?」もですが、「どうやったらFusicに興味を持ってもらえるのか?」「どうやったらFusicのエジンバラ像を知ってもらえるのか?」なども大事だと思っています。

    多分その答えはエンジニア自身(社内外問わず)が知っていると思うので、エンジニアが見ているこの技術ブログに間借りして書いていこうと思います。

    Fusicのエンジニア採用について、面白アイデアや、「Fusicのここが知りたい」といった質問まで、いろいろな声をもらいたいと思っています( @k1LoWoyama@fusic.co.jp など、お気軽に!)。

    隔週でFusic勉強会も開催しているので、その時につかまえてもらっても構いません。

    「こんなエンジニア採用担当がいてもいいじゃないか」と、信じつつがんばっていきたいと思います。

    また進展があったら書きます。

    あ、技術についても書きます。

    おまけ追記

    社内エンジニアに、「エンジニアエンジニア言いすぎ、エジンバラが混じっていてもわからない」と言われたので、混ぜてみました。エジンバラをエンジニアに置換して読んでいただければと思います。

      はてなブックマーク - PackerでVagrantで使うVirtualBox用のboxを生成する
      このエントリーをはてなブックマークに追加

      小山です。

      久しぶりにEmacsの設定を見直そうとしたら、自分のあまりのelisp脳の衰退に驚愕しました。

      さて、明日の1月30日はFusic 勉強会 #6が開催されます。

      Fusic勉強会 #6

      自分は「実践Vagrantを利用したサーバ移行 (VagrantのMultiVM設定からさくらVPSの複数台構成まで)」というタイトルで発表をします。

      内容としては

      いままで複数台構成の専用サーバで数年運用していたシステムを、複数台構成のさくらVPSに移行するプロジェクトが発生。移行前にまずはVagrantのMulti-Machine機能を使ってローカル上で複数台環境を構築、サーバの設定を全てAnsibleに移行し、ローカルでテスト。最終的にそのAnsible設定を『そのまま』実行して複数台構成のさくらVPSへの移行を実現。

      という内容なのですが、実は上の話の前に「PackerでVagrant用boxを作る」という作業がありました。

      明日の勉強会ではその話は飛ばしますので、ここで紹介したいと思います。

      なお、今回の内容はまさに「OSXでpackerでCentOS6.4のVirtualBox VMを作成する」を参考に作業したものですので、是非こちらもご覧ください。

      Packerとは何?

      VMWareやVirtualBoxを開発で利用するようになってから結構立つかと思いますが、最近はVagrantとかPackerとかDockerとかいろいろ便利と言われるツールがでてきて、混乱しますね(自分はしました)。

      で、今回利用するPackerとは何で、どこが便利なのか、良く分からない人もいるかと思います。

      Packerの正確な説明は、皆さんがググった結果や他のサイトにお任せしますが、「個人的で局所的」なPackerの利便性の説明をしてみます。

      VirtualBoxを便利に使うためのVagrantを便利に使うためのPacker

      既に「VirtualBox」と絞ってしまっていますが、「個人的で局所的」なのでご勘弁を。

      VirtualBoxなどの仮想環境を使ったことがある人は多いと思いますが、そのVMの生成のためには「(isoなどを利用した)OSのインストール」が必要で、毎回毎回「インストール時間分」時間がかかっていました。

      それをVirtualBoxの「仮想イメージのインポート/エクスポート機能」をつかって、時間の短縮した人もいるかと思いますが、その部分を担っているのがVagrantです。

      Vagrantは「box」という仮想イメージを管理し、必要に応じてその仮想イメージからVMを簡単にVirtualBoxに生成できるわけです。
      (さらにVMwareでも!的な話は省略します)

      じゃあ、その「box」はどこからもってくるの?となるわけですが、まず2つが考えられます。

      • ネット上に公開されているboxを利用
      • VirtualBox内で動いているVMから生成

      「ネットで公開されているboxは何がインストールされているかわからないからちょっと。。。」という人は必然的に「VirtualBox内で動いているVMから生成」となるわけですが、じゃあ、その「VirtualBox内で動いているVM」はどうやって作るの?また自分でisoから作るの?面倒!となるわけです。

      (Vが頭文字の単語が頻出して、だんだん禅問答みたいになってきましたが、もう少しだけがんばってください)

      その最後の面倒な部分を担うのがPackerです(と、思っています)。

      Packerは、例えば「VirtualBoxのVMをisoから作成し、そこからVagrant用boxを作る」という部分を、「JSONで記述された設定ファイル(といくつかのスクリプト)」を用意するだけで自動化してくれるのです。

      個人的なPackerのポイントは「JSONで記述された設定ファイル(といくつかのスクリプト)」という部分です。

      JSONやスクリプトはバイナリと違い、自分で読めるので、「ネットで公開されているもの」を使いやすいのです。

      ChefのコミュニティCookbookのように夢が広がりますね(Ansible使いですが)。

      Packerでboxを作ってみる

      VirtualBoxは既にインストールしてある前提です。Packerのインストールは「INSTALL PACKER」を参考にしてください。

      今回はCentOS6.5のVirtualBox用boxを作ります。Packerはv0.5.1を前提にしています。

      Packer用JSONファイルを探す

      自分でpacker.jsonを記述するのは面倒なので、インターネット上から設定を探します。
      github.com/hnakamur/my-packer-template-files がとても素晴らしいので、こちらを使います。

      $ git clone github.com/hnakamur/my-packer-template-files

      設定の中身を確認する

      $ cd my-packer-template-files/centos6.5

      centos6.5/template.json を確認するとprovisionersでいくつかスクリプトを実行しているようなので、それぞれのスクリプトで何が実行されているか確認します。

      例えばcentos6.5/scripts/vagrant.sh のスクリプトはVagrantで使う前提の設定をしてくれているなど、いろいろな設定が実行されています。感謝しかありません。

      Packerを実行する

      $ packer build -only=virtualbox-iso template.json

      はい。終わりです。packer_virtualbox-iso_virtualbox.boxというboxが生成されているので、こちらのVagrantのboxとして追加するだけです。

      $ vagrant box add centos6.5 packer_virtualbox-iso_virtualbox.box

      最後に

      ここまで見ていただいた方はおわかりかと思いますが、
      Qiitaの参考URLも、使ったPacker用JSONもHiroaki Nakamuraさんが公開されているものです。
      素晴らしい情報を提供していただいたNakamuraさんにこの場を借りて御礼を言いたいと思います。
      どうもありがとうございます!

      というわけで、続きはFusic勉強会 #6で!

        はてなブックマーク - Fusic勉強会 #5 を開催します
        このエントリーをはてなブックマークに追加

        小山です。

        新年ですね。まあそんな気分は既にふっとんでいますが。

        さて、Fusic勉強会 #5が1月16日(木)に開催します。

        Fusic勉強会 #5

        皆さんふるって参加してください。

        「今さら」をもう一度紹介する

        Fusic勉強会はジャンルがバラバラです。さらに発表者に「今さら??」というような技術情報をあえて発表してもらったりしています。

        というのも、先輩には「今さら」「当然」でも、新人や慣れていない人には「初めて」ということがあるからです。

        主な原因の1つとしてドキュメントの不足がありますね。

        ドキュメントがあれば、後々共有できたり学ぶ手助けができます。
        ドキュメントがないと、「そのとき」に共有した人だけが使えるツールになってしまいます。

        例えば、これとか、これとか、これとか、READMEがないとか最悪ですね。。。。ですね。。。。です。。。

        そうでなくても、「その当時は暗黙の了解」なトレンドな技術やツールがあったと思います。なかなかドキュメントに残らないですよね。。

        今回の発表内容にもある「TestFlightでスマホアプリのデバッグをラクにする」も、もともとは自分から発表者に依頼しました。
        本人には新規性がなくても、知らない人にはとても有用だと思います。

        このように、Fusic勉強会では、ときどき「今さら」な発表があったりします。

        もし発表内容に「聞いたことがあるけど学ばなかった技術」などがありましたら、いい機会ですので聞きに来てください。「今さら」ですからレアですよ?