GameWith Engineering Blog

GameWith のエンジニア、デザイナーが技術について日々発信していきます。

builderscon tokyo 2018 にスポンサーとして協賛します

GameWithbuilderscon tokyo 2018 にスポンサーとして協賛します。

gamewith.co.jp

弊社のエンジニアも当日は何名かで参加する予定です。 ぜひ会場でお会いしましょう!

イベント概要については、以下をご覧ください。

イベント概要

f:id:serimaryo:20180720094523j:plain

イベント名 : builderscon tokyo 2018

概要 : buildersconは、「知らなかった、を聞く」をテーマとした技術を愛する全てのギーク達のお祭りです。

日時 : 2018 年 9 月 6 日 〜 8 日

会場 : 協生館(慶応大学)

公式 HP :

builderscon.io

PHP カンファレンス福岡 2018 前夜祭リジェクトコンで発表してきました #phpconfuk_rej

こんにちは。

エンジニア兼技術広報の @serima です。

仕事では会社から支給されている Macbook Pro を利用しているのですが、このキーボードでタイプしすぎると腱鞘炎になりがちで長いこと悩んでいました。なので、少し前から尊師スタイルに切り替えてみました。(自分の場合はマウスを使うので、完全にはそれではないのですが…)

いずれにせよ、HHKB を利用することで腱鞘炎は改善しました!

と、前置きはここまでにしておいて…

PHP カンファレンス福岡の登壇枠への応募

PHP カンファレンス福岡 2018 の登壇枠に下記の内容で応募したのですが、残念ながら採択されませんでした。 もし採択されれば、GameWith がどのようなインフラ構成で動いているかという話を中心に、主にアーキテクチャについてお話をしようと思っていました。

今思うと、少し会社のカラーを強く出しすぎてしまったかなと反省しております。

■タイトル
国内最大級ゲーム攻略メディアを支えるアーキテクチャ

■セッション内容
弊社 GameWith では主にスマートフォンゲームの攻略メディアを事業として展開しつつ、その他にもSNSやネイティブアプリなど様々な機能開発を行っています。
バックエンドは PHP、インフラ環境は AWS を利用し、国内最大級のゲーム攻略メディアに成長してきました。
成長の過程で、どのように負荷を捌く工夫をこらしてきたかという話を中心に、メディアにも波及するゲームイベント開始時のスパイクなど事業特性上の課題を、どのようなアーキテクチャで乗り切ってきたか解説します。

ちなみに、実行委員長の赤瀬さんもこのようにツイートをしている通り、今年の PHP カンファレンス福岡への登壇枠の応募が例年よりかなり多かったようです。

これはあくまで推測ですが、PHPerKaigi 2018 の開催タイミングがちょうど PHP カンファレンス福岡の登壇枠の応募期間中ということも関係していたかもしれません。

PHPerKaigi の閉会式でも、ぜひ応募してみましょうという流れがあったように記憶しています。

ちなみに、弊社は PHPerKaigi 2018 への協賛を行いました。(宣伝!)

tech.gamewith.co.jp

リジェクトコンの開催

上記のような背景もあり、メルカリさんと LINE Fukuoka さんの共同開催でリジェクトコンを行うという話をお聞きしていました。

リジェクトコンとは「本編でリジェクト(不採択)された人やテーマが集うカンファレンス」のことで、YAPC::Asia や iOSDC でも過去に開催されたことがあります。

さて、私は当初考えていた内容について話すか、それとも別のテーマに切り替えるか悩んでいました。

というのも、もともとは 30 分か 45 分の枠で話すつもりだったのですが、リジェクトコンは 20 分の固定枠となっていました。

削って話すこともできたといえばできたのですが、それよりも最近自分の中でホットな「エンジニア採用」と「技術広報」というトピックについて話しておきたいという気持ちが強くなり、最終的にはテーマを変えて資料を作り始めました。

ちなみに、登壇するということで今回の渡航費用+宿泊費用はすべて会社で負担してくれています。

f:id:serimaryo:20180615184509j:plainf:id:serimaryo:20180615185648j:plain
LINE Fukuoka さんのオフィス風景

f:id:serimaryo:20180616153720j:plain

エンジニア採用と PHP

会場は LINE Fukuoka さんにより自社のカフェスペースを提供していただいたのですが、まさかの 3 トラック同一空間同時進行という未曾有の事態が発生しました!

仕切りもなく、各々が地声で発表するというスタイルでした😁 おかげで、コール・アンド・レスポンスが発生したり、緩やかに楽しい雰囲気で進行していきました。

私は、「エンジニア採用と PHP」というタイトルで発表しました。

スライドだけだとうまく伝わる自信がないので、下記の補足も是非お読みいただけると幸いです。

GameWith のエンジニア組織の状況について

弊社 GameWith は 2013 年 6 月に創業し、2017 年 6 月に東証マザーズに上場しました。

創業から約 4 年間で上場できたのは、ユーザさんに毎日使ってもらえているからということは他ならないのですが、エンジニア組織については事業規模の割には小さく保ってきていました。

私が入社した 2017 年 3 月時点でエンジニアは 12 名でしたが、上場後半年ほどが経過した 2017 年の後半以降、初期のタイミングで入社していたエンジニアが立て続けに退職していくという時期がありました。

会社として良くも悪くもフェーズが変わるタイミングだと個人的には感じていました。

スライドにもありますが、ちょうどその頃から私が技術広報として活動を始めたり、エンジニア採用について力を入れ始めたところでした。

この間ももちろん事業成長のためにサービス改善を行っていく必要があったのですが、今後の事業展開を見据えるとどうしてもエンジニアが不足しており、エンジニア組織の拡大に会社としてフォーカスしていました。

PHP Way について

スライドの中で「PHP Way」について触れています。

弊社がちょうど上記のような組織課題を抱えているときに「PHP Way」に参加しました。

devblog.thebase.in

登壇された企業さんと同じく弊社も PHP を使ったプロダクトを有していて、各企業さんがどのようにそれらと向き合っているのかを知れたことはとても参考になりましたし、勇気づけられる場面も多々ありました。

それが、以下の技術選択の話に繋がります。

技術選択の言語化

技術広報がきっかけで、様々な技術カンファレンスへのスポンサードを行ってきました。

どのカンファレンスにスポンサードを行うかを考えるときに、当然自社の技術について考えなければなりません。

技術広報としては、マーケティング的な観点から「技術的にどの部分に光を当てると興味を持っていただけるか」ということも考える必要がありますが、手段と目的を履き違えてはいけません。

(もちろん、エンジニア採用を目的とした技術選択がされる場合もあるとは思いますが、当時の弊社にはそういう考え方は不要と考えていました。)

そこで、それまで特に言語化されていなかった技術選択について、当時のメンバーと議論をするためのベースの資料を作成しました。

それが、スライドに出てくる「技術選択について(草案)」というドキュメントです。

この草案をベースに議論している中で

「いろいろ大変だから変えられないよね」で止まるより「じゃあどうしたらもっとよくできるか」が腕の見せ所

という言葉を発したエンジニアがおり、たいへん共感しましたし、同僚として勇気をもらいました。

どのように候補者に選ばれるか

スライドの中で「興味を持ってもらうきっかけ」について下記を挙げています。

  • 事業(サービス)内容
  • 技術スタック
  • 同僚・経営陣
  • 労働環境、福利厚生
  • 評価制度・報酬

興味を持ってもらう最初のきっかけは極端な話、なんでも良いと思います。

ただし、入社されてからのことを考えると、それぞれの満足度(インタレスト)がバランス良い状態だとより健全な状態かなと考えています。

例えばの話ですが「労働環境、福利厚生」だけに惹かれて入社して場合、中長期的には幸福度という観点では低くなってしまうのではないかという懸念があります。

今回のセッションでは、「技術スタック」のみにフォーカスしてお話しましたが、本来はもっと総合的に考える必要があると考えています。

まとめ

ご存知の通り、エンジニアは超が付くほどの売り手市場が続いており、厳しい市場環境の中でどう採用で勝っていくかは各社さん悩んでいることかと思います。

細かな施策はいろいろとあるとは思うのですが、会社としてエンジニアの成長をサポートする文化や仕組みを持っていないと今後緩やかに厳しい状態になっていってしまうよね、という話をこのセッションを通してお伝えできればと思いました。

PHP を使っているから云々という話ではないのですが、割と汎用的なサーバサイド言語としての位置付けである PHP を使っている企業だからこそ、使用している技術スタックに対してより意識的になる必要がある、というのが私の考えです。

技術広報というトピックに飛んだりしましたが、最終的にたどり着きたかった結論はここです🙏

そして、GameWith としてもそこにコミットしていく決意表明のつもりでもありました。

最後に

GameWith では UI/UX デザイナー、エンジニア(サーバサイド、フロントエンド、iOS、Android、DevOps、QA)を募集しています。ゲームが好きな方歓迎です!

ご興味のある方は、Twitter の DM でも、Wantedly でもよいので是非お気軽にお声がけください。エンジニアリング、チーム開発について語りましょう🐶

www.wantedly.com

recruit.gamewith.co.jp

Desk with GameWith!

5月に入社したJustin(ジャスティン)と申します。入ってすぐ皆さんの机の環境が気になったので軽く発表したいと思います!

個性を大事にするGameWithエンジニアチームではいろんなPC環境があって皆さんそれぞれです。撮影した時も「僕もこういうふうにできたらいいな」と思ったことので、読者の参考になればと思います。

では紹介します!

Desk One

f:id:gamewith-tech:20180528163201j:plain まずはこちら。 トラックボールを使っていて、画面の高さにこだわりがあってモニタ台を最近買ったばかりのバックエンドマスターです。

f:id:gamewith-tech:20180528163244j:plain ご覧の通り、効果的な環境です。

f:id:gamewith-tech:20180528163350j:plain そしてキーボードチェックです。「60%」というユニークで珍しい機械式キーボード(通常のキーボードの60%サイズ)。

Desk Two

f:id:xxjeep:20180601145542p:plain 次はフロントエンドを主に担当しているお隣の大変お世話になっているエンジニアです。

f:id:gamewith-tech:20180528163926j:plain あれ?目の前にあるのは5台ものゲーム専用スマホらしいです!そしてなんと一本の充電ケーブルでチャージしています!

キーボードチェック入ります。 f:id:gamewith-tech:20180528165814j:plain 十年近く前のキーボードらしい!

Desk Three

f:id:gamewith-tech:20180530172655j:plain マウスをチャージしていて作業できないデザイナーさん。

f:id:gamewith-tech:20180530172906j:plain 彼は学習が早く、みたところデザイン思考についての書籍たくさん読んでいるようです。

f:id:gamewith-tech:20180530173023j:plain 最後にキーボードチェック。前の方のモデルの最新版ですね。

Desk Four

次はフロントエンドの先輩です。 f:id:gamewith-tech:20180530173222j:plain ベーシックなセットアップですが、アクセサリーがありますね。

f:id:gamewith-tech:20180530173355j:plain モニタの前に可愛いウォーターボトルとカレンダー。モニタはあまり使わないそうです。

f:id:gamewith-tech:20180530173430j:plain 可愛いものいっぱい!

Desk Five

次は現在唯一のアンドロイドエンジニア。 f:id:gamewith-tech:20180530174018j:plain

思った通り端末だらけで作業しているみたいです。 f:id:gamewith-tech:20180530174116j:plain

キーボードチェックです。日本語版を使っていました!サービス開発部の20人中4人しか日本語版キーボードを使っていないみたいなので、実は貴重です。 彼に聞いてみたところ「日本人ですから」という答えでした。(笑) f:id:gamewith-tech:20180530174227j:plain

Desk Six

そして自分です。 f:id:gamewith-tech:20180530174913j:plain モニタを縦にすると2つの横幅フルのブラウザが入るので使っています。

f:id:gamewith-tech:20180530174734j:plain

見づらいのですがパソコンの横にフラッシュカードをいつも置いています。日本語が得意ではないので、知らない言葉にあたったらカードを作るようにしています。今日のワードは「即座」。

日本語は難しいですが開発部では外国の方もいて親切にやりとりしていて毎日ありがたい気持ちでいっぱいです!

f:id:gamewith-tech:20180530175555j:plain キーボードチェックです。特にキーボードにはこだわりがあるので自作です。

Desk Seven

次はディレクター/芸人「けんしろー」です。よろしければTwitterでフォローしてください!

twitter.com

f:id:xxjeep:20180605110415j:plain うまい棒と水が大好きなようですね。

f:id:xxjeep:20180605110543j:plain どこでも購入できるキーボードですね。今までこだわりなさそうなので周りの影響を受けてもらって次回もっとオタクぽくしましょう!(笑)

Desk Eight

いよいよ最後の机です。先週末48時間の開発を趣味でしていたフロントエンドとバックエンド両方できるエンジニアです。

f:id:gamewith-tech:20180530183009j:plain 3つの画面が見えますが実際右側は繋いでないそうです。横の人のものだそうです(笑)。

f:id:gamewith-tech:20180530183207j:plain カバンがモニタの前においてありますが、このままで作業しているそうです。聞いたところ「画面の半分しかみてない」と言われました。

僕は邪魔があるとすぐ集中できなくなるので、そういうことができるって羨ましいです!

始まった、、

撮影の途中で効果的な周辺機器について盛り上がったデザイナーの二人。写真の右にあるのと同じ左手用キーボードを検討中です。 f:id:xxjeep:20180601145017j:plain

撮影の後、開発環境についていろいろ話ができて嬉しかったです。

そういう話題になって会社の雰囲気は大満足。もちろん作業自体は大変なのですが楽しんだり集中したりできる環境っていいですねぇ。

撮影させていただきありがとうございます!

社内勉強会を通して、技術力の底上げとチームビルディングを行ったお話

普段は iOS アプリの開発を行っている basi です。今回は社内勉強会についてのお話になります。

問題提起

弊社ではコードレビューの文化があるのですが、人数も増えてきてきたこともあり、普段触っていないチームのコードをレビューするようになってきました。

そうするとコードを読むのに時間がかかるため

  • レビューイの待ち時間が増える
  • レビュアーのレビュー時間が増える

といった問題が発生するようになりました。

これを解決するために、チーム内でレビューを完結する方針を採用することになりました。

ここでレビュアーになるには技術力だけではなく、マインド面の醸成も必要だという話になり、それらのフォローアップの意味を含めて社内勉強会制度を立ち上げました。

社内勉強会制度とは

ルール

  • 輪講形式
  • 週に1回程度実施
  • 発表者と議事録当番を週替りでで行う
  • 週に1~2時間程度の業務時間を使える
  • 月に1回程度打ち上げを行える予算が使える
  • slack にチャンネルを作成する

リーダブルコード勉強会の実施

今回は題材としてリーダブルコードを選びました。選定基準は、

  • 専門性が無いため、全員が参加できる
  • レビューするときの基本的な観点がまとまっている

以上の通りです。

また今回はフォローアップが主でもあるため、

  • コードレビューで困っている事を共有していただき、議論する

ことにしました。

実際に始まってみると勉強会の内容だけではなく、まとめ方の指摘や発表の仕方の指摘まで活発な議論がおきました。

同じ本を読んだとしても異なる視点からの意見が出てきて自分自身も考えさせられる良い経験になりました。

また、回をますごとに議事録の精度や質問も具体的になって洗練されていくのが目に見えて分かりました!

実際のレビューをされている場面でも、今まで疑問に思わなかったところに疑問を持たれるようになったり、PR上で意見を交わされるようになりました。

そして、ほぼ毎週リーダブルコード勉強会の開催を実施してきましたが、つい先日最終回を迎えました。

最終回は「振り返り+打ち上げ」ということで軽食をあらかじめ用意して、ざっくばらんに全14回をメンバーと振り返りました。

f:id:serimaryo:20180511185802j:plainf:id:serimaryo:20180511185832j:plain
f:id:serimaryo:20180511185919j:plainf:id:serimaryo:20180511190030j:plain

会の前半は、真面目に振り返りを行いました。

途中から入ったメンバも積極的にリーダブルコード勉強会に参加してくれたおかげで、より新たな視点が加わったという意見が出たり、普段直接仕事で関わらないメンバと横のつながりができてよかったという話もありました。

f:id:serimaryo:20180511191811j:plainf:id:serimaryo:20180511192105j:plainf:id:serimaryo:20180511192132j:plain

会の後半では軽食(という名のジャンクフード)が振る舞われ、よりカジュアルな雰囲気でざっくばらんに意見が飛び交いました。

f:id:serimaryo:20180511200658j:plainf:id:serimaryo:20180511200703j:plainf:id:serimaryo:20180511200736j:plain

(思いのほか、発注しすぎた模様です)

f:id:serimaryo:20180511200748j:plainf:id:serimaryo:20180511200855j:plainf:id:serimaryo:20180511200922j:plain

最終的に会のメンバでは食べ切れず、他の部署の方にも食べてもらうというイベントが発生しました。

技術力の底上げを行いつつ、文化の醸成という意味でチームビルディングも兼ねることができたので、良い取り組みだったと思います。

今後もテーマを変えたりしながら、継続的にこのような形の勉強会を行っていきたいです。

最後に

弊社での社内勉強会についてお話しました。

今回はチーム内レビューを実現するための手段として勉強会を実施しましたが、想定以上の効果があったと実感しています。

もしまだ社内勉強会が実施されてないのであれば、数人の同僚や仲間を捕まえて1度やってみるのはいかがでしょうか!

GameWith の仲間になっていただける方は、上記の社内勉強会制度を使えますので是非ご応募をお待ちしております!

recruit.gamewith.co.jp

GameWith もくもく会 #5 を開催しました

こんにちは!エンジニア 兼 技術広報の @serima です。

5 月 24日 (木) に GameWith 主催で第 5 回目のもくもく会を開催しました!

先月、今月とエンジニアが続々と入社してきてくれたのですが、新しく入ったエンジニアも 4 名ほどもくもく会に一緒に参加してくれました。

外部のエンジニアの方と接する機会もなかなかないので、こういった機会に積極的に参加してきていただけるのは、個人的にはありがたい限りです。

今回は外部の参加者の方 6 名にお越しいただきました。

f:id:serimaryo:20180524192144j:plain

おかげで席がすべて埋まりました!

続きを読む

GitHub Issue Template が公式で複数対応したので、早速利用してみた

こんにちは。 エンジニア兼技術広報の @serima です。(毎度おなじみですね)

先日、GitHub Issue Template がアップデートされました。

blog.github.com

今回は GameWith で利用しているリポジトリに適用して使い始めてみたので、軽くレポートしてみたいと思います。

続きを読む

GameWithマイニング部でマイニング用PCの組み立てて掘れるまでやってみた

こんにちは!GameWithでUI/UXのデザイナーとして務めさせて頂いてます、xNEOxGENESISx こと、ナ・ヨハンと申します!

2月から弊社では「ウィズカツ」と言うGameWithの部活動制度が開始されました。

部活の中には、アナログゲーム部、メディア部、映画部、漫画部など様々な部活が生まれてる中、僕は「マイニング部」のメンバーとして参加してます。

実際にマイニングをするためのマシーンを用意し、組み立てて、掘れるまでの一部始終をざっくりとシェアしたいと思います!

f:id:xneoxgenesisx:20180509163221j:plain
【祝】GameWith マイニング部 集合写真

続きを読む