にゅーとぴあ

気が向いたら書きます。

LayerXサマーインターン参加記

9/2(月)〜9/13(金)までの2週間、LayerXソフトウェアエンジニアのサマーインターンに参加してきました。もう1週間以上経っているんですがこれ以上記憶が薄れないうちに、やったことなんかを書き記しておこうと思います。

tech.layerx.co.jp

オフィスの入口を写した写真。正面の壁はガラス張りになっており、その手前にLayerXの文字の形をした白い立体的なオブジェが置かれている。
LayerXオフィス

参加までの経緯

高校生の頃からインターンには興味があったものの、学校行事や受験勉強に追われていてとてもそんな余裕はなかったため、大学生になったらインターンしたい!という思いがありました。

しかし蓋を開けてみると学部1年の前期はわりと授業が多く、長期インターンで募集している最低ラインであるところの「平日週10時間」といったスケジュールは組むのが難しそうだと判明。そこで最初はエンジニア以外のバイトをやることにし、インターンは夏休みで行けそうなところを探すことにしました。

サマーインターンは主に魔法のスプレッドシートで探していました。26卒限定のものが多い中、学部1年でも参加できるもの、かつスケジュール的に参加可能なものなどで絞り込んだ上で、自分が興味を持ったものに応募しました。

LayerXは以前社員の方とお話したことがあったこともあり、以前から興味を持っていました。とはいえ正直応募前は「toB向けのプロダクトを出していて、つよつよなエンジニアが集まっている会社」というくらいの認識で、法人カードがどういったものかも理解していない状態でした。

LayerXのインターンに興味を持った理由の一つに、「ソフトウェアエンジニア」という枠組みで採用を行っているという点がありました。多くの会社が「フロントエンドエンジニア」「バックエンドエンジニア」といったように別々の職種として採用を行っている中、「フロントエンドのほうが得意だと思っているけれどフロントエンドだけで終わりたくない、バックエンドも興味ある」という思いを持っていた私にとってぴったりだと考えました。推奨されていたスキルもNext.jsとGoで、どちらも個人開発で利用した経験があったためついていけるだろう、ということで応募しました。

メールのログを辿ったところエントリーをしたのが5/3(金)で書類選考が通ったという連絡が来たのが5/9(木)でした。めちゃくちゃ早かったのでびっくりした覚えがあります。そこから技術面接がオンラインで5/29(水)にあり、6/7(金)に内定の連絡がありました。

前半: 講義パート

最初の3日が講義、その後はチーム開発という流れでした。1日目と2日目はちょうど台風10号が接近していたため、あいにくオンラインという形に。

正直キャッチアップの期間に対面で相談できないのは辛かったんですが、運営の社員さんたちがSlackやGoogle Meetでめちゃくちゃリアクションを送り合っていてとても喋りやすいと感じたので、「これが心理的安全性か〜」と体感していました。

仮想環境の構築はdevboxを利用しました。初めて使ったんですがDockerよりコマンドがシンプルで使いやすかったです。Dockerですらまだちゃんと使いこなせてはいないですが、個人開発でも使ってみたいと思いました。

www.jetify.com

Warpでdevboxを稼働させている様子
devbox

今回インターンでの一つのテーマとしてスキーマ駆動開発の体験というものがあり、講義の内容もGraphQLの解説が多くありました。GraphQL自体興味はあったものの個人開発で取り入れるにはオーバーな技術だと感じていたため、今回のインターンで経験することができて良かったです。

GraphQL以外でもエラーハンドリングやログ出力の工夫など、実務では欠かせない処理について多く学ぶことができました。細かい話ですがデベロッパーツールのネットワークタブからリクエストをcurl形式でコピーできることを知らなかったので感動していました。これは便利。

技術的な講義以外にもCEOやCTOの方からの講話もあり、「なぜ儲かっているのか原因が分かっていない事業は続かない」という話や「価値を提供する方法は無限だがマネタイズの方法は有限」といった話はたしかになぁと思いました。

後半: チーム開発パート

チーム開発はサンプルとして用意された「法人カードの管理画面」のリポジトリをもとに、要望DBにある架空のお客様からの複数の要望の中から、自分たちでどれを実装するか決めていく、という流れでした。最終発表では技術力だけでなく、機能やUI/UXが適切なソリューションとなっているかやチームワークなども含めて判断されます。

要望には「カードを一括で作成したい」や「カード情報を一括で変更したい」といったものがありました。機能単位でタスク分けをすることも考えましたが、一つの機能が複数の要望にまたがっているケースがあったため、私たちのチームでは開発担当を大まかにフロントエンドとバックエンドに分けて作業しました。

クレジットカードの一覧が表示されている管理画面。左側に紺色を背景としたサイドバーがあり、「カード一覧」と「ユーザー一覧」のメニューがある。カード一覧のエリアではカード名やステータス、所有者や上限額などの情報が表示されており、表下部のメニューから次の10件を表示することができるようになっている。画面右上には「カード発行」と「カード一括発行」のボタンが並んでいる。
開発した管理画面

結果的にスムーズに作業することができたのですが、期間中私が主に開発していたのは自分が得意なフロントエンドでした。正直講義パートの時からアドバイスされていた「コンフォートゾーンからの脱却」ができていたかと言われるとまだまだな部分があった気がするので、ちょっと反省しているポイントです。

チーム開発パートではインセプションデッキの作成やワーキングアグリーメントの策定、リリース計画の作成を行う機会があり、ここでも実務で同じチームのメンバーと視点を合わせるための取り組みを体験することができました。毎日最後の時間にデモ会を行い、チームのメンターに一日の進捗をお見せする機会がありました。

期間中は日報やチーム振り返りを行う時間も設けられていました。ちょうど同じくらいのタイミングで、個人的にも日記を書き始めていたので、インターン内で日報を書くことで個人的な日記の習慣付けにもなり良かったです。チーム振り返りではメンバーの良かったところ、もうちょっとだったところを共有する欄がありました。実際にはここまで高頻度ではないようですが、普段は言いづらいことも含めて共有することで円滑なチームワークへつなげる場として良い取り組みだと思いました。

15時頃になると「おやつタイム」ということで、休憩時間を使って多くの社員さんたちとお話する機会がありました。この時間や懇親会では本当に様々な話をフラットに聞くことができ、これだけでもインターンに参加して良かったと感じました。

テーブル上にクリスピードーナツの箱が4つ並んでおり、すべて開かれている。それぞれの箱には6つのドーナツが入っている。
ドーナツがふるまわれた日もありました。美味しかった!

個人的にQAエンジニアという職種について興味があるという話をしたところ、後日わざわざQAエンジニアの方を呼んできてくださり、QAという職種に対する解像度がぐんと上がりました。本当にありがとうございます。

むすびにかえて

人生初インターンでしたが非常に楽しかったです。同時に自分の実力のなさ、特にバックエンドについての知識不足を痛感したので、改めて頑張っていきたい。

インターンとは関係ないですが、オフィスが東銀座にあり、築地が非常に近かったためお魚が美味しかったです。

黒いプレートの上に、ご飯が左下、お味噌汁が右下、鮪のカマ焼きが左上、お刺身が右上、が置かれている
備長炭火焼 じげ 築地店

あとはノベルティのTシャツがとってもオシャレでした!この他モバイルアクセサリーケースなんかもいただいたので、たくさん使っていきたいです。

右側にLayerXのロゴが入ったうちわとステッカーがあり、左側にTシャツが置かれている。Tシャツは折りたたまれた状態で透明なビニールの中に入っており、白地に青い文字でGo言語のプログラムがプリントされている
いただいたノベルティたち

LayerX社員の皆さんには本当にお世話になりました。ありがとうございました!