ネイティブエンジニアが半年間Webエンジニアとして働いてきた話

eureka, Inc.
Eureka Engineering
Published in
8 min readDec 11, 2016

この記事はEureka Advent Calendar 2016 11日目の記事です。
10日目は梶原さんのエウレカが目指す“モダンな情シス”とは?でした。

はじめに

こんにちは! 最近事業部を異動して、メイン業務がAndroid開発からサーバーサイド開発に変わった二川です。


さて、今回はAndroidアプリの開発経験しかなかった私が異動をきっかけにWebエンジニアとして働くようになった半年間でどんなことをやってきたのかを紹介するとともに、エウレカがエンジニアにとってスキルアップしやすい環境であるということを少しでもお伝えできればと思っています!

Webエンジニアとしての業務スタートと技術スタックの変化

image_01

エウレカには現在2つの自社開発プロダクトがあります。
カップル向けのコミュニケーションアプリ「Couples」はAndroidとiOSのネイティブアプリのみ提供しているプロダクト、恋愛・婚活マッチングサービス「Pairs」はAndroidとiOSのネイティブアプリに加えて、Web版も提供しているプロダクトです。


そのためCouples事業部はネイティブエンジニア多め、Pairs事業部はサーバーサイドエンジニア多めといったメンバー構成になっています。Pairs事業部に異動し、サーバーサイドエンジニアとしての業務が始まるわけですが、Android開発の経験しか無かったので正直何もわかりません。新卒1年目のWebエンジニアの気持ちです。


異動後の半年間でどれぐらい新しいことをやっていたのかを表すために、異動前後で少しでも扱った技術について書き出してみました。
(習熟度やカテゴリなどは無視して、業務で必要だったものを書き出しています)

Before

After(Beforeから追加されたもののみ)

技術として一覧で書き出してみると、増えたと言ってもこんなもんかと自分でも感じていますが、実際はWebアプリケーション開発の基本も分かっていなかったので、最初はChromeでJSのブレイクポイントが貼れることすらわからずalert出しまくっていましたw

何をやってきたのか

image_02

業務を通じて様々な技術を扱うことができたわけですが、実際にどんなことをやってきたのか紹介します。

業務でやってきたこと

Pairs事業部には複数のチームが存在しますが、私はMonetizationというチームに所属することになりました。チームの分け方はKPIにもとづいて考えられていて、名前からも予想できる通りMonetizationチームでは売上をどうやってあげるかという部分にフォーカスしているチームです。


一言に売上と言っても色々な要素に分解できますが、一般的にはアクティブユーザー数×平均単価などで表されると思います。どちらかと言えば平均単価を上げる方の施策を実施していくのが私が所属したチームです。もちろん平均単価についてもさらに分解していくことが可能だと思いますが、サービスや会社ごとに分解の方法は様々あるのではないでしょうか。


平均単価を上げるための施策として実際に開発した機能の中に、決済詳細確認画面でおすすめのプランを表示するというものがありました。ECサイトや小売店などで見かける「レジ前コンテンツ」と呼ばれる施策のひとつです。Webフロントエンドの開発がメインの機能で、AndroidやiOSのWebViewでも動かす必要があり結構苦労しました。


開発が完了してリリースしたあとも自分たちでSQLを書いてre:dashを用意したり、BigQueryにためているデータから必要なデータを抽出したりして、分析部分もディレクターと一緒にやっています。


他にもWebフロントエンドの開発でやってきた中でも一番記憶に残っているのがFacebookPixelを埋め込む開発です。


FacebookPixel

Facebookピクセルとは、広告キャンペーンのターゲット層の測定、最適化、構築を可能にする、ウェブサイト用のJavaScriptコードです。

PairsはSPAで実装されているのですが、広告タグとの相性が良くないのかなかなか正しい計測を行うことができませんでした。初めてのWebフロントエンドでめちゃくちゃハマってしまったのでJSが苦手になりかけたのをよく覚えていますし、Android開発をしていた時に端末やバージョンの違いでAndroid開発つらいとか言ってて本当にすまんかったという気持ちになりました。

業務以外でやってきたこと

業務でやってるだけではなかなか理解も追いつかなかったのが正直なところです。
業務時間外でも下記のようなことをやったりしていました。
(このあたりはこれからgolangやAngularJSを始める人にとって参考になるのでは!)

本の多くはエウレカ文庫にあるものを借りて読んでいました。


エウレカ文庫とはエウレカ従業員のスキルアップを応援するために図書館のように利用できる参考書籍群で、会社の費用でまかなわれており、ほしい図書をリクエストして購入してもらうこともできます。最近も「ゼロから作るDeep Learning―Pythonで学ぶディープラーニングの理論と実装」をリクエストして買ってもらいました。


エウレカ文庫の他にもエンジニア向けの福利厚生として下記のようなものがあります。

  • 海外カンファレンス参加費用負担(往復交通費やホテル代も会社もち)
  • スペック選べる制(PC、ディスプレイ、キーボード等)
  • 高級チェア支給(オカムラのシルフィ)

エンジニア向け以外にも「エウレカにいるメンバーにも様々な生き方、価値感、状況がある中で、お互いを認めあい、高め合えるような環境を作りたい」という思いのもと作られた baniera という福利厚生プログラムがあるのでぜひご覧ください。

おわりに

ネイティブエンジニアがWebエンジニアとして働いてきた半年間を簡単ではありますがまとめてみました。自分で希望していたとはいえ、別領域のことを業務でやることには不安もありました。


しかし周りのエンジニアのサポートもたくさんありましたし、あとは自分のやる気さえあればなんとかなるんだなーと感じています。


また、今回の異動にともなってこれまでとは違う領域の開発を業務でやるようになった背景として、エウレカが全エンジニアのハイブリッド化を推奨していることも関係しています。ハイブリッドエンジニアというのは、サーバーサイド、Webのフロントエンド、iOS、Androidを全部ひとりでできるエンジニア。つまり、アプリケーション開発を全部ひとりで担えるエンジニアと定義しています。

hybrid_engineer

ひとつの施策に対してiOS、Android、Web、場合によってはWebとは別にサーバサイド担当、と3、4人エンジニアがいる状態では、開発を問題なく進めるためのコミュニケーション量が多くなってしまいます。ここを一元化することで効率の良さを追求したいという思いから全エンジニアのハイブリッド化を推奨しています。


私自身はiOSの経験がないので、ハイブリッドエンジニアになるためにも次はiOSをやりたい!と言ってみようと思います。

明日は田野さんのgo vetを知るです。僕の隣の席でいつもGoについて教えてくれる先輩なので、どんな記事を書いてくれるのか楽しみです!

--

--

eureka, Inc.
Eureka Engineering

Learn more about how Eureka technology and engineering