面接時に見ているポイント

こんにちは、CTO歴も丸9年以上になりました @makoga です。

Podcastや勉強会で話をしたときに好評だったので、今回は私が面接時に見ているポイントを書きます。

※この文章の元ネタは2016年1月に社内に公開したものです。

面接時に見ているポイント

3行まとめ

  • 事実と意見を分けて説明できるか
  • 実際の課題を解決しようとしているか
  • 技術をどう理解しているか

この文章の目的

30分から1時間の面接で一緒に働きたいかを判断するのは難しいことです。私も経験を積んで学んできました。 まだ経験が浅い面接官に私が実践していることを伝えることでVOYAGE GROUP全体の判断の精度を上げていくのが目的です。

事実と意見を分けて説明できるか

圧倒的にこれは重要。これができない人はかなり厳しい。

  • 関わったプロジェクトのなかで、自身が一番活躍できたと思うプロジェクトについて聞く
    • 学生の場合は1人で個人的に作ったものでもいい
  • まずは事実を聞く
    • 質問の例
      • 「そのプロジェクトの目的、体制、使っている技術、あなたの役割、結果について教えてください。まずは事実だけを説明お願いします。」
    • ここで事実と意見を混ぜて話す人が少なからずいた
    • 事実と意見が混ざっているときは「意見はのちほど聞きますので、まずは事実だけを説明ください」のように促す
      • 勘のいい人はすぐ気づくが、人によっては何を指摘されたか理解できない人も・・・
  • 事実を元に意見を聞く
    • 質問の例
      • 「そのプロジェクトでよかった点はどんなことですか?」
      • 「いまふりかえるとどんな課題があったと思いますか?」
      • 「次のプロジェクトで活かせることは何かありますか?」
      • ここで自分の意見が全然出てこない人も・・・

※事実と意見を分けて説明するのがうまい人が書いた障害報告書は読みやすい

実際の課題を解決しようとしているか

  • 現在関わっているプロジェクトの課題を聞く
    • 質問の例
      • 「どんな課題がありますか?」
      • 「その課題を解決しないと何が達成できないのでしょうか?」
      • 「その課題を解決しないと誰が困りますか?」
  • その課題を解決するために何をどのように進めているのかを聞く
    • いまやってることが実現されると本当に課題が解決されるのか
      • 質問の例
        • 「いまやっていることは課題解決と直結していますか?」
        • 「自分だけが嬉しいのではなく、プロジェクトの課題が解決されますか?」
    • 解決されるまでのステップをできるだけ小さくしようとしているか、いきなり大きな話だけしていないか
      • 質問の例
        • 「ですよねー、技術的負債を返済したいですよね。とはいえいきなり全部を返済できないと思うのですが、最初のステップはどう進めますか?その最初のステップが完了したときに得られる効果は?」
    • 他のプロジェクトでうまくやっているやり方をそのまま持ってこようとしていないか、現在の環境にフィットさせるような工夫をしているか
      • 質問の例
        • 「他のプロジェクトでやってるそのやり方はよさそうですね。とはいえそのまま持ってくるのって難しいですよね。いまのプロジェクトと他のプロジェクトの違いってどの辺りでしょうか?その違いを踏まえて持ってくる時に気をつけてることってありますか?」

技術をどう理解しているか

  • 関わったプロジェクトで使った技術を聞き、それらの理解のしかたを確認する
    • プログラミング言語、OS、DBMS、フレームワーク、ミドルウェア、etc
    • 質問の例
      • 「どの技術が好きですか? どんなところが好きですか?」
      • 「その技術を選定した理由を教えてください」
      • 「その技術はどんな要件に合ってると思いますか?」
  • 実際のプロジェクトで導入してみたい技術を聞く
    • 質問の例
      • 「なぜ導入したいのですか?」
      • 「導入前に影響の少ない環境で試してみましたか?」
      • 「試した結果どうでした?」

編集後記

社内に下書きを公開したところ『この公開によって「面接対策される」みたいな懸念ってありますか?』と聞かれたので、『対策してきて、しっかりした受け答えができる人が応募してくれるのはウェルカムです!』と返答しました。

PR

focus.voyagegroup.com

focus.voyagegroup.com

focus.voyagegroup.com

focus.voyagegroup.com

focus.voyagegroup.com

KDD 2019, AdKDD 参加レポート

こんにちは @hagino3000 です。去年に引き続き今年もデータマイニングの国際会議であるKDDに参加してきました。本稿は主にアドテク及びマーケティング関連の発表に焦点を当てたレポートです。

www.kdd.org

Index

なぜKDDに参加するのか

私は研究職では無くエンジニアですが、広告配信システムの開発業務で参考にする論文の多くはKDDに投稿されたものです。去年のKDDで見聞きした発表もいくつかは自社サービスのビジネス設定にあわせてプロダクトに適用しました。さらにインターネット広告に関するワークショップであるAdKDDが毎年開催されるため、広告配信システムに関る者として効率良くインプットと議論ができる事が挙げられます。

広告分野以外の発表についても、Applied Data Science Trackは問題をどう解決したかのソリューション設計が肝であるため分野を問わず学ぶところが多くあります。

Tutorial Day

KDD 2019 | Lecture-style Tutorials

初日はTutrorial Day。去年はガラガラだったA/B Testのセッションが2つもあり、かつ部屋から人が溢れる程の人気ぶりに驚きました。A/B Testはメトリクスの選定からオンライン多重検定におけるFDR(False Discovery Rate)の制御[1]まで様々な話題があり、知れば知るほどその奥の深さに気づかされます。

Challenges, Best Practices and Pitfalls in Evaluating Results of Online Controlled Experiments Fundamentals of large-scale sequential experimentation

AdKDD 2019

2日目はWorkshop Day、私は目当てのAdKDDに参加しました。

2019 Papers and Talks | AdKDD 2019

AdKDD Workshopはインターネット広告に関する招待講演と論文発表で構成されます。SSPからDSPまで様々なプレイヤーの持つ課題、例えばオークションメカニズムの設計・RTB入札ロジック・コンバージョン予測・広告クリエイティブ審査の自動化・広告効果の因果推論・オーディエンス属性推定とトピックは多岐にわたります。全ての発表の紹介は書ききれないので、いくつかピックアップします。

Tencent Ads: Interesting Problems and Unique Challenges

最も印象が強かったのは、Tencentの広告プラットフォームにおける取り組みをまとめた発表でした。広告クリエイティブの自動審査や人間の手によるターゲティング設定を自動化するといった地味な運用の話があったと思えば、動画の中に広告オブジェクトをレンダリングするVideoIn Adsの紹介が始まると会場の空気が一変します。

f:id:hagino_3000:20190815142953j:plain
Tencent Ads: Interesting Problems and Unique Challengesより

これには私も凄すぎて言葉を失いました。光源処理等で広告オブジェクトがシーンに馴染むようにしているとはいえ、現段階ではまだ違和感があります。しかし後から差しこまれた広告かどうか見分けが付かなくなるのも時間の問題だろうと感じました。トーク全体を通して現代のフルスペックな広告配信プラットフォームはこうなると、甚大な研究リソースが投入された結果であろうその姿に圧倒されました。

From the Clouds to the Trenches: Learning to Manage the Marketplace

因果推論ネタで新しかったのは Microsoft Advertising, AI & Research が広告配信のパフォーマンス結果(e.g. ROI)が広告主の行動にどの様な影響を与えるかの実験です。上手くいけば広告主の広告予算が増えるようなポリシーを広告主毎に見つけて適用できます。CPAが低く取れている時は予定よりも早く予算消化して増額提案した方が儲かるんじゃないか、みたいな反実仮想を考えるわけですね。

実験にはセンシティンブなサンプリングが必要で、反応が似ているペアを作ってTreatment群とControl群に割りふる必要があるとの事でした。負の副作用も起りうる、非常に挑戦的な実験で手に汗握りました。

f:id:hagino_3000:20190815143546j:plain
From the Clouds to the Trenches: Learning to Manage the Marketplaceより

In-app Purchase Prediction Using Bayesian Personalized DwellDay Ranking

大企業の発表が目立つ中で、京大鹿島研とサイバーエージェントの共同研究「未インストールユーザーのうちアプリ内課金をするユーザーを推定する」が地味ながらも「これはゲームアプリの広告を配信する時に欲しいと言われる奴だ……」と思いながら聴講。アプリ滞在時間を使ったBayesian Personalized Ranking。

アプリ内課金データは少なくLTV予測の難易度が高いため、課金しそうな人ランキングの問題に帰着している所が使いやすく見えました。現場のニーズっぽいネタが研究テーマになり成果として出てくる所がリスペクトポイントです。

本会議

3〜5日目は本会議。私はApplied Data Science Trackを中心に聴講しました、その中で印象に残った発表を紹介します。

マーケティングにおける逆強化学習・逆最適化

NECの TV Advertisement Scheduling by Learning Expert Intentions はTVCMのスケジューリングを行なうシステムを作った話です。配置の制約が複雑だったりフィードバックが得られない事から、配置職人の作業結果ログを元に組合せ最適化の目的関数を学習して最適化するのが面白かったです。有識者の行動を正とする所だったり、結果の説明性が高い階層クラスタリングを利用している点は伝統的な日本企業を相手にする時に役立ちそうです。

SMOILE: A Shopper Marketing Optimization and Inverse Learning Engine は小売業における実店舗内のプロモーション、デモやフライヤー配布や値引きといったマーケティング活動のプランニング最適化フレームワークです。プロモーション自体の効果(Lift)の推定値は得られるものの、プロモーション効果値と実際のプランニング(シーケンシャルな意思決定)を繋ぐ部分は複雑であるため、意思決定の部分は逆強化学習を用いて過去のプランナーの配置結果から学習するとあります。

人間の意思決定を模倣するパラメータを学習する方策は様々な応用が利きそうで注目しています。

マーケットデザイン

例えばある財を配布するのに「早い者勝ち」にするのか「抽選」にするのか「オークション」にするのか様々な手続きが考えられます。この様な手続きの中で効率が良く・生み出される価値が大きくなるものを追求する分野がマーケットデザインです。Two-Sided Fairness for Repeated Matchings in Two-Sided Markets: A Case Study of a Ride-Hailing Platform はライドシェアリングにおけるドライバーと乗客のマッチングアルゴリズムで公平性を考慮するものです。マッチングアルゴリズムは参加する人々に与えるインセンティブを変え、人々の行動を望ましい姿にする力があります。私は業務設計や値付けの際に役立つので好きな分野の1つです。

羅生門効果 (Rashomon effect)

講演を聞くまで知らなかったのですが、機械学習の分野で同じ予測を行えるモデルが複数存在する事をRashomon effectと呼ぶそうです。同じ予測性能が得られるのならばより単純なモデルを見つけて採用したい、これを行なうための方法論が最終日のKeynoteセッションに登場しました。

参考:A study in Rashomon curves and volumes: A new perspective on generalization and model simplicity in machine learning

PID制御でRTB入札最適化

DSPの広告配信システムで Bid Optimization by Multivariable Control in Display Advertising が制約にクリック1回あたりのコスト(CPC)を持つ入札金額最適化問題をシンプルなソリューションにしていました。クリック1回あたりのコストというのはオークションに入札して勝利して広告が表示された後さらにクリックが発生してようやくわかる値、遅れて得られる値です。行動(オークション入札)の後しばらくして充足しているか違反しているかわかる制約のためソルバーで静的に解ける問題ではありません。

f:id:hagino_3000:20190815144902p:plain
クリックあたりのコストと予算制約の元で獲得コンバージョン数を最大化する

これをPID制御で行なう事で非常にシンプルなソリューションになっています。オークションの入札最適化にはよく「いくらで入札したら何%で勝てるか」の勝率関数を利用します[2]。これを求めるタスクを入札ランドスケープ予測と言いますが、彼らのソリューションには登場しません (勝率無しでモデリングしている)。またこれだけで予算消化額の制御とCPCの制御が同時に出来る所が凄いなと思いました。

f:id:hagino_3000:20190815143424p:plain
Bid Optimization by Multivariable Control in Display Advertisingより

ランダムに出現しては消える蟹

四日目夜の懇親会では蟹が出ました。蟹が無くなると補充されるものの、補充された途端に人が集り蟹が消えてしまうので観測が非常に困難でした。

f:id:hagino_3000:20190807200206j:plain

全体の感想

強化学習の実用例が増えたなという印象です。Cost Per Clickの様な短期指標ではなく、広告主の長期的な指標に寄与する意思決定を行なうのに適しているとされます。自分のチームでもシミュレーターの開発からになりますが取り組みたいです。

あと開催地のアラスカは非常に涼しく、昼が長く22時を越えても明るかったので快適に滞在できました。


[1] サンプルサイズと有意水準を事前に固定して行なう古典的な仮説検定の設定とは異なるため

[2] 約定金額の分布を連続な確率分布で近似すると目的関数が扱いやすくなる。また約定金額の分布の累積関数は入札金額に対する勝率になる。

Treasure、10年間で変えたこと・変えなかったこと

こんにちは、CTOの @makoga です。

2019年5月にオフィスが移転します。新しいビルなので綺麗だし、社内バーAJITOもリニューアルするのでとても楽しみ。

でも、イベントなどの思い出が詰まった場所と離れるのは寂しいものです。

VOYAGE GROUPでは2006年から毎年夏にエンジニア向けインターン「Treasure」を開催しています。 オフィスが移転するということで過去の参加者たちと「さよならパンゲア・AJITO」というイベントを開催しました。

[f:id:voyagegroup_tech:20190425151343j:plain

このエントリはそこでLTした内容です。

10年間で変えたこと

VOYAGE GROUPで利用してる技術に合わせていった

10年前に用意したベースアプリケーションのプログラミング言語はPHPでした。モダンなフロントエンドのライブラリは使わず、シンプルなWebページを表示していました。

当時のサービスインフラはオンプレだったので、インターンではさくらのレンタルサーバを利用しました。

そこから、実際に利用している技術をインターンに取り入れていき、昨年はGo, React, AWSなどになりました。

1人では学びにくいことを講義に盛り込んでいった

学生が1人で学べることはこの10年でものすごく増えたと思います。チュートリアルは充実してるし、ビデオで学習できるし、データも提供されているし。

そこで、Treasureでは1人では学びにくいことを盛り込んでいきました。例えば、チーム開発の進め方、チームでのアイデアの練り方、などです。

講師をペアやチームにした

初期の頃は1人の講師が全テーマを担当していました。

その後、テーマごとに講師を割り当てました。プログラミング、Web API、データベース、セキュリティなど。

今は、テーマごとにメイン+サブだったり、チーム全体で1つのテーマを担当したりしています。

これにより、実践によるスキルトランスファーが行え、講師陣に厚みができたと思います。

10年間で変えなかったこと

講義+チーム開発

いきなりチーム組んで開発してもらってアウトプットだけを評価することもできます。

でも、それでは私たちが大事にしていることを伝えるのは難しいと思っています。

私たちは毎年新卒を採用しています。そこで培ったナレッジを活かして、インターンに参加した学生を圧倒的に成長させたいと考えています。

そのためには講義+チーム開発が必要と考え、この形式を続けています。

講師・サポーター陣がフルコミット

参加した学生より多くのクルーが関わっています。2018年は学生30人に対して44人が関わりました。

講義をする講師がいて、つまづいた人をフォローするTAがいる。チーム開発時には、チームごとにエンジニア2名+1が張り付き、議論が必要なのか、まずは手を動かしたほうがいいのか、最終日に間に合わせるための優先順はどう付ければいいのかをサポートします。

1人では学びにくいことを学べる環境にしています。

切磋琢磨できる雰囲気

チーム開発の最終日には成果発表があり、順位が付けられます。

単に勝ち負けを競ってもらいたいわけではありません。

このTreasureで出会った仲間と、この3週間はもちろんのこと、その後も切磋琢磨できる関係でいられるような雰囲気を目指しています。

まとめ

今回のイベントでは「Treasureが人生の転機になった」的なことを言ってくれた人が何人かいました。これからも学生の3週間という貴重な時間が、参加した人たちのTreasure(宝)になるよう全力でやっていきたいと思います。

おまけ

去年のTreasure様子はこちら → VOYAGE GROUPエンジニアインターンシップ Treasure2018 を開催しました #voyage_intern - VOYAGE GROUP techlog

春のエンジニア向けインターンシップ2019開催のお知らせ~第二弾~

こんにちは、VOYAGE GROUP人事の @saxsir です。
VOYAGE GROUPでは、21卒エンジニア学生向けに春のインターンシップを開催します!

3月にも開催していましたが、今回はその第二弾となる4,5月イベントのご案内です。※ベースは3月に開催したものと同内容になります


Goで学ぶWebアプリケーション開発とチーム開発

GoでWebアプリケーションを書いてみよう!
サーバサイドをメインにクライアントサイドとの連携、そしてチームでの開発についても学びます。

今回の内容は、VOYAGE GROUPで開催する夏のインターンシップ「Treasure」を少しだけ体感できるものとなっております。 (Treasureの詳しい内容については、過去のブログ にまとめています)

1dayインターンシップ当日は、サーバーサイドはGo, クライアントサイドはHTML, JavaScript(Vue.js)を利用し、クライアントサイドとサーバーサイドの連携、DBとの接続など、Webアプリケーションの開発に必要な技術を広く触ります。今自分が何を知っていてこれから何を学んでいけばいいのか?これからインターンシップを探していく上で参考になることをもって帰ってもらえれば嬉しいです!

当日はハンズオン形式で知識のインプット、個人でのアウトプットを通して学んでもらい、最後はチームで機能を実装してもらう予定です。

※ 当日のタイムスケジュール(予定)

11:00 開始
11:00~12:00 チュートリアル
12:00~13:00 ランチ
13:00~15:30 講義・実装
15:30~18:30 チーム開発
~ 21:00 懇親会

1日に詰め込んでいるので、とても消化しきれない量のインプットがあると思いますが、できるだけ多く経験、知識を持って帰ってもらえたら嬉しいです。

Treasureにおいて大切にしているチーム開発の楽しさを一足先に体感してみませんか?

f:id:saxsir256:20190313161750j:plain

こんな人にオススメ

  • プロのエンジニアがどのようにWebアプリを書いてるか学びたい!
  • チームで開発してみたい!
  • 同世代の中で自分のレベルを確かめたい!
  • 春からスタートダッシュしたい!!

前回参加者の声

Aさん

短時間ながらインプット、アウトプット共にとても密度の高い経験をすることができました。一人で黙々とやっていても得られないチーム開発の難しさや楽しさを学ぶいい機会になった

Iさん

1日であるため参加もしやすく,それでいて濃密な1dayインターンは他に類を見ないと思います.後輩や友人にもおすすめしたいので,今後もぜひ開催してください!

【2019/03/22 11:12追記】3月に参加してくれた学生さんがブログを書いてくれました!

medium.com

日程

  • 2019年4月13日(土) 11:00 - 21:00(18:30~は懇親会)@東京(VOYAGE GROUP渋谷本社)
    • 応募締切: 2019年4月8日(月) 9:30
  • 2019年5月6日(月・祝) 11:00 - 21:00(18:30~は懇親会)@京都(サポーターズ京都オフィス)
    • 応募締切: 2019年4月25日(木) 9:30

※どちらか片方の日程のみ参加可能です

場所

東京開催

VOYAGE GROUP本社(渋谷ファーストプレイス)8F セミナールーム https://voyagegroup.com/company/profile/#wrap_map

京都開催

サポーターズ京都オフィス セミナールーム
https://supporterz.jp/kyoto-rental/

持ち物

  • PC
    • 推奨: macOS 10.13 (High Sierra) 以降が動く Mac もしくは Ubuntu 18.04 LTS 以降が動く PC (仮想環境も可)
    • ※Windows環境は当日サポートしていませんので、VirtualBox等の仮想環境でLinuxが動く環境を用意しておいてください
  • 元気な身体とできるだけ吸収していくぞ!という気持ち

エントリー

下記フォームから登録してください!
エントリーフォーム

応募資格

  • 2021年4月以降に入社可能な方(文理不問)
  • プログラミングが好きな方!
  • (必須ではありませんが) サーバーサイドの開発経験があると良いです

その他

  • 交通費は自己負担となります
  • 懇親会では軽食と飲み物(アルコール・ソフトドリンク)がでます
  • 服装は自由ですが、できるだけ私服でお越しください!

※ 夏のインターン、Treasureの様子は下記ブログにまとまっています techlog.voyagegroup.com

お問い合わせ

  • 人事本部: インターンシップ担当
  • メールアドレス: new-recruit@voyagegroup.com

それでは、たくさんのご応募お待ちしております!

『VOYAGE GROUP エンジニアの公開ガチ評価会』を開催しました!評価資料・評価結果すべてお見せします!

こんにちは。

ポイントメディア事業本部エンジニアの、あっきー(@akkiihs)です。

2019/01/30(水)に開催した『VOYAGE GROUP エンジニアの公開ガチ評価会』の評価資料・評価結果を公開します!

(大変おまたせしました、、!)

voyagegroup.connpass.com

イベント経緯

その前に、イベントを開催するにあたった経緯など簡単に書いておきます。

もともと、このイベントを開催した経緯として、PHPカンファレンス2018がありました。

VOYAGE GROUPは、PHPカンファレンス2018のスポンサーであり、セッションやブースにてエンジニア評価制度である『技術力評価会』について話をしました。

ただ、話をしただけでは、概念としては伝えられても「実際のところ、どんな感じなの?」ってところが、まだ伝わりきりません。

そこで、実際の技術力評価会をイベント形式で見てもらおう!公開してしまおう!というのが『公開ガチ評価会』のイベントを実施するキッカケとなりました。

かなり思い切ったイベントだったのでは、、

イベント当日の様子

イベントの公開時から、思っていた以上に参加申し込みがあり定員が溢れ、当日は70名近くの方が参加くださいました!

当日は、Twitterハッシュタグ「#vg_tech_assessment」で、つぶやいてもらいました。

Togetterでまとめたので、ご覧ください。

togetter.com

イベントでは、最初にCTOである、小賀さん(@makoga)から、『5分でわかる技術力評価会』の話がありました。

『技術力評価会』を制度として導入した経緯や、評価会の内容、毎回改善が繰り返されていることなどが濃縮されてます!

speakerdeck.com

そして、実際の評価会へ。

今回は、以下の被評価者・評価者で、本来90分かけて実施するところを、60分に短縮し実施していただきました!

被評価者: やんうぇい さん(@yangwei21

評価者: すずけん さん(@suzu_v

   : ねこや さん(@nekoya

イベント後の懇親会では、評価制度についての交流もあり、

後日ブログで書いてくださる方もいて反響が大きかったんじゃないかなあと思います。

評価資料

当日、参加者にも公開していた評価資料です。

gist.github.com

評価結果

気になる評価結果はこちらです。

技術力評価会 評価結果

評価者 @suzuken

総評

管理画面のフロントエンドのツールやライブラリ類を入れ替えていくという話でした。うまくやっていたと思います。

このチームの話をきいて強みであると思ったのは、ほぼ毎日リリースされている画面でありかつほぼ全員で管理画面を触るということです。フロントエンド専任のメンバーが2,3人だけであれば話をして同意すればごっそりと既存スタックからの移し替えも含めて進めることができるでしょう。しかし今回はそうではなく、数年運用されてきていて多くの人が開発に関わっているフロントエンドの多様な実装を今あらためて置き換えていくという試みでした。結果として、段階的にかつ整備しやすい環境に向けての一歩が着実に踏めていると感じました。

次のあたりは安定した判断ができていると思った箇所です。

  • 無理にSPAにせず複数ページのアプリケーションに分けた
  • UI Frameworkを統一(ルールをシンプルに)
  • 静的な画面、簡単なフォームではひとまずさくっとSymfony Formを使う

ともすればフルリプレースですべてモダンな構成にと考えてしまいがちではありますが、現状のチームの知見や既存コードの運用を踏まえると、手堅く課題を解決できるプランとなっていました。

また評価会でも触れましたが、Reactをより全面に導入していくことにより、返って既存のスタックが複雑化してしまうのではないかという懸念もあります。これについては現在も既存画面を置き換えつつも、既存の技術スタックから移るメリットをチーム内のメンバーにも共有しペアプロなどを通じながら巻き込んで行けているのは良い進め方でした。

成長へのアドバイス

プロダクトを着実に前進させるための施策を適切なタイミングで実行できていたと思います。とはいえ決めてからが頑張りところです。がっつり改善していってください!

  

ねこやからやんうぇいへ

時間も短く多数のギャラリーのいる中、必然的にプロレスの様相を帯びる公開評価会ではありましたが、それも込みでいい会でした。

まず感心したのは、そうした場の作り方もひっくるめて、やんうぇいが「今日はこういう会にしよう」という線を言外に、極めて自然に引いてくれたことです。もしかしたらあまり自覚してないかもしれないけど。

そういう器用さも持ち合わせていることは不思議でもなんでもないけど、それをあの場でさりげなくやってのけたのは大人の立ち回りでかっこよかった。

具体的には

  • 時間とギャラリーの関係で見せるコードは限定的に
  • チームの誰それがみたいな個別の人の話はしない

あたりをメッセージとして受け取りました。

技術選定

そうするよねー、というセレクトで特に違和感ありません。1年前、2年前ならこのへん議論のしどころだったろうけど、今はそういう時勢じゃない。

TypeScriptの設定は自分ならもう少し堅くするし、実際にそうしている。既存のアーキテクチャからハードルを低くするという狙いも分かるけど、型に関する理解が薄いまま書いてしまう場面が出てこないかという懸念はあります。

投資判断

主眼に置いていると感じられたのは以下の2点です。

  • Developer experienceの向上
  • 既存アーキテクチャが抱えるセキュリティリスクの解消

いずれも理解はできるし、後者は具体的な事業リスクなので、そこを改善できるのは意義がありそうに思えます。

いろいろな要素がちょうどよく出揃ってきたタイミングで、シュッと新しいものを滑り込ませることが出来たんだろうなと見て取れました。

既存のものを置き換えるとしたら、もう少し材料を揃える必要があったかもしれないけど、新しいところに部分的に投入するなら「やっちゃいました」でいいのかな。そういう状況を作れていたならそれでよさそう。

チームへの普及、定着

最初の方に「チームの中で技術的な担当範囲での役割分担はしていない」という話があったけど、今回の取り組みの普及度合いはまだそこまででもなさそうに見えています。

書ける人を増やす取り組みを怠っているわけではなさそうなので、継続的に普及させていってください。

次の一手

既存のものを一気に置き換えないというのは現段階の選択としてありだけど、未来永劫それを併存させるのかは気になるところです。複数のアーキテクチャが混在していて、両方を理解していないと管理画面の開発ができないみたいになると効率が悪くなりそう。そこにどう立ち向かっていくのかが次の課題かと思います。

現段階ではそこはあまり意識していなそうに受け取れたし、まだその時期ではないかもしれないけれど、そこでどういう決断をするのかは気になります。

  

VOYAGE GROUPの、エンジニア評価制度である『技術力評価会』では、

準備、評価会そのもの、評価結果(フィードバック)、振り返りを時間をかけて取り組んでいます。

それだけ、評価する・評価されるに関係なく、エンジニアが納得感を得られるかが大切であり、

それによって組織全体としての育成・評価の共通基準が生まれやすくなるのかなと個人的に思います。

  

  

次回、同様なイベントを開催するかどうかは、、未定です!

  

  

最後に、VOYAGE GROUPではキャリア採用を募集しております(ちゃっかり宣伝)

voyagegroup.com

デブサミ2019講演「レガシーとのいい感じの付き合い方」の資料を公開します。

ポイントメディア事業本部の福田です。

Developers Summit 2019にて、「レガシーとのいい感じの付き合い方」と題して、ECナビの4年に渡る改善事例を発表しました。 講演資料を公開します。

セッション詳細

event.shoeisha.jp

公開資料

当日の反響(togetter)

togetter.com

発表を終えて

ネタが地味目なので、当日どれくらい来ていただけるのか少し不安でしたが、満員+立ち見の盛況でした。

当日ご参加いただいた方、ありがとうございました。

アイスブレイクとして、会場のみなさんには「何年もののレガシーシステムに取り組んでいるか?」について質問させていただいたところ、「10年以上」という方が半数超え(※壇上からの主観です)で、レガシーシステムの問題は顕在化していることを実感しました。

目立たずに水面下でじわじわと苦しめられてる問題だと思うので、私達のような”課題先進国”の事例が共有され、この問題を議論する機会が増えていくといいですね。

私達もまだまだ改善途上なので知見を深めていきたく、「レガシーシステムについて語り合いたい」という方がいれば、お声がけください。

あわせて読みたい

「老舗メディアが改善に取り組んでる話」 techlog.voyagegroup.com 2016年11月ごろの、PHPカンファレンスでの事例紹介。事始めが終わって、ECナビAWS移行を進めていた時期です。

「インフラチームと開発チームの垣根をなくすためにAWSのCI環境を構築した話」 techlog.voyagegroup.com 2017年2月ごろの記事。ECナビAWS移行を無事完了させた直後の話。CloudFormationとTravis CIあたりがくわしく説明されています。

最後に

ポイントメディア事業本部では、カイゼンを一緒に進めていくエンジニアを募集中です。

サービス開発エンジニア voyagegroup.com

システム基盤エンジニア voyagegroup.com

春のエンジニア向けインターンシップ2019開催のお知らせ

こんにちは、VOYAGE GROUP人事の @saxsir です。
VOYAGE GROUPでは、21卒エンジニア学生向けに春のインターンシップ(& 勉強会)を開催します!

まずはその第一弾となる、3月開催イベントの紹介です。

  1. Goライブコーディング(3h)
  2. 実践Webアプリケーション開発(1day)

の2コースを開催します。


1. Goライブコーディング

VOYAGE GROUPのエンジニアがペアプロでプログラムを組み上げていく様子をライブコーディングします!

使う言語はGo。プロのエンジニアがどう考えてコードを書いていくのか?どんなツールを使っているのか?当日はエンジニア2名によるペアプロスタイルで実装を進めていきます。

お酒もご用意しますので、最高のコードをつまみに、食べて、飲める、イベントとなっております。 お酒を飲みながら、プロの技術に酔いしれましょう。
(未成年の方、お酒が苦手な方向けにソフトドリンクも用意してあります)

ライブコーディング終了後はそのまま懇親会もあるので、直接VOYAGE GROUPのエンジニアに話を聞くこともできます!

※ ライブコーディングとはエンジニアが皆さんの目の前でコーディングを行うイベントです。 画面の分割や切り替えのテクニック、エディタの設定やプラグインなど、どんな環境でやっているのか トップエンジニアが扱うLinuxコマンドなどをライブで学ぶことができます!

f:id:saxsir256:20190208111306j:plain

こんな人にオススメ

  • プロの開発環境を見てみたい
  • Goでなにか書いたことがある/書いてみたい
  • 春、夏のインターンを探している

日程

2019年3月1日(金) 18:00 - 21:00

場所

VOYAGE GROUP本社(渋谷ファーストプレイス)8F セミナールーム https://voyagegroup.com/company/profile/#wrap_map

持ち物

  • 特になし

エントリー

下記フォームから登録してください!
エントリーフォーム

応募締め切り: 2019年2月26日(火) 23:59まで

応募資格

  • 2021年4月以降に入社可能な方(文理不問)

その他

  • 交通費は自己負担となります
  • 懇親会では軽食と飲み物(アルコール・ソフトドリンク)がでます
  • 服装は自由ですが、できるだけ私服でお越しください!

2. 実践Webアプリケーション開発コース

GoでWebアプリケーションを書いてみよう!
サーバサイドをメインにフロントエンドとの連携、そしてチームでの開発についても学びます。

今回の内容は、VOYAGE GROUPで開催する夏のインターンシップ「Treasure」を少しだけ体感できるものとなっております。

具体的にはフロントサイドはHTML, CSS, JavaScript, React, npm, webpack等々...サーバーサイドはGo, dep, MySQLに加えて、開発環境ではdocker等。

当日はGoでのアプリケーション開発がメインとなる予定ですが、Webアプリケーションを開発するために必要な知識が詰まったものになっているので、今自分が何を知っていてこれから何を学んでいけばいいのか?これからインターンシップを探していく上で参考になることをもって帰ってもらえれば嬉しいです!

当日はハンズオン形式で知識のインプット、個人でのアウトプットを通して学んでもらい、最後はチームで機能を実装してもらう予定です。

Treasureにおいて大切にしているチーム開発の楽しさを一足先に体感してみませんか?

f:id:saxsir256:20190208114339j:plain

こんな人にオススメ

  • GoでWebアプリケーションを書いてみたい
  • チームでの開発を体験してみたい
  • 夏のインターンを探している/Treasureでどんなことをやるのか気になる
  • 春からスタートダッシュしたい!

日程

  • 2019年3月10日(日) 10:00 - 18:00, 18:00 - 21:00(懇親会)
    • 応募締め切り: 2019年3月3日(日) 23:59まで
  • 2019年3月18日(月) 10:00 - 18:00, 18:00 - 21:00(懇親会)
    • 応募締め切り: 2019年3月11日(月・祝) 23:59まで

※どちらか片方の日程のみ参加可能です

場所

VOYAGE GROUP本社(渋谷ファーストプレイス)8F セミナールーム https://voyagegroup.com/company/profile/#wrap_map

持ち物

  • PC
    • 推奨: macOS 10.12 (Sierra) 以降が動く Mac もしくは Ubuntu 16.04 LTS 以降が動く PC (仮想環境も可)
    • ※Windows環境は当日サポートしていませんので、VirtualBox等の仮想環境でLinuxが動く環境を用意しておいてください

エントリー

下記フォームから登録してください!
エントリーフォーム

応募資格

  • 2021年4月以降に入社可能な方(文理不問)

参加者の声

"グループ開発ならではの面白さや難しさを知ることができた。 Goの自分の知るよりも大きなアプリケーションを触ることができて良い経験になった。"

"参加学生のレベルの高さを感じることができた"

"チーム開発経験に乏しかった為、チーム開発の時間があったのは良かった。 Githubを使った開発の流れを知ることができて、今後に活かせそうだと感じた。"

その他

  • 交通費は自己負担となります
  • 懇親会では軽食と飲み物(アルコール・ソフトドリンク)がでます
  • 服装は自由ですが、できるだけ私服でお越しください!

※ 夏のインターン、Treasureの様子は下記ブログにまとまっています techlog.voyagegroup.com

お問い合わせ

  • 人事本部: インターンシップ担当
  • メールアドレス: new-recruit@voyagegroup.com

春休み、なにか新しいことに挑戦してみませんか?
それでは、たくさんのご応募お待ちしております!