Septeni Engineer's Blog

セプテーニエンジニアが綴る技術ブログ

Eコマースサイトを作るチーム研修を受けました

はじめに

こんにちは、2017年BNの張です。

四月からセプテーニ・オリジナルに入社しました。

入社してから半年も経ち、毎日充実した研修生活を送っています。

色々な研修がありましたが、その中でも2ヶ月で行ったチーム開発について書きたいと思います。

チームメンバーは新卒3名、それぞれに先輩のメンターがついてPOも別でいます。

開発内容 - Eコマースサイトを作る

チーム開発の課題は、Eコマースサイトを作ることでした。あらかじめ最低限の要求(ストーリー)が用意されていましたが、フレームワークアーキテクチャなど、どのように開発を進めるのかは全部自分たちで決めました。

目標は「2ヶ月でとにかく動くものを作る」でした。

最初心配していたこ

  • Scalaの研修が終わったばかりなのに、ちゃんとプロジェクトでScalaを書けるのかが心配でした。

  • PlayFrameworkの使い方がわかりませんでした(そもそもフレームワークに触れたことがほとんどない)。

  • 開発の経験がないので、全く土台のない状態で一からどうプロジェクトを始めればよいのかが想像できませんでした。

  • チームワークなので、うまく進めるのか、自分がやっている作業が時間内に終わらせることができるかどうかが心配でした。

開発準備

  • 開発に入る前

PlayFrameworkの勉強を一週間かけてやりました。主にDocumentを読みながら、サンプルコードを読んで、手を使って実際に動けるものを作ってみました。

BootstrapのDocumentも読んで、Viewをどうやって作っていくかを学びました。

  • 全体的なプランニング

三人で初めてのチームミーティングを開きました。

やり方はほとんど経験の一番ある人が決めてくれました。(PlayFrameworkを使うや、Viewの方はBootStrapを使うなど)。POと定期的に相談することで、アドバイスなどをもらいました。

開発の流れ

  • 設計

  • チケットの追加:ストーリを分析し、チケットを追加し、サブタスクを作りました。

  • 画面の設計:実際にどんな画面を作っていくのを決めます。紙に書いて、POにみてもらって確認してもいました。

  • データーベースの設計:テーブルを全部羅列し、テーブルの内容まで決めました。

  • 見積もり:一つ一つのチケットにどのくらい時間がかかるのかを見積もり、プロジェクト完了までにかかる時間を予測して計画を立てました (全てやると8月21日に終わり、省エネプランなら8月14日に終わる予定でした。予定通りでしたらちょうど8月中旬に終わりそうでした)。

  • スプリント決めとタスクの振り分け

タスクの重さを整理してから、スプリントも決めました。今回のスプリントはほとんど一週間を1イテレーションとしました。(コーディングとレビュー、レビュー修正の時間も含まれてます)

一つのスプリントが終わり、次に入る前にミーティングをし、振り分けをします。振り分けは、機能や内容に合わせてタスクを振り分けていきます。

  • コーディング開始

  • 最初の作業:自分は最初にViewの部分を触りました。BootStrapのDocumentを読みながら、最初はサイトのヘッダーを作りました。しかし、それはViewの部分だけで、実際にデーターベースコントローラの部分は触っていません。

  • 未経験の作業に入る:一つの機能を全部やらないとこの研修の意味もないと思い、商品部分の機能をやってみました。まずは商品の登録機能でした。まずPlayFrameworkのサンプルコードを読んで実際に書いてみることから始めました。動くまでは色々なエラーが出てきて、最初はどこから手をつけていけばよいのかわかりませんでした。メンターさんに助けてもらい、エラーの原因を一緒に探し出し、直しました。そのあとは商品の編集、削除など、それに商品カテゴリーに関する機能も実装しました。作業を進めるにつれてだんだんと理解が深まり、より早く実装ができるようになりました。自信がつき、不安が少し消えました。それからは新しいスプリントに入り、自分は商品名とカテゴリーで商品を検索する機能の実装をしました。そこまで割と順調でした。

  • 二人のチームになった:8月中旬にメンバーの一人が先に配属され、残った一つのスプリントは二人でやることになりました。リーダーが抜けてしまったので、また不安になりました。残った機能は主にメッセージ機能と、購入する時にポイントを使用する機能でした。自分はメッセージ機能をやりました。メッセージはアプリケーション内で完結する機能だったので、これまでに得た知識を生かすことで案外早く実装を終えることができました。そのあとは色々バグを探し出し、直したりバックログのチケットをやりました。最後の発表は順調でした。

躓いたこ

  • Documentを読んでも実際に書かないとわからないことが多かったです。

  • チケットのやり方のイメージがなかなかつかなかったです。

  • パラメータの数が多くて、途中書き忘れがちで、エラーが出てきます。

  • エラー処理の種類が多くて、どのようにViewにうまく表示させるのに工夫しました。

どのように解決したのか

自分の場合、要するには勉強すること、サンプルコード読むこと、自分で調べること、人に聞くことです。うまくやっていくためには勉強することが必要で、勉強する方法も重要です。時間が少ないため、サンプルコード読むのが一番早いと思います。サンプルコードを読み、真似しながらやっていくと割とスムーズでした。もちろんそのあと、なぜそうなるのかを説明できるように勉強する必要もあります。エラーが出る時は、直接に聞くと早いと思いましたので、メンターさんにエラーの解決法を教えてもらいました。結果、自分もエラーを解決することができるようになりました。

開発で学んだこと

  • やる前に設計をちゃんとやる:今回の開発でスムーズに進めることができたのは、きちんと設計を行ってからコーディングに入ったおかげだと思います。

  • プログラミングスキル:学んだScalaの知識は応用できてよかったと思います。それに、昔はコードの書き方や命名規則など全然気にしていなかったのですが、今回のチーム開発を通し、「分かりやすいコードを書く」を意識しながら書きました。これから、綺麗なコードが書けるように頑張っていきたいと思います。

  • 他人の力を借りること:時間は有限です。今回は他人に聞かずに長時間自分で調べたりして、失敗してしまう経験がありました。もちろん自分が考えて調べるのが非常に重要ですが、時間を浪費するより先輩に聞いた方がいいと思います。

感想

大変な二ヶ月でしたが、貴重な経験をすることができて本当によかったと思います。

未経験の作業ですが、なんとか勉強してから完成できましたので、少しでも達成感を感じました。

確かにコミュニケーション不足やわかっていないことを共有できていなかったという色々な問題点もありましたが、今後の作業で注意できると思います。今回の開発から学んだこと、少しでも身につけたスキルなど、今後の開発で活用できればと思います。

新人研修を終えた新人が研修について書きました

みなさんこんにちは。今年の4月に入社した米田です。

今回は私が入社してからつい最近終えたばかりの新人研修についての紹介と感想を投稿したいと思います。弊社に新卒入社を考えている方は読んで参考にして頂けると幸いです。 研修について紹介する前に、初めましての軽い自己紹介をしたいと思います。

自己紹介

  • 氏名:米田 暦紀(ヨネダ トシキ)

  • 大学:立命館大学情報理工学部

  • 入社直後の技術レベル

    • Java, C, C++,を大学で成績が中間レベル(課題の基本問題はやるけど応用は頑張った形跡だけ見せる(笑))
    • htmlは見てなんとなくやりたいことがわかる
    • フレームワーク経験もほぼなし, チーム開発経験なし

ざっとこんな感じです。はい、わりかし素人です(笑)。正直エンジニアになるのも迷うレベルでした。情報系の学部に入学したものの、最初のC言語の講義で挫折。ポインタでさえ意味不明なのにポインタのポインタ・・・・・はい? って感じでしたね。あの時は本当にきつかった。そんな私ですがなぜか成績も少しずつ上がり、無事卒業し、紆余曲折あって、このセプテーニ・オリジナルに入社しました。私の簡単な自己紹介はこの辺にして弊社の新人研修について書いていここうと思います。

新人研修について

弊社の研修の目標が『早期戦力化』のため、実務で必要なスキルを身につける為に色々な研修があります。インターネットやシステムなどのWebに関わる基礎部分を理解するための研修を始め、アプリケーションに必要不可欠なデータベースについての基礎を固める研修、チーム開発で弊社が採用しているスクラムを学ぶ研修、他にも麻植さんによるScala研修、インフラ関連の研修などなど、手厚い研修があります。それらを終えた後、チームで一つのアプリケーションを作るチーム開発研修を行い新人研修を終えるというのが流れです。

ここでは最後のチーム開発研修について自分が困ったこと、学べてよかったことを書いていきたいと思います。

チーム開発研修について

先にも書きましたがこの研修ではチームで一つのアプリケーションを作成します。今回、メンバーは私を含め3人、期間が1ヶ月、お題は『要件を落とし込んだECサイトを作ること』でした。書き方が意味深ですが、要するに『自分勝手に想像でECサイトを作るのではなくちゃんと要望を聞き出し、それに沿って作り、時には自分からも提案しながら作ってください』ってことです。実務での動き方を意識した研修でもあるようです。 

ECサイトを作るにあたって

チーム開発でのことを書く前に、技術要素について紹介したいと思います。

ざっとこんな感じです。twirlはPlay Frameworkに備え付けられているテンプレートエンジンです。 読み方は色々あるようですが私はトュアル派です。

チーム開発研修 序盤

序盤はどんなECサイトを求めているのかを聞きつつ、自分たちでプログラムの構成を考えていきました。しかしここで早くも問題がありました。Play Framework知らない問題。メンバー全員ががPlay Frameworkを使ったことがなかったんです。なので要望を聞き出しつつ、プログラム構成を考えつつ、Playの勉強(ドキュメント読んでサンプルコード書きまくる)、このサイクルを2週間弱こなしました(笑)。そのおかげで最初はなんで動いているのかわからなかった状態から、なんとか動かせれるものを作れそうかな?ぐらいまでは持っていきました。

中盤

やっと開発をスタートし、順調に行くと思いきやまた問題が発生しました。書きたいことが書けない問題。Scala研修(麻植さんの講義)をこなしたにも関わらず少し複雑なコードになった途端、うまくかけない、エラー祭りでした。研修で結構な難しさの課題を解いてきたと思っていただけに、これはショックでした。原因は完全に実力不足。研修で学んだことはわかっているけど使いこなすレベルになってはないことを痛感しました。データベースのセッションは本当に時間かかった。この時は研修の時に書きまくったノートとScalaコップ本、グーグル先生をフル活用してなんとかメンバーに迷惑をかけないよう必死でした(笑)。そんなこんなで頑張ってさらに2週間が経った頃にメンバーの1人が早抜けしました(優秀すぎた)。

終盤

メンバーが2人になってタスクもコードの量も増えました。ですが自分がコードを書く範囲が多くなることで機能の1つを丸々担当することもあり、出来上がった時はめちゃくちゃ嬉しい。これがモチベーションになりストレスを感じることはありませんでした。結果、ECサイトが完成したのは始めてから2ヶ月弱かかりました。期限はメンバーが減ったこともあり伸ばしてもらいました。終わった時は素直に嬉しかったです。疲れてないと思っていたんですけどその日はめっちゃ寝ました(笑)。

研修を終えての感想と意気込み

まず学べてよかったところが多かったこと。Play Frameworkについてじっくりと知ることができたし、研修で習ってきたこと全てを使ったので学んできたことが一本につながった感じでした。チームで動くことでの立ち回り方も知れたし、自分以外のコードを責任を持って見ることも少なかったので勉強になりました。何より自分がどの程度の実力でどれくらいチームに貢献できるのかがわかったのが大きいと感じています。やはり自分の実力を正しく認識できないと事故の元になるのことを学んだので(笑)。あと新人研修を終えて、最初の自分から比べて明らかに成長していると実感して嬉しいです。 これからの意気込みとして、新人研修で学んだ数々の知識、歯がゆい思い、コードを書く楽しさを初心として忘れずにこれからも頑張ってエンジニアしていきたいと思う次第です。これからも米田をよろしくお願いします。

新卒研修を受けて

こんにちは、新卒の永倉です。
今回はセプテーニ・オリジナルの新卒研修の内容を個人の感想も含めていくつか紹介したいと思います。

Scala研修

Scala研修は外部講師として麻植さん(@OE_uia)が担当してくださいました。

私の研修が始まる前のScalaに関する知識は、
Scalaスケーラブルプログラミング第3版(以下コップ本と省略する)をある程度読んだことがあるが、
ところどころ読み飛ばしていたり、理解できていない部分があるぐらいでした。

研修内容

具体的な研修は以下のような形で行われました。

  • コップ本に沿って講義が行われる

    講義中には、適宜追加の説明や、資料の紹介、
    REPLを使って実際にコードを実行しながら動作を確認することもありました。

  • 講義の後に、演習課題に取り組み、講義で学んだことを確認する。

    最初の方の演習課題は、大して時間もかからずに、解けるものが多かったです。
    ただ研修の後半の方の課題は型クラスについてなどそれなりに時間のかかるものもありました。

  • 課題を提出しレビューしていただく

  • 講義中や課題提出時に質問をさせていただく

    講義、演習共にScalaの知識をつけるための助けになりましたが、
    質問をたくさんできたのが個人的には最も大きな収穫だったと思っています。
    質問への返答はもちろんのこと、
    質問する内容を整理している間に自分の理解が明確になったりと得るものが多かったです。

感想

研修によって自分でコップ本を読んでいる際には、
理解が曖昧であった暗黙の型変換や変位指定アノテーションなどについて
かなり理解できるようになりました。
またコップ本に載っていないことも教えていただきました。
まだ途中までしか読めていませんが、
研修中におすすめされた「Scala関数型デザイン&プログラミング」を読む際にも
今回の研修で学んだことは助けになっています。

データベース基礎

DB自体を使ったことはありましたが、
パフォーマンスの良いSQLの書き方やトランザクション
DBMSアーキテクチャーなどはほとんど知りませんでした。

研修内容

研修では、DBMSアーキテクチャから始まり、トランザクションや実行計画などを学びました。

  • トランザクション

    トランザクション処理に求められる特性であるACID特性を学び、
    さらにトランザクションの知識を深めるために、4種類あるトランザクション分離レベルや
    「ダーティーリード」などトランザクション中に起こりうる現象についても
    MySQLで実際に試しつつ学びました。

  • SQLのパフォーマンス

    まずクエリ処理の流れについての話があり
    その中でパーサやオプティマイザの役割についての説明がされました。
    また、実行計画は統計情報を元に作られるので統計情報が更新されていないと
    適切な実行計画が作られない場合があるといった注意点の説明もありました。
    その後、サンプルのデータセットを使って実際に実行計画を読み解く演習を行いました。

感想

データベースの内部でどんなことが起きているのか全く知らなかったので勉強になりました。
データベースの知識は今後も必要になるので理解を深めていきたいです。

TDD研修

TDD研修を受ける前は、TDDに対して、
「テストを先に書く」開発手法ぐらいにしか認識していませんでした。

研修内容

研修では、まずTDDについての講義が少しあり、
そのあとに実際にペアプロで課題をTDDの形で解いていきました。
テストライブラリはSpecs2を使いました。

課題を解いていく中で、TDDのサイクル

  • 失敗するテスト書く
  • そのテストが通るように実装する
  • テストが通る状態のままリファクタリングをする

の流れを意識して進めていきました。

感想
  • テストがあるとリファクタリングをするときに安心感がある
  • 短いサイクルで進めていくのでエラーが出た時にどこが原因か特定しやすい
  • テストケースを漏れなく導出するのは難しい
  • テストコードを書くためにも知識やスキルが必要
  • 動くテストを元にしてリファクタリングをするのも学習やスキルが必要
チーム開発研修

チーム開発は同期が書いてくれると思うので短めに

私は、チーム開発はほとんど未経験でした。
これまで、チーム開発といえばアルバイト先で少しの間、
2人で開発したぐらいしか経験がありませんでした。

チーム開発研修は成功というより失敗や反省の方が大きかったです。
例をあげるとすれば以下のような点がありました。

  • チーム内での認識を合わせるのが難しい
  • チームの他の人の進捗がわかりづらい、どの程度まで進んでいるかわからないとフォローもしづらい
  • ストーリーを元に自分以外にもわかりやすいようにタスクを分けるのが難しい

実際にチームへ配属になる前に、失敗できたのはよかったかなと
思う反面、もう少しうまくできたのではないかという後悔もある結果でした。

終わりに

研修で学んだことを生かしつつ、これからも頑張りたいと思います。

2泊3日の開発合宿に行ってきました! in 湯河原

こんにちは、広幡です。
残暑が厳しい中、いかがお過ごしでしょうか?
私は引きこもってクーラーガンガンきかせてアトリエシリーズやりこんでます。

そんな中、湯河原に開発チーム20人ほどで2泊3日の開発合宿に行ってきました!
しかも平日の業務時間内で! f:id:t_hirohata:20170919203919j:plain

背景

実は今回が初めてではなく、半年前ほどにも開発合宿に行ってました。 labs.septeni.co.jp

前回の開発合宿で、

  • 参加者の満足度が高く社内交流が深まった
  • データ分析基盤作成などの現在の業務に繋がる成果が上げられた

という成果が出たので、今回は業務に関わることで開催してみよう、という背景です。

目的

今回は業務に関わることをやるという前提で、以下の目的を設定しています。

  • 挑戦
    • 集中できる環境と明確な目標の元で、通常業務を超えた成果を上げること
  • チーム内交流(開発チームは3チームに分かれてます)
    • チーム内外の人と開発し、寝食をともにすることでプロジェクト内の交流を活性化させる

宿泊先

今回の宿泊先はおんやど恵さん
開発に必須なものは完備されてて、部屋、施設、ご飯、温泉、アメニティなど、全メンバーから大好評でした! www.onyadomegumi.co.jp

チーム決め

各々やりたいことを事前に考え、似ている同士で以下のようなチームを組んで取り組みました。

  1. 画像・動画チェック
  2. リファクタ系
  3. CI環境整備
  4. フロントエンド整備
  5. Embulkのプラグイン開発
  6. ECSの勉強

スケジュール

  1. 1日目
    9:40 東京駅集合
    10:00 東京駅発(特急踊り子)
    11:14 湯河原着
    ==== 各自昼食
    12:28 バス(自分で来る人はここで集合)
    12:37 おんやど恵到着
    13:00 開発開始
    19:00 夕食

  2. 2日目
    8:00 朝食
    9:00 開発開始
    12:00 各自昼食
    13:30 中間発表
    ==== 各チーム×5分
    15:00 開発継続
    19:00 夕食

  3. 3日目
    8:00 朝食
    12:00 昼食(お弁当)
    13:30 発表開始
    ==== 各チーム×15分(発表10分+質疑応答5分)+交代時間+休憩
    15:30 結果発表(ベストスピーカーチーム投票+発表)
    15:52 おんやど恵発(バス)
    16:09 湯河原駅着(いったん解散)
    16:34 湯河原駅発(特急踊り子)
    17:46 東京着→解散!

続きを読む

新宿Geek Lounge#3 分析基盤 Meetupを開催しました

こんばんは、@kimutyamです。

弊社で開催した新宿Geek Lounge#3 分析基盤 Meetupのレポート記事です。

f:id:kimutyam:20170919202026j:plain

第1~2回とScalaネタのイベントでしたが、 今回は分析基盤をテーマにイベントを開催致しました。

20:00~20:05 オープニングトーク

弊社、河内の軽快なオープニングトークから乾杯スタート

f:id:kimutyam:20170919203105j:plain

20:05~20:25 EMBULKの歴史 過去・現在、これから

f:id:kimutyam:20170919202904j:plain

gitpitch.com

EMBULKの歴史 過去・現在、これから

はじめに、@hiroysatoさんの登壇です。
題名どおり今までのEmbulkの変遷についてお話をいただきました。
当初はEmbulkのプラグインが少なく出来ることが限定的だったそうですが、 今や200を超えるプラグインが開発されたようです。
@hiroysatoさん自身も必要に応じて、プラグインを開発されたそうです。

資料中のEmbulkプラグインのまとめEmbulk(エンバルク)組み込みプラグインの設定覚え書きは私も普段大変お世話になっているまとめです。

プラグインも資料もなければ作ってきたらしく、 大変素晴らしくEmbulk&Digdagに貢献してこられたのだと改めて感じました。

20:25~20:45 動画系メディア企業で行われているETLの実際

f:id:kimutyam:20170919205310j:plain

動画系メディア企業で行われているETLの実際

続きまして、@smdmtsさんの登壇です。

「分析基盤刷新PoC」「ETL実例紹介」「ETLでぶつかった壁」の3部構成にお話をしていただき、実践向けの内容になっていました。

冒頭のPoCではSSOT(Single source of truth)を目指して検証した結果、 分析基盤の構成にTreasure Dataが導入したそうです。
Firebase Analyticsの生ログをBigQueryで分析したところスキャン量増大問題とSQL難読問題が発生していたところをFirebase Analyticsの生ログを最終的にTreasure Dataにロードすることで解決した具体例があげられています。
その仮定で7つのEmbulkプラグインを開発したそうです。

@smdmtsさんはScalaでEmbulkプラグインを開発していて、 私個人として非常に参考にさせていただいています。

20:55~21:15 セプテーニで分析基盤(Treasure Data)を導入した話

f:id:kimutyam:20170919210116j:plain

セプテーニで分析基盤(Treasure Data)を導入した話

最後に私の登壇です。 私が日々開発しているPYXISでどのように分析基盤を構築したかを説明させていただきました。
導入背景とアーキテクチャ構成、Treasure Dataを利用して良かった点をお話しました。
アーキテクチャはよく使われているパターンかもしれませんが、 社内事情を踏まえた上で開発者とデータアナリスト(非エンジニア)との業務連携するために工夫したことを紹介しました。

※本件は後日別途ブログエントリーで補足させていただきます。このエントリーにもリンクを載せておきます。

21:20~22:00 懇親会&じゃんけん

f:id:kimutyam:20170919213308j:plain

懇親会の風景です。
@oreradioさんよりTreasure Dataグッツをいただき、じゃんけん大会をしている様子です。
ありがとうございました!!

感想

今回は私も登壇しましたが、とても楽しかったです。(小並感)
私はEmbulk/Digdag/Treasure Dataに関して歴が浅いのですが、
界隈の人たちがとにかく優しいおかげですぐに参入できました。

日々の業務でTreasure Data社からの手厚いテクニカルサポートを受けたり、
Twitterで困ったことをつぶやいたら丁寧に教えていただけたり、
普段仲良くさせていただいてる@smdmtsさんに直接聞いたり..w

ありがとうございました。
今後とも宜しくお願い致します。

Scala関西Summit2017に参加してきました!

セプテーニ・オリジナルからの参加者

f:id:takashima0411:20170909182509j:plain
弊社からの参加者
8月にジョインしたばかりの青山さんを含め、5名が弊社から参加しました!

全体の流れ

寿司

これはScala関西Summitに関係ありませんが、前日に梅田で食べたお寿司です。

f:id:takashima0411:20170908202735j:plain
寿司
f:id:takashima0411:20170908202341j:plain
とても美味しい寿司

会場

f:id:takashima0411:20170909101826j:plain
会場外観
会場の天満研修センターです。 遠くから見ても圧倒的存在感を放つ立派な会場です。

f:id:takashima0411:20170909100626j:plain
メインホール
弊社の名前が付いたメイン会場です。 少し恥ずかしいですね。

受付

f:id:takashima0411:20170909100835j:plain
受付
会場前から参加者で賑わっており、Scalaの関西での盛り上がりを感じさせます。

お昼ごはん

f:id:takashima0411:20170909131245j:plain
お好み焼き
弊社社員で天満のお好み焼き屋さんでお昼をいただきました。 この後河内さんによるこの世のものとは思えない味のたこ焼きテロがあったとかなかったとか。。。

懇親会

f:id:takashima0411:20170909202047j:plain
懇親会会場
さくらインターネット株式会社様のオフィスをお借りして懇親会が開催されました! グランフロントの高層階から見える夜景は素晴らしいうえ、料理のクオリティも素晴らしいものでした。

弊社社員のセッション

元インフラエンジニアが
Scalaを触ってつまづいたところ。

f:id:takashima0411:20170909110045j:plain
尾上さん

最近インフラエンジニアからアプリケーションエンジニアに転向した尾上さんです。 新卒社員と一緒に麻植さんからScala研修を受けた際に感じた難しさなどを語ってくれました。 インフラエンジニアとしてチームを支えてくれのと同様、これからはScalaでチームを支えてくれること間違い無しですね!

Scala の関数型プログラミングを支える技術

f:id:takashima0411:20170909115859j:plain
青山さん

8月に入社されたばかりの青山さんです。 青山さんの関数型プログラミング力には弊社も非常に期待しており、その知識の一端をここでは発表していただけました。

iOSエンジニアのためのScala入門

f:id:takashima0411:20170909160439j:plain
嶽さん

GANMA!でエンジニアをしている嶽さんです。 ScalaだけでなくSwiftも使いこなす嶽さんからはSwiftエンジニアが0からScalaを学ぶ際に押さえておきたいポイントを紹介していただきました。

Scala on JVM をプロファイリングするツールの紹介

f:id:takashima0411:20170909163143j:plain
河内さん

PYXISのテックリード河内さんです。 フィボナッチ数列を例にJVM上のパフォーマンスチューニングの方法を紹介していただきました。 直前にタイトル変更となるトラブルが有りましたが、さすがの内容で聴衆の評判も良かったようです!

PlayとIntelliJで学ぶデバッグ入門

f:id:takashima0411:20170909160937j:plain
PYXISの平社員です。 今回は身の回りのみなさんが意外にデバッガを使えていなかったので、デバッガの基本的な使い方と、IntellliJ上で動かした場合、sbt上で動かした場合などそれぞれのケースでデバッガをアタッチする方法を紹介しました。 発表時間45分では時間がギリギリで、サンプルもあえて手打ちしたら想定とは異なった動きをしてしまうなど練習不足が出てしまいました。

全体の感想

スタッフの皆さんに手際よくサポートしていただけたため、懇親会も含めつつがなく進行しました。 全体的に時間の余裕があり、ゆったりとお昼ごはん食べられたり移動の合間にも質問などが行なえたのはストレスフリーでした。 また、セッションの流れも良く出来ていて、AkkaStreamの話を聞きたければ重複無く順番に聞けるようによく練られていました。 後日動画公開があるとはいえ、気になるセッションを生で聞いて質問できるというのは大きいので非常に嬉しいですね。

私はScalaMatsuriには毎回参加していますが、Scala関西Summitの熱気も決してそれに負けないと感じました。

弊社からの参加者が全員登壇するというのは去年私が入社した時には考えられなかったことです。 人材が厚くなってきていることを感じますね。

人材募集中!

株式会社セプテーニ・オリジナルでは一緒に働いていただけるエンジニアを募集しています。 すでにScalaを使いこなしている方も、これからScalaに挑戦したい方もどしどしご応募ください!

第2回新宿Geek Loungeを開催しました!

2年目エンジニアの大北です。 今日は9/5に開催した弊社主催のエンジニア交流イベント、第2回新宿Geek Loungeのレポートをお送りします!

第2回目のゲストは、スターバックス社のJamie Allenさん。(※講演は通訳付きです)

Jamieさんは、スターバックス社のバックエンド開発を牽引するDirector of Engineeringであり、過去にはLightbendでSenior Directorを務めていたそうです。

Scalaエンジニア歴は9年!Effective Akkaの著者、Reactive Design Patternsの共著者でもあります。

20:00〜 Jamieさんの講演(前半)

f:id:sachipapi423:20170906013527j:plain

新宿Geek Loungeは乾杯からスタート。

ビールやワイン、ジュースなど思い思いのドリンクを取って席につきます。

f:id:sachipapi423:20170906015338j:plain

Jamieさんの講演が始まります。 スターバックス社やLightbend社での経験を話しつつ自己紹介をされるJamieさん。実はコーヒーは全く飲まないそうです(笑)

スターバックス社の開発テーマは、「ビジネス価値をもたらすこと」。今回のお話は技術力の追求とビジネス上の価値の関係性をメインにお話いただきました。

f:id:sachipapi423:20170906015853j:plain

Functional ProgramingかReactiveなのか?

Jamieさんの答えはどちらも良いところがあるので取り入れる、でした。

またAkkaを使うべきか、というテーマには、Akkaは必須ではなく、ビジネス上の価値が出せることにフォーカスすべしとの見解でした。

たとえば、1日15億件のエラー通知システムを開発した際もAkka Clusterは必要ないと判断したそうです。

20:30〜 休憩

f:id:sachipapi423:20170906013507j:plain

ここで待ちに待ったディナータイム★

見た目も素敵なお料理を美味しくいただきました!

20:45〜 Jamieさんの講演(後半)

f:id:sachipapi423:20170906013539j:plain

後半のテーマはデータについて。

スターバックスカードに70億ドルもの額がチャージされているスターバックス社は、Jamieさん曰く「銀行」

お金という点で必ず問われるデータの一貫性、また世界中に展開するサービスという点で必要となる可用性のトレードオフは、Kafka、Cassandraなどのシステムを使って実現しているそうです。

Jamieさんが今注目しているのは、Google Cloud Spannerで、データの一貫性を保ちつつスケールもできるのだとか。ただJamieさんご本人も「クレイジーなサービスだ!」(素晴らしいという意味で)とおっしゃっていました。

Google Cloud Spannerの概要はこちらが参考になると思います。 jp.techcrunch.com

Jamieさんのスライドはこちらから見れます。

www.slideshare.net

21:30〜 じゃんけん大会

f:id:sachipapi423:20170906104746j:plain

Jamieさんの講演後、サプライズでDeepLearning4j作者のAdamさんから抽選で本をいただきました。 じゃんけん大会を制した参加者の方に、Adamさんのサイン付き本が贈られました!(おめでとうございます!)

LT① 玉置さん

f:id:sachipapi423:20170906013544j:plain

FutureのExecution Contextを中心にお話していただきました。

詳細はブログでも読めるそうで、恐らくこちらの記事だと思います。

qtamaki.hatenablog.com

最後の締めは庄内弁のありがとう「もっけだの」でした!

LT② Adamさん

f:id:sachipapi423:20170906013627j:plain

そしてAdamさんのLT。

「Adamさん:日本語を勉強しています。けど英語話します」でした(笑)

テーマはDeep Learning For Enterprise、どのようなEnterprise(例えば企業なのか学校なのか)にはどのような形のDeep Learningが適切なのか、などのお話をしていただきました。

ゆっくり分かりやすく話してくださったため、通訳の方はいなかったものの「理解できた!」という声が多かったです。

スライドはこちらからご覧いただけます。

www.slideshare.net

22:00〜 お疲れ様でした!

f:id:sachipapi423:20170906015319j:plain

終始和気あいあいとした雰囲気の会場でした。参加者の方々の会話に花が咲き、イベント後も飲みに行ったとか行かないとか。

次の新宿Geek Loungeは9/19(火)

第3回のテーマはデータ分析基盤! Embulk, ETL, Treasure Dataなどについて、3人の登壇者の方にそれぞれお話いただきます。

shinjuku-geek-lounge.connpass.com

次回も美味しいご飯とお酒を用意して、セプテーニオリジナルのカフェスペースでお待ちしております!