LIFULL HOME'S事業本部 技術開発部 の冨田です。
LIFULLエンジニアのインタビューを通して、なかで働くエンジニアはどんな人なのか、どんなことをしているのか、を知ってもらうきっかけになればと思い、このような取り組みを始めました。
ゲスト紹介
本日のゲストはおなじく LIFULL HOME'S事業本部 技術開発部 の磯野さんです。
過去にはiOSアプリのLIFULL HOME’Sやオンプレミスからクラウドへのサーバ移行、Zipkinの導入なども担当され、現在はLIFULL HOME’Sを支えるアーキテクチャの刷新を担当しているエンジニアです。
目次
- ゲスト紹介
- 目次
- 学生時代
- LIFULL入社前
- LIFULL入社後
- 子どもが生まれてから
- 技術のキャッチアップ方法
- 育成と後輩エンジニアからの刺激
- 好きな開発環境、言語など
- 将来のビジョン
- 次回予告
- 編集後記
- お知らせ
学生時代
冨田(以降 冨): 初めてパソコンを触り始めたのはいつごろですか?
磯野(以降 磯): 小6から中1くらいですかね。
父の仕事の関係でMS-DOSのPC9801やベーマガが家にあって、写経していました。
父からはプログラムは一切教わっていませんでした。
動かなくても理解していなかったのでデバッグも出来ずにただ間違いを探していた感じです。
冨: かなり小さいころからやっていますね。 中学から大学ではなにかやっていましたか?
磯: 中学、高校はゲームをやっていて、プログラミングはしていませんでした。
大学に入ってFortran、Cをちょっとだけやりましたが、情報処理に関してはあまりやっていなかったですね。
当時常時接続が出始めた時代で、自宅でサーバやルータをFreeBSDで構築したり、Movable TypeやWikiをサーバにいれていましたね。
NICの二枚刺しもしていました。
冨: 懐かしいですね(笑) プログラムの改造とかはしていたんですか?
磯: 設定ファイルを書く程度ですね。
社会人になっても自宅サーバは少しやっていましたが、電気代がかかったり、無線LAN 、VPSが出始めたのでやめてしまいました。
LIFULL入社前
冨: LIFULLに入社される前はどのような仕事を?
磯: プロバイダーのコールセンターでテクニカルサポートや料金案内などをしていました。
冨: IT関連ではありますけど、結構畑違いですね。 Excelでマクロとか組んだりはしていたんですか?
磯: 多少Excelでマクロ組んだり、PerlでかかれたCGIを改造したりはしていましたね。
0からは書けませんでしたが。
冨: やりはじめたきっかけは? 仕事上必要だったから? 楽しいから?
磯: 誰もやってくれなかったので自分で勝手にやりはじめました。
元々、昔プログラマだった方が管理していたんですが、一部権限をもらってやりはじめました。
LIFULL入社後
冨: その後LIFULL(旧ネクスト)に2007年にエンジニア職として入社するわけですが、エンジニアにキャリアチェンジされた理由は?
磯: プログラムの改造が楽しかったのと、もともとサーバに興味があったので、もうちょっとその辺をやっていきたいと思いました。
冨: LIFULLに入社して一番スキルアップを実感したところ、ブレイクスルーのきっかけは?
磯: 入社してLIFULL HOME'Sの賃貸のWEBサイトを担当していたのですが、その後すぐにリニューアルをメインで担当させてもらえたのが大きいですね。
Zend Frameworkベースの社内フレームワークと社内向け物件検索APIがあったのでコアな部分はそちらに任せつつ開発していました。
冨: 自由に出来る部分、裁量が合ったから伸びたのですか?
磯: 裁量もですが、「なんでこうするの?」としっかり考えながら開発したのが大きかったと思います。
子どもが生まれてから
冨: 弊社の男性技術者の6割が育休取得しているそうですが、磯野さんはどうでしたか?
磯: 子どもはもうすぐ4歳になりますが、育休期間は3ヶ月とりました。
育休はじまって2ヶ月経って妻に「子どもが2人いるような感じだからもう仕事行っていいよ」って言われました(笑)
冨: 私はまだ子どもがいないのでわからないのですが、子どもが生まれた後どうやって技術のキャッチアップの時間を作っていますか?
磯: 妻と交代で面倒みていたので時間は作れました。
ただ、最初の半年くらいは「おなかすいた!」と泣いてしまうので集中はできなかったですね。
最近は聞き分けがつくようになったので夜に多少時間が作れるようになりました。
また、3歳くらいになると出かける時に必要なおむつなどの荷物が減って妻だけで外出できるようになったり、子ども同士で遊ぶようになったので楽になりましたね。
技術のキャッチアップには家族の理解も必要なので、<妻のための時間>、<子どものための時間>それぞれの時間配分が必要ですね。
最近はレゴブーストに興味があるんですよ。
子どもと一緒にプログラムしたいですね。動くものを一緒につくるのが楽しいです。
冨: エンジニアの英才教育ですか?
磯: エンジニアになって欲しいわけではないですが、一緒に遊べる共通言語としてレゴブーストがある感じですね。
論理的思考につながるかはわかりませんが、つながるとよいと思っています。
技術のキャッチアップ方法
冨: 技術のキャッチアップはどうしています?
磯: 昔はGoogle Readerやはてなブックマークで情報収集をしていましたが、最近はしていませんね。
自分がやりたいことがある時にどういうツールがあるかを調べています。
本を読むだけではなくアウトプットをだすことが重要ですね。
伸びている人たちはプライベートでもアウトプットだしていますね。
冨: お薦めの本はありますか?
磯: ケント・ベックがお薦めです。 Smalltalk best practice patterns、Implementation Patterns、メソッドレベルの書き方、例えば命名などに役に立ちます。
冨: 日本語版は絶版っぽいですね・・・ 原著を手に入れるしかないですね。
冨: 個人のOSSを公開してgolangを利用していますが、golangはどうやって覚えたのですか?
磯: 公式サイトで覚えました。
ブログや公式サイトの日本語版は情報が古かったりするので英語版の公式サイトを見たほうがよいですね。
冨: 気をつけます・・・
育成と後輩エンジニアからの刺激
冨: 2年目のエンジニアに対する研修のメンターやリクルーティングも担当していますが、刺激や学びはありますか?
磯: 入社してくる新卒やテクノロジーナイトに参加してくる人は意識高い、できる感じで焦燥感に駆られますね。
2年目研修で担当したエンジニアもVimやターミナルの操作が最近伸びていると感じますね。
冨: 2年目研修のメンターではどのように育成していましたか?
磯: ネットで調べただけでしっかり理解していないことがあるので、「なんでそうやったのか?」を意識して聞いていました。
捨てるコードとプロダクションコードでやっぱりスキルアップの差が違うので、できればプロダクションコードで機会を与えたほうが良いですね。
冨: 2年目研修やリクルーティングの担当を積極的に引き受ける理由あるんですか?
磯: エンジニアが人事に対してもっと協力しても良いんじゃないかと思ったので実践しています。
冨: そういう思いもあったんですね。
好きな開発環境、言語など
冨: どのような開発環境が好きですか?
磯: OSはMacですね。 エディタはAtomを使っていたのですが、golang書くのに楽なVisual Studio Codeを使っています。
最近はVSCodeじゃないと書けない体になってきました。 CTO*1を筆頭にVim使いが多いですが、私は.vimrcはカスタマイズせずに使っています。
冨: 言語はどうですか?
磯: ここ数年だとNode.js, golangあたりです。
Node.jsはstream、golangはマルチプラットフォームなところがいいですね。
言語仕様もあるので難しいのですが、テストに関してやりづらいところもあるので、 LIFULLのメインの言語の一つであるRubyのテスティングフレームワークのRSpecを懐かしく思う日々です。
冨: ミドルウェアやライブラリとかはどうです?
磯: ログイン、認証、権限周りが好きでSTNS、Assume Role、OAuth周りも好きですね。
今後腰を据えてやっていきたいです。
冨: 社内でshell芸人って呼ばれていたりしますけどその辺は?
磯: あとで読み返すのが厳しいですね。
一時期はログを解析するのでやっていましたが最近は別のエンジニアがやってくれるようになったのでshell芸人力が下がってきました(笑)
将来のビジョン
冨: 今後どういうエンジニアを目指していますか?
磯: 社内のドメイン知識に寄りすぎているので、もっと技術的な部分を伸ばしていきたいですね。
冨: 社歴が長いとそうなることが多いですよね。
磯: 仕事、プライベートともにOSSにできるものを公開してきたいです。
冨: それはなぜですか?
磯: OSSを使うだけでなくて、もっと貢献していきたいですね。
他のメンバーのお手本になるように率先してやっていこうと思っています。
自分の技術力で社会に貢献ができるし、会社のプレゼンスもあがるので。
冨: 取り組みはどのようなことをしていますか?
磯: 今、社内のOSSのルールを策定中です。
また、社内で利用しているライブラリもOSSで公開できるようにしていきたいと思っています。
iOS黎明期のライブラリは洗練されていなかったので機能追加やバグ修正の手が出しやすかったのですが、いまは洗練されているので手を出しにくいですよね。
他のメンバーも手を出しやすいように、小さいものでも公開していきたいと思ってます。
冨: <git管理しているファイルを透過的に暗号化、復号化するためのフィルター>をOSSとして公開していますが、きっかけを教えていただけますか?
磯: 自分が純粋に欲しいものを作りました。
冨: これはgolangで書かれていますが、golangを先に勉強していたから選んだのですか?
磯: これをつくるためにgolangに手を出しました。
デーモンとして状態を保持できる言語であればなんでも良かったのですが、マルチプラットフォームで動くのと、ちょうどその頃golangの流行が落ち着いてきて、手を出そうと思いました。
環境構築の方法が固まっていなかったりするので、あまり流行りのものには手を出さないですね。
次回予告
冨: この人のスキルアップ術を聞いてみたい、またはお薦めなエンジニアはいらっしゃいますか?
磯: iOSアプリエンジニアの高橋庸介さんに聞いてみたいです。
交流がない人で聞いてみたい人の縛りにした方が良いんじゃないですか?
冨: それではその縛りでやってみましょう!
編集後記
アウトプットドリブンでインプットされている点が印象的ですね。
遅延評価勉強法に近い感じでしょうか。
私はつい本から入ってしまい、わかった気になって結局アウトプットを出せていないので、アウトプットを出すためにはこの方法が良いのかもしれませんね。
お知らせ
LIFULLではエンジニアをはじめ各職種で採用を行っております。
こんなエンジニアと働きたい!という方は弊社の採用サイトもご覧ください!
*1:2017年4月よりCxO職を新設