動画配信事業を広告の側面から成功させることをミッションに、配信サーバーをメインに担当しています。自分自身領域を広げるために他分野にも挑戦させてもらっており、具体的な業務としてはクラウドによるインフラの設計から構築、サーバーサイドの設計/実装、管理画面のUI実装まで多岐に渡ります。


“ 運用するなかで、新しいサービスやコードの有用性を実感 ”

インフラ構築にAWSを利用しており、アプリケーションの管理やデプロイにAWS Elastic Beanstalkというサービスを利用しています。オンプレ環境では、負荷分散やオートスケーリング・監視などの設定に時間がかかっていましたが、Elastic Beanstalkではこれらを全て任せることができるので、かなりの工数を削減できています。実際には、ELBのpre-warmingを行わなければいけなかったり、デバックがしにくかったり、突然立ち上がらなくなるなど色々な問題に打ち当たりましたが、1年程運用してみてその有用性を実感しているところです。

開発言語に関してはscalaをWAFにplay2やfinatraを採用しています。 これまでjavaを書いてきたエンジニアが殆どだったので、最初はjava的な書き方をして徐々に関数型に書き換えていきました。デザインパターンを駆使して書いていたコードも、関数型で吸収してかなりすっきり書けるようになったのは良かったです。 今後はより保守性やパフォーマンスにとことん拘っていきたいなと考えています。


“ エンジニア自身がプロダクトに責任を持つ ”

「より良いものを作るために挑戦する」という意識を大切にしています。失敗しないように安全策を選択し続けると、単調な作業になりがちで長期になると次第にモチベーションの維持も難しくなっていきます。結果的にレベルの低いアウトプットで、失敗するという事態になりかねません。このようなことに陥らないために、チームではより良い技術があれば相談し積極的に取り入れるようにしています。MDHでは、技術職以外の方でも理解がある方がいるのでとても実践しやすい環境ですね。

またビジネスサイドの指示通りに設計/実装を行うのでは無く、本質的なニーズをきちんと理解することも重要だと考えています。ニーズを理解した上で最適な手法をエンジニアサイドから提案することで、エンジニア自身がプロダクトに責任を持って取り組むことができ、それがスキル向上にも繋がると考えています。