Cybozu Inside Out | サイボウズエンジニアのブログ

 

サマーインターンシップ2017を開催します!

こんにちは、kintone開発チームの長谷川です。

今年もサイボウズではサマーインターンシップを開催します!去年好評だった3コース(Webサービス開発、UX/UIデザイナー、品質保証/セキュリティ)に加えて、今年はモバイルアプリやインフラの開発に興味のある学生向けのコースも新たに用意しました。

この夏はサイボウズでワンランク上のスキルを身に付けてもらえたらと思います。 皆さんのエントリーをお待ちしています!

サマーインターンシップ2017

募集要項

日時

  • 第1回 8月21日(月)~25日(金)
    • Site Reliability Engineeringコースは第1回目のみの開催となります
  • 第2回 9月04日(月)~08日(金)
  • 第3回 9月25日(月)~29日(金)

場所

※ Webサービス開発コースは3拠点で開催します。その他コースの東京オフィス以外での開催は応相談となります

就業時間

9:00~18:00

※ 初日は10時集合、最終日は懇親会を実施するため20時~21時頃解散となります

コース

対象

2019年4月の入社が可能な学生

募集人数

各コース1回につき5名程度

選考

書類選考、面接(Webも可)1回

待遇

日給8,000円

※ 遠方からご参加いただく方には、交通費・宿泊費を支給します

エントリー方法

こちらよりエントリーしてください

お問い合わせ

  • 人事部: 中江 麻未
  • メールアドレス: recruit@cybozu.co.jp
  • 電話番号: 03-4306-0870

Webサービス開発コース

Webサービス開発コース

概要

サイボウズが提供するWebサービスの実際のユーザーや社内での要望を元に

  • ユーザーが本当に困っているのは何なのか
  • どういった機能を提供するのが良いのか
  • その機能は他のユーザーにも広く使われるものか

といった企画段階から、その機能のプロトタイプを作成するところまでを体験していただきます。

実際にサービスを開発しているメンバーがメンターとなり、課題の設定の仕方や実装の進め方、コードやテストの書き方までを指導しながら開発を進めていきます。東京と大阪では kintone 、松山では メールワイズサイボウズOffice に関連した題材を扱います。

必要な経験/スキル

  • プログラミングの経験
  • HTML、CSS、JavaScriptの知識

あると望ましい経験/スキル

  • Webサービス開発の経験
  • Git/GitHubの使用経験

モバイルアプリ開発コース

モバイルアプリ開発コース

概要

サイボウズのモバイル製品に簡単な機能を実装していただきます。製品のソースコードに触れたり、テスト・コードレビューを通じて実際の開発現場を体験することができます。

必要な経験/スキル

  • iOS(Swift) または Android(Java)の開発経験

あると望ましい経験/スキル

  • Git/GitHubの使用経験

UX/UIデザイナーコース

UX/UIデザイナーコース

概要

サイボウズのデザイングループメンバーとともに、製品・サービスのデザイン業務に取り組んでいただきます。自由な発想を活かして新しいデザインを提案してください。

必要な経験/スキル

  • PCやスマホ向けのデザイン経験
  • ポートフォリオ

あると望ましい経験/スキル

  • ユーザーリサーチの興味、経験
  • プロトタイピングスキル
  • チャレンジ精神

品質保証/セキュリティコース

品質保証/セキュリティコース

概要

製品の品質保証業務を通してソフトウエアの品質がどのようなプロセスで確保されているのか、そもそも品質とは何かを学んでいただきます。 品質を確保するだけではなく、製品がリリースされた後、製品の品質に関する情報をどのように顧客に伝達していくのか、顧客の要望をどのように製品にフィードバックしていくのかを実体験を通して学んでいただきます。

必要な経験/スキル

あると望ましい経験/スキル

  • Webサービスのテスト経験
  • Webサービスのセキュリティテスト経験
  • Webサービスの脆弱性の攻撃方法を知っている(SQLインジェクション、XSS)

Site Reliability Engineeringコース

Site Reliability Engineeringコース

概要

SRE(Site Reliability Engineering)チームにて、インフラにかかわるソフトウェアを開発・提案していただきます。

例:

  • https://github.com/cybozu-go/cmd へのコミット
  • 現在開発中のログ転送ミドルウェアの追加開発
  • 開発環境の管理ツール
  • 障害対応内容の自動記録ツール

実際の開発内容は応募された方とメンターにて相談の上で決めることができ、メンターのサポートの元取り組むことができます。その際、SREチームの持つ環境をご活用いただけます。(開発環境・本番環境のメトリクスデータ・OSSへの知見など)AWSなどのサービスを組み合わせたシステム構築ではない形になり、実質の開発期間は3日程度になるため、開発対象は小規模のものになります。

必要な経験/スキル

  • Go言語, Python, C, C++のいずれかの言語にて、Gitを利用したツールの開発が行えること

過去に開発したソフトウェアを添えてご応募ください。(GitHubのURLなどでも可)

2016年の開催記事

 

「生産性向上」してますか?──「Cybozu Meetup #3」開催レポート

こんにちは、コネクト支援チームの風穴(かざあな)です。先日開催した「Cybozu Meetup #3 生産性向上」についてレポートします。

f:id:cybozuinsideout:20170511165859j:plain

サイボウズのミートアップ

「Cybozu Meetup」は、サイボウズのエンジニアとカジュアルに交流する場として企画、開催しているイベントシリーズです。いま流行の企業ミートアップのサイボウズ版ですね。会場はサイボウズのオフィスなので、社内の雰囲気を実際に肌で感じて頂ける機会でもあります。

開催頻度は東京オフィスで月1回、大阪オフィスで数カ月に1回程度の予定です。毎回テーマを決めていて、これまでに「フロントエンド」、「SRE」(Site Reliability Engineering)というネタで開催しました。

サイボウズの生産性向上

通算3回目となるCybozu Meetupのテーマは「生産性向上」。

2015年8月に生産性向上チームを立ち上げた宮田(@miyajan)が「すべてを自動化せよ! 〜生産性向上チームの挑戦〜」と題してトークセッションを行いました。

f:id:cybozuinsideout:20170511170013j:plain

質問&交流タイム

f:id:cybozuinsideout:20170511171011j:plain

トークセッションの後の交流タイムでは、別チームのエンジニアや一般社員も参加し、生産性向上に関する技術の話や、エンジニアの働き方の話などでも盛り上がりました。

f:id:cybozuinsideout:20170511171212j:plain

f:id:cybozuinsideout:20170511171250j:plain

サイボウズの生産性向上チームでは、一緒に生産性向上に取り組んでくれるエンジニアを絶賛、募集中です。詳しくは、以下のサイトをご覧ください。

生産性向上エンジニア──CIや自動化などの開発基盤を整備する大事なお仕事 - サイボウズ株式会社のWeb エンジニア中途の求人 - Wantedly

次回は「スクラム/アジャイル」

次回のCybozu Meetupは「スクラム/アジャイル」をテーマに開催します。開催の様子は、こちらのブログでレポートしますので、お楽しみに。

また6月には、大阪オフィスでの開催も予定しています。ご興味ある方は、connpassグループ「Cybozu Inside Out」をフォローしてくださいませ。

ではまた。

 

デザイナー初めての海外出張 in サンフランシスコ 

こんにちは!デザイナーの篠原です。 先日サンフランシスコに出張に行ってきました。わたしにとって初めての海外出張!その一部始終をレポートします。 f:id:cybozuinsideout:20170427183018j:plain

出張の目的

  • USメンバーとワークショップ
  • Adobe, HITACHI Americaへの企業訪問

サイボウズは現在「GO US!」を合言葉にUS市場の開拓にフォーカスしています。デザイングループはUS市場でローカライズされたサービスを作るためにUSメンバーと一緒にワークショップを行ったり、現地企業を訪問してネットワーク作りに力を入れています。

USメンバーとワークショップ

デザイナーの武器を使ってコミュニケーション

f:id:cybozuinsideout:20170427183023j:plain 現地のメンバーと新しいモバイルサービス&デザインを考えるワークショップを行いました。私は英語超初級者なのでジェスチャーやイラストを交えてディスカッション。言葉だとなかなか伝わらないのですがイラストなら伝わるようで、描くと場の空気が和み、新たな発言やアイデアを呼び込むきっかけとなりました。英語が苦手というデザイナーはイラスト積極的に使ってコミュニケーションしていくのが良さそうです。

TV会議で日本メンバーと密に情報共有

f:id:cybozuinsideout:20170427182905j:plain ワークショップの結果を日本の開発チームと毎日ビデオ会議で共有しました。サマータイム中で時差が16時間あるので会議時間の設定には注意が必要です。(気をつけないと真夜中に会議をするハメに…!)最初はうまく会議できるかな…?と不安でしたが、通信環境が良いので日本とサンフランシスコとの距離を感じさせないスムーズな会議をすることができました。

Adobe, HITACHI Americaへの企業訪問

Adobe

f:id:cybozuinsideout:20170427182906j:plain AdobeのユーザーリサーチマネージャーSherylさんを訪ねました。Sherylさんはデザイングループのマネージャー柴田の元上司です。

オフィスの様子はこちら(英語)
Adobe Headquarters - San Jose - Office Snapshots

サイトの画像からもわかるようにクリエイティブな刺激に満ちており、その空間にいるだけでワクワクして新しいアイデアが閃きそうなオフィスでした。至る所にソファやテーブルがあるのでちょっとしたブレストやミーティングがすぐできます。 さらにビックリなのが、オフィスの中にジムやバスケットコートがあること!ジムには本格的なフィットネスマシンが完備されていてトレーニングのクラスまで開講されていました。これなら仕事に行き詰まってもリフレッシュして仕事に戻ることができますね!

f:id:cybozuinsideout:20170427190242j:plain オフィス見学後はSherylさんとリサーチやワークショップについてのお話をしました。開発に関わるすべてのことをチーム一丸となって行うことが大事だとおっしゃっていたのが印象的でした。

HITACHI America

f:id:cybozuinsideout:20170427183008j:plain HITACHI AmericaのUser Experience Design Labにもおじゃましてきました。こちらのオフィスは社会学を参考に社内でデザインリサーチを幾度も行い作られたそうです。Meetupやパーティーができる広々としたオープンスペースは交流の場として親しまれており、月末の金曜日にはBeer Bashが開催されるそうです。

USオフィス

最後にサイボウズのUSオフィスをご紹介したいと思います。私たちのオフィスは、サンフランシスコ市内のミッション地区というところにあります。モンゴメリー駅から歩いて3分程度の場所です。ミッション地区は最近オシャレなカフェやレストラン、ブティックが増えてきている人気の町です。少し歩くとユニオンスクエアや観光客に人気の路面電車があります。 f:id:cybozuinsideout:20170428093649j:plain

オフィス内はこんな感じで、みんなで机を並べてワイワイ仕事をしています。kintoneでおなじみのキリンもいますよ。 f:id:cybozuinsideout:20170428093644j:plain f:id:cybozuinsideout:20170428093655j:plain

オフィス付近にはDAISOが!付箋やペンなどワークショップで使う道具が一式揃うので、急にブレストしたい!ワークショップしたい!となっても大丈夫です。 f:id:cybozuinsideout:20170428093638j:plain

海外で仕事がしたいデザイナー募集中!

現在デザイングループは「海外で仕事がしたい!」というデザイナー、リサーチャーを大募集中です。興味のある方ご応募お待ちしております!
デザイングループ 採用 | サイボウズ株式会社

 

「SRE」を肴にミートアップ──「Cybozu Meetup #2」開催レポート

こんにちは、風穴(かざあな、@windhole)です。私事ですが、この4月から開発本部の所属になりました。ということで「初」エンジニアブログとして、先日開催した「Cybozu Meetup #2 SRE」についてレポートします。

f:id:cybozuinsideout:20170427103123j:plain

「サイボウズの中の人」と交流する機会

「Cybozu Meetup」は、外部のエンジニアの皆さんが、サイボウズのエンジニアとカジュアルに交流する場として企画、開催しているイベントシリーズです。いま流行の企業ミートアップのサイボウズ版、ということですね。会場はサイボウズのオフィスなので、社内の雰囲気を実際に肌で感じて頂ける機会でもあります。

開催頻度は東京オフィスで月1回、大阪オフィスで数カ月に1回程度と考えています。毎回テーマを決めていて、先日開催した「Cybozu Meetup #2」(2017年4月3日、東京オフィス)は「SRE」(Site Reliability Engineering)ということで開催しました。

サイボウズのSRE

Cybozu Meetupでは、最初にトークセッションとして、テーマにちなんだプレゼンを行っています。今回は、サイボウズの「SREチーム」設立(記事「SRE チームを設立します」を参照)を主導した山本泰宇(@ymmt2005)が、SRE設立の背景や活動内容について話しました。

f:id:cybozuinsideout:20170427102754j:plain

質問&交流タイム

トークセッションの後は、ざっくばらんな質問、交流タイム。テーマが「SRE」ということで、サイボウズのSREチームのエンジニアが多数参加していて、会場のあちこちで質問攻めにあっていました。

f:id:cybozuinsideout:20170427102735j:plain

また、SRE以外のエンジニアや、人事担当の社員も参加していたので、社内の雰囲気や、働き方や制度などの話でも盛り上がりました。ざっくばらんで率直な話を、直接「中の人」から聞くことができるのがMeetupの醍醐味でしょう。

f:id:cybozuinsideout:20170427102713j:plain

f:id:cybozuinsideout:20170427102615j:plain

Togetterのまとめはこちら:Cybozu Meetup #2 まとめ

次回は「生産性向上」

次回のCybozu Meetupは「生産性向上」をテーマに開催します。残念ながら、すでに募集は締め切らせていただきました。開催の様子は、こちらのブログでレポートしますので、お楽しみに。

5月以降も、東京オフィスでは毎月のペース開催していく予定です。また、6月には、大阪オフィスでの開催も予定しています。ご興味ある方は、connpassグループ「Cybozu Inside Out」をフォローして頂ければ。

ではまた。

 

「第6期サイボウズ・ラボユース成果発表会」開催

サイボウズ・ラボの光成です。3月30日に第6期サイボウズ・ラボユース成果発表会を開催したのでその報告をします。

サイボウズ・ラボユース

サイボウズ・ラボユースとは日本の若手エンジニアを発掘し、育成する場として2011年に設立されました。

ラボユース生が作りたいものをサイボウズ・ラボの社員がメンターとしてサポートします。 開発物の著作権は開発者本人に帰属します。基本的にオープンソースとして公開するのが条件です。

去年からは最大1年の通年募集となっています。

今年は3月で修了される3人の方と、現在開発継続中の4人、ラボユースOBから一人の発表がありました。

修了生の発表

緑川志穂さん

緑川さんは楕円曲線計算ライブラリecpyのC++による高速化というテーマで発表しました。 メンターはです。 f:id:cybozuinsideout:20170331150917j:plain

去年の中間発表ではペアリング暗号ライブラリのPython実装を紹介しましたが、今年はC++で開発したライブラリをPythonから呼べる形に改良しました(ecpy)。 PythonからC++ライブラリを呼び出すところでかなり苦労されたのですが、何度か実装・設計をやり直してきれいな形にもっていけました。 結果としてPython版に比べて約5倍の高速化を達成しています。 今後はPythonのパッケージ管理サイトPyPIへの登録を考えているそうです。

城倉弘樹さん

城倉さんはDPDKを用いたネットワークスタック, 高性能通信基盤というテーマで発表しました。 メンターは私です。 f:id:cybozuinsideout:20170331150822j:plain

DPDKとはカーネルをバイパスしてユーザランドから直接ネットワークカードを参照して高速通信をするライブラリです。 高速なのはありがたいのですが、ハードウェアに密着していてなかなか癖のあるライブラリです。 城倉さんはDPDKを使って高速通信をしつつも、なるべく簡単にアプリを作れるようなフレームワークSTCPの開発を目指しました。

Ether, ARP, IP, UDP, ICMPなどの実装は完了し、TCPも動いています。 10GbEのNICをつないだマシン間でpingをとばし、そのレイテンシを計測しました。Linuxよりも2倍速かったとのことです。

それでもまだまだ全然DPDKの性能を出し切れていないので、今後はどのぐらい高性能通信ができるか研究開発を続けるそうです。

篠崎慎之介さん

篠崎さんは「強化学習による文字認識」というテーマで発表しました。メンターは岩波データサイエンスの刊行委員を務める中谷さんです。

残念ながら諸般の事情で4カ月ほどしか参加できなかったのですが、一般的な画像の文字認識というチャレンジングな課題に対して非常に精力的に最新の論文を読んで実装していました。

まず再帰的ニューラルネットワーク(RNN)とHard attentionという技法を用いて一文字の画像を認識します。 次にmultiple object recognition with visual attentionという技法で複数物体を認識できるように拡張しました。

MNISTの数値データを適当にくっつけて3文字にしたデータセットに対して評価していました。 画像サイズが大きくなって、文字が離れると認識率は落ちるのですが28 x 84だと98%ほどの認識率になったそうです。

開発中の人の発表

西田耀さん

西田さんはヒトと機械に優しい言語nvというテーマで発表しました。 メンターは30日でできる! OS自作入門の著者の川合さんです。 f:id:cybozuinsideout:20170331150941j:plain

西田さんはこの本の熱狂的愛読者で2冊も購入したそうです。

今回開発中の言語nvは永続変数が使えて実行状態を復元可能なものを目指しています。 ここで永続変数とはプログラムを終了しても値が保持される変数で、nvでは一つの関数呼び出しで保存できるようにしました。

また、変数だけ保存してもプログラムを再開することはできないので、合わせて実行状態も復元できる機能を追加しました。

たとえば変数iを0から1ずつ増やしながらその値を表示するプログラムを

for{i = 0}http://blog.cybozu.io/entry/2017/04/04/080000{i++}{print i}

と書くと、実行中いつkillしても次回再開するとそこから動くようになるそうです。

今後はプログラムを表現可能なグラフ構造を扱う機能や複数のプログラム間で変数を共有できる機能を追加したいとのことです。

質疑応答ではメンターの川合さんが作成されたpersistent-Cとの比較で熱い議論をされていました。

小津泰生さん

小津さんは「自由度の高いグラフ描画言語の開発」というテーマで発表しました。 メンターは川合さんです。

小津さんは当初は別の言語の課題をしていたのですが、途中でテーマを今回のものに変更しました。

ExcelやGnuplotなどの既存のグラフ描画ソフトは細かいデザインを指定できないのが不満なのだそうです。 大学ではレポートのグラフに関していろいろ細かい指定があるのに、なかなか対応しづらいそうです。

開発バージョンでできるグラフの紹介をしました。複雑な数式を書けたり、グラフの値をLaTeXなどから参照できることにすることで論文を書きやすくすることも考えているそうです。

make_now_justさん

make_now_justさんは「先読みと後読みが可能なO(n)で動く正規表現エンジン」というテーマで発表されました。 メンターは西尾さんです。 f:id:cybozuinsideout:20170331150910j:plain

狭義の正規表現では「AまたはBまたはCを含む文字列にマッチする正規表現」はかなり複雑な形になります。 これを簡潔に表現するために導入されたのが先読みや後読みという機能です。

正規表現ライブラリはたくさんのものがあり、たとえばre2は決定性有限オートマトン(DFA)を用いて入力サイズNに対してO(N)の計算量で処理します。 re2は高速なのですが先読みや後読みをサポートしていません。 そこでO(N)の計算量でそれらの機能を実現する方法を設計、実装するのが目的です。

現在はまず先読みを事前に処理してから、それを除いた正規表現を処理するアルゴリズムを実装しました。 O(N)では動いたのですが、ネストできない点と、3回パースするのが難点で、それを改良するために現在はBFA(boolean finite automata)と状態を論理式や論理値で持つ方法やそれ以外の方法を検討しているとのことです。

高品佑也さん

高品さんは多変量の時系列データに対する異常検知アルゴリズムの実装というテーマで発表しました。 メンターは中谷さんです。 f:id:cybozuinsideout:20170331150926j:plain

異常検知とは、予期されるパターンにそぐわないデータを検出するというタスクです。たとえばサーバのアクセスログから不審な動きを検出して警告する、といった応用があります。

開発を初めて1カ月半なのですが、まずデータをクラスタリングし、小さなクラスタを異常とみなす方法をとりました。クラスタリングには、Hierarchical Temporal Memory(HTM)という階層的モデルの初期バージョンであるZeta 1アルゴリズムというものを用いました。

Water Treatment Plant Data Setという下水処理のセンサーログのデータセットで実験したのですが、残念ながらよい性能はでませんでした。

その理由として、HTM/Zeta 1が連続値の扱いに向いていない点や、そもそももっとシンプルなモデルで十分なデータだった可能性などをあげていました。

今後は既存の様々な手法を試したり、自分で考えた新しいアルゴリズムを試していきたいとのことです。

ラボユースOB

内田公太さん

内田さんは第2期OBでkprobesでカーネル空間ブレークポイントというテーマで発表しました。 内田さんは現在サイボウズ3年目でSREメンバーとして働いています(cf. kintone と連携する図書管理システムを作ってみた)。

KprobesとはLinuxカーネルのにbreak pointをおける機能で、任意のアドレスにbreak pointをおけるもの、関数の先頭のみのもの、関数から戻るときのものなどの機能や使い方の紹介をしました。 来月発売予定の『Linuxカーネルモジュール自作入門』という書籍の紹介もしていました。

終わりに

みなさん成長が著しく、また熱心なのに圧倒されます。 質疑応答に参加してくださった方、OBの方どうもありがとうございました。 f:id:cybozuinsideout:20170331151348j:plain

修了生の方が感想を書いてくださったのでリンクします。メンターも逆にいろいろ教えてもらうことも多く勉強になりました。

正式な第7期サイボウズ・ラボユースの募集は4月に出す予定です。 開発意欲の高い方の応募をお待ちしています。