
こんにちわ。カラビナテクノロジーのPRサークルのbravoです。
先日、「カラビナGeekセッション」という社内イベントを開催しました。
「カラビナGeekセッション」とは、今回初めてやってみたのですが、イベントの内容はざっくりいうと...
カラビナメンバーから
・どうやって技術をキャッチアップしているのか?
・普段、どんな案件に携わっていてどんな技術を使っているのか?
・最近の注目の技術
などなど、技術に関するいろんな話を聞いてみよう!というイベントです。
第一回目となる今回は、バックエンドから3人をお招きして
jaguarさん
boschさん
mikeさん
に語っていただきました!
普段の仕事についてざっくり教えて下さい
bravo: では、いろいろきいていく前にお三方のカラビナネームと、 今やっていることとか、案件とか、技術を簡単 に教えてほしいです。
jgr: ぼくは今は、案件でいうと 電子チケットを扱う案件 をやっていてポジションとしては、最近は要件定義がメインでやってます。カラビナのメンバーだけではなく、開発に関わっているメンバーの全員分のタスクの要件定義もしていますね。
コードを書くこともあって、そのときは Laravelを利用したAPIの開発の部分 を担当しています。確かbravoさんも一緒に開発してくれてましたね。
bravo: あ、そうですね。ぼく、やってましたね。そうでした。笑。じゃあ、次にboschさん、よろしくおねがいします。
bosch: ぼくは、 大規模EC系パッケージソフトを利用したシステム開発全般 をやってます。実はみんながつかっているECサイトはぼくが開発しているシステムだったりするかもしれませんね。
プログラミング言語でいうと主にJava を使ってます。
他にも Android, iOSのアプリの開発 もやっていたりします。
bravo: 確かに、boschさんはJavaを書いているイメージあります。では、次にmikeさんおねがいします。
mike: ぼくは、とある 企業さんのシステムのリプレイスする案件 が一つと、 音声で操作できるようなアンドロイドアプリの開発 、あとは以前やっていた案件のお世話(保守)をやっていますね。案件はいろいろ、やってますね。
bosch: 以前、mikeさんは、ぼくがやっているECのアプリの開発でわからなかったところを、一瞬で解決してくれましたよね。
mike: 一息で解決してやりましたよ。。。嘘です。めっちゃ調べました。笑
bravo: じゃあ、早速ですけど、いろいろと質問させてください。
今関わっている案件って技術的にはどんなことしてますか?
jgr: さっきの電子チケットの案件では、すでにあるシステムがあるんですけど、それを laravelでシステム的に置き換えたい 、というような要望があったりして、laravelを書いたりしてますね。
あとは、 AWS上で動いているものをdockerコンテナ化したい 、という話もあったりして、dockerを使っていたりしますね。
dockerコンテナの件については、bravoさんにも手伝ってもらった部分になりますね。
bravo: あ、そうでしたね。dockerはたしかに対応しました。
jgr: あと、案件に関わっているメンバーのスキルセット的にdockerを使ったインフラをスムーズに進められる人がたくさんいるわけでもないので、そのへんは試行錯誤しながら、開発は進めているような感じですね。
bravo: そうなんですね。あ、でも、カラビナでdockerで本番環境が動いているような案件ってどれくらいあるんですかね?
jgr: mikeさんの案件は本番環境、docker(で動作しているん)じゃなかったですっけ?
mike: kubernetes です!!いや、内部的にdockerだからdockerなんですけどね。
bravo: 実際に本番環境でkubernetesを使っているんですか!すごい。でも、全体的には、案件的にはdockerで動いているようなのは、あまり多くない、って感じですかね。
jgr: boschさんがやっているECの案件とかは、多分、AWSのEC2ですよね?
bosch: 多分、EC2じゃないですかね。既存の大きなシステムをいきなりdockerに移行するのはなかなか、大変でしょうね。EC2でしかできないと思います。
jgr: bravoさんの案件では、docker使っているんじゃないですか?
bravo: そうですね。つかってますね。docker。ただ、ぼく自身、dockerでの本番運用の知見がめっちゃあるわけではないので、早くdockerを使ったシステムを利用して、リリースしたいな、って気持ちは少なからずありますね。
bravo: boschさんの案件ではどんな感じですか?
bosch: ぼくのところはシンプルにjavaのフレームワークを使っていて、 フレームワークとしてはspringとplay frameworkというフレームワーク を開発領域ごとに使っている、という感じですね。
bravo: あら?でも、 Kotlinとか書いていませんでしたっけ ?
bosch: アンドロイドアプリ開発はやってたりするんですけど、 Kotlinではなく、javaで書いてます ね。
bravo: そうだったんですね。カラビナ、ってぼくのイメージの中ではそんなにjavaをかける人が多くないんですけど、実際どうなんですかね?
bosch: いや、意外といますよ。 10数人いたかな 。確か。
カラビナ自体におけるバックエンドエンジニアは、35名位いるのでそれを考えると、意外といますよね。
jgr: mikeさんも何気にjavaできるんですよ。この人。
bravo: あ、そうなんですか?
mike: そうなんです。javaもできます。黙ってましたが。笑
bravo: mikeさんは、結構できる言語が多い印象がぼくの中ではありますけど、実際触ったことがある言語ってどれくらいあるんですか?
mike: カラビナ以外のお仕事とかもあったりするんで、なんともですけど全部含めてだと、 java, ruby, elixir, javascitpt/typescript, kotlinあたり ですね。
bravo: 結構ありますよね。あと、 mikeさんはGKEの人、みたいなイメージ がぼくの中にあるんですけど、GKEができる人ってカラビナに限らず、エンジニア全体とそんなにいないですよね。
mike: 確かにそうかもですね。ぼくも カラビナに入ってGKEをさわりはじめて、正直dockerも理解そこまでしてなくて、やっている ところありますね。
bravo: そういえば、気になっていることがあって、カラビナでGCPを使おう、ってなった経緯とか背景ってのはあるんですか?
mike: それはぼくが所属しているD3チームでそういう技術選定になったから、使っていますね。
ぼくがはじめて関わった案件とかは、AWSで見積もって、GCPで作る みたいなことをしていましたよ。
GCPを使っていて困るのはAWSに比べて記事が少ないことですかね。GCPで細かい設定をしようと思うと、なかなか見つからなくて、苦労します。笑
※カラビナは 組織体制として、バックエンドチーム、フロントエンドチーム というふうに分業をしていました。そして、その中でもバックエンドチームの中でも、ECバックエンドチーム、D3チームというふうに分かれていました。インタビュー時はちょうど組織体制移行時で、 現在のカラビナは新しい組織体制でプロジェクトが動いています。
(新しい組織体制についてはまた別のブログで紹介させてください!)
技術のキャッチアップってどうやってますか?
bravo: エンジニアってスキルアップとか、 技術のキャッチアップ というのはやっぱり関心があるのかな、と思うんですけど、そのへんはどんな感じですか?
jgr: ぼくは FeedlyでRSSで気になるやつをとりあえずいっぱい購読 しています。いっぱい登録しておいてタイトルで気になった記事を読む感じですかね。あとは、はてブでキーワード入れておいたりしておいたりしています。
bravo: そうなんですね。Feedly自体ぼくは使ってなかったので、やってみようかな。boschさんはどんなふうに技術のキャッチアップをやってたりしますか?
bosch: そうですねー。正直、技術をキャッチアップしようと思ってやっていることはないですね。ただ、そういった キャッチアップする意識して何もしていなくても、技術に対するアンテナみたいなのは誰しもある じゃないですか?エンジニアやっていると。
そういうアンテナに引っかかったものを読むようにはしていますね。こういうことって多分、だれでもやっているような事なんですよね。
興味ない記事を読んでも、やっぱり頭に入ってこないですし。
bravo: 言われてみたら、そうですね。今までぼくもそこまでキャッチアップしよう、と思ってやってきたことはないかもです。mikeさんは、どんな感じですか?
mike: ぼくは テックフィードプロというアプリを使っていて、気になったキーワードを突っ込んでおいて 、みている感じですかね。
Techfeedっていつの間にかTechFeedProになってましたね。どういう関係なんですかね。
最近の注目の技術、やってみたいこと、プライベートで作っているものとかありますか?
bravo: 次で今回のこのセッションの最後の質問にしようと思うんですけど、これからやってみたい技術とか、プライベートで作っているものとかあったりしますか?
mike:
k8sからKnativeというトレンド になってきていて、それを勉強していこうかなー、って思っています。
bravo: boschさんは、プライベートでやっていたりすることはありますか?
bosch:
特にこれがやってみたい、というのは正直なくて、、、あー、技術ではないかもしれないんですけど、 今更ながらクリーンアーキテクチャは勉強しようかなー 、っていうのは思ってますね。最近だと、クリーンアジャイルというのも書籍で出てたりしますね。
mike: オニオンアーキテクチャ、とかそういう系の話 ですか?
bravo: オニオンアーキテクチャ、ってのがあるんですか?
mike: オニオンアーキテクチャとか色々あるけど、いつもどれが良いんだろう?っておもってたりしますね。
bravo: ぼくもちょっと話したいんですけど、ぼくは個人的にGo言語をはじめていて、フロントエンドはNuxtが少しできるので、それで書いていこうと思っているんですよねー。
bosch: Go言語でいうと、インフラ周りのツールをGoで作っている企業とかありますね。そもそもネットワークプログラミングとかはC言語で書かれていることが多いんですけど、C言語よりもGoのほうが書きやすいからGoに置き換えてる、みたいな話を聞いたことがあります。
bravo: そうなんですかー。しらなんだ。 カラビナ的にGoってやるような、予定 ってあるんですかね?
jgr: 技術選定としては、ま、誰かがやる、と決めればやると思いますね。
mike: Goは割と触りたい ですねー。zeroさん、okinariさんは確かGo触れますしね。Goは全然選んでもいいようにぼくは思ってたりします。
bravo: では次に、jgrさんはどんな感じですか?
jgr: 要件定義が大事かな、って思っていて、言語は手段 、ってのはやっぱり前提としておもっているんですよね。
bravo: あ、そうなんですね。
bravo: 今回の趣旨からはずれるんですけど、マネジメントは面白くはないよなー、ていうのを割と感じてたりするんですよね。
jgrさんはそういうのが面白い、と感じているのかな、とかぼくは勝手に想像してるんですけど、実際どうなんですか?
jgr: 今やっている案件は結構、そういうマネジメントに関することが多くあるように思いますけど、boschさんが今関わっている大規模なECシステムをやっているときは、マネジメントみたいなことはあまりなかったですね。マネジメントは3割から半分くらいだったと思います。
bravo: そうなんですね。もっとやっているかと思っていました。
jgr: 複数人のチームになるとやっぱりそういう役に徹しないといけないような場面というのはありますよね。どうしても。
boschさんも同じくらいあるんじゃないですか?管理ぽい仕事。
bosch: うーん、ぼくは管理とかしていないですよ。でも、コードそんなに書いてないですけど。
jgr: じゃあ、なにやってるんですか?
bosch: 仕事してないんですかね?笑
bosch: 管理ということはあまりないですけど、調べ物とかは多いかもしれないですね。あとは、誰かが書いたコードをレビューしたり、そういうことが最近のタスクでは多いのかもい知れないですね。
んで、わからないことがあったら、クライアントとかにお尋ねすると、逆に質問で返ってきたり。。。笑
bravo: boschさん的にコード書いてたい、とそういう調べ物とかも含めて管理的なタスクだとどっちをやっていたい、というのはあるんですか?
bosch: ぼくは好き嫌いないので、どっちでもいいですよ。笑
bravo: そう答えられたら、ぼくはもうね、なにも言えないじゃないですか。笑
bosch: ま、でも何が一番好きか、って言われたらそりゃ書くほうがやっぱり好きですかね。
bravo: やっぱり、そうですよね。というところで、今回はこのへんで終わろうと思います。今回は参加していただいて、ありがとうございました。とても参考になりました。
まとめ
カラビナgeekセッションを通して、 一番得るものが多かったのはもしかしたら、ぼくなのかも しれません。
個人的に思うのは、これは良い悪いの話しではないけれど、事実としてエンジニアを続けていると、どこかで管理系のタスクが増えたり、そういったポジションでコミットすることが増えてきてしまうのだろうな、とぼんやりと思っています。
そんなことを思いながら、第一回カラビナGeekセッションを終えるのでした。
カラビナテクノロジーはnoteもやっています。カラビナテクノロジーをもっと知りたい方は、ぜひチェックしてみてください。↓