30歳からのプログラミング

30歳無職から独学でプログラミングを開始した人間の記録。

「みてねのMeetup #2 for サーバーサイド/SRE」に行ってきた

今年の目標であった転職を果たしてしまいモチベーションが下がっているので、勉強会でも行ってみるかという気持ちになっている。
手始めに、このイベントに行った。

mixi.connpass.com

知っているサービスだし、年収800万円以上でプログラマを募集しているようなので、興味があった。
自分も年収800万円欲しい、そういう会社に入るにはどうすればいいのか、年収800万円の会社はどういうレベル感なのか知りたい、みたいな気持ちで行ってきた。

プロダクトオーナーである笠原氏の話と、4本のLTという構成。

笠原氏によるサービス紹介

みてねの概要と、サービスを始めた動機について。

子供が生まれたのがキッカケ。
生後1ヶ月で既に大量の写真や動画が生まれ、それをどうやって共有や整理するのかという課題が生まれた。
そこから、みてねが作られた。
人生を丸ごと残せる画像サービス、感動の振り返りが簡単に出来るサービスとして、作っている。

理路整然と話していた印象。
どこまでが建前なのかは分からないけど、ストーリーとして成り立っていると感じた。
やっぱり本人がユーザーというのはすごく大事だと思う。
そうでないと、「誰が使うんだよそれ」(でも誰も経営者に突っ込めない)というサービスが開発されてしまう。

北米での展開を開始したがそれなりに手応えを感じており、海外展開しやすいサービスなので積極的に海外展開に挑戦していきたいとのこと。

フォトブック組版の海外対応

speakerdeck.com

みてねでは、共有した画像を使ってフォトブックを作ることが出来る。
フォトブックにはユーザーが任意のコメントを入力できるのでその禁則処理が必要なのだが、北米展開によって、英語についても考える必要が出てきた。
さらに言うと、「Happy Birthday 一郎くん!」のように英語と日本語が混在しているケースについても考えないといけない。
そのための対応についての発表。

自分自身はあまり経験がないけど、文字情報を扱うサービスはとにかく面倒という印象がある。環境によって扱える文字やフォントが異なるし、様々なケースを考えないといけない。

これこれが分かりやすいけど、綺麗に表示されるように地道な努力が行われている。

2017年新卒の方が発表者だったけど、落ち着いて喋っていて、2009年新卒の俺よりよっぽどしっかりしている印象だった。

みてねのレコメンドを支える技術

speakerdeck.com

みてね内のコンテンツ開発チームについての話。

みてねでは以下のようなレコメンド機能を提供しており、コンテンツ開発チームはそのための開発や研究を行っている。

  • アップロードした動画を1秒ずつつなぎ合わせた1秒動画
  • 自動提案フォトブック
  • DVD作成時の「1枚にまとめる」機能

レコメンドするために、機械学習などで画像・動画の解析を行っている。
そして、動画生成やレコメンド、配信などの処理を行っている。

解析基盤は自前で構築しているとのこと。
コスト的な理由もあるし、独自の解析項目もあるため。

なんというか、こういう技術的な面白みのあるサービスはいいよなと思った。テックドリブンというか。
実際にやっていることは泥臭かったりするのだろうけど、プログラマとして興味が惹かれるような仕事は素晴らしいと思う。
一口にウェブサービスといっても、技術力が競争力の源泉ではないようなものもあり、そういう職場だと、スキルの向上やモチベーションの維持が難しくなる。とにかくプログラマの頭数で押し切ろうとするようなビジネスとか。

この方も2016年新卒で3年目なのに、落ち着いて話していた。
というか、俺が特別にヘタレなだけのような気がしてきた。

みてねSREチームの取り組み

speakerdeck.com

SREチームがこの半年で取り組んできたことのまとめ。

個人的には一番参考になった。
というのも、SREという言葉は最近よく聞くようになったけど、抽象的な説明ばかりで何をすることなのかイマイチよく分からなかった。
このLTの内容はとても具体的で、参考になった。

詳しくはスライドに書いてあるが、主に以下のようなことを行ったとのこと。

  • OS、ライブラリのアップデート
    • Amazon LinuxImageMagickOpneCV、など
  • ミドルウェアのアップデート
  • ログ転送の最適化
  • CDN最適化
  • Auroraへの移行
  • 開発環境の再整備
    • ステージング環境の整備
    • CIの最適化
  • Rubyやgemのアップデート
  • S3を最適化して、アップロードの高速化などを実現
  • Terraformへの移行
  • コンテナ環境への移行

日々の開発や運用に直接必要なこと以外の全て、という感じだろうか?
やらなくても今日は困らない(けどやったほうがいいし、将来困る可能性が高い)ようなことを、ちゃんとやっていくイメージ。
Developer Experienceの向上、という意味合いもあると思う。

海外から快適に使ってもらうためにしてきたこと

speakerdeck.com

前述の通り北米展開しているが、日本よりもアプリの動作が遅い。
それを改善するための施策について。

さっきのSREにしろパフォーマンスにしろ、自分は全く出来ていないというか、そういう状態に達していないんだよな。
今の自分は、動くコードを出来るだけ綺麗に書く、というので精一杯。
だからこのLTも、話としては分かるんだけど、あまり強く関心を持てなかった。単純に知識が無さすぎるというのもあるけど。