9/2(月)〜9/13(金)までの2週間、LayerXソフトウェアエンジニアのサマーインターンに参加してきました。もう1週間以上経っているんですがこれ以上記憶が薄れないうちに、やったことなんかを書き記しておこうと思います。
参加までの経緯
高校生の頃からインターンには興味があったものの、学校行事や受験勉強に追われていてとてもそんな余裕はなかったため、大学生になったらインターンしたい!という思いがありました。
しかし蓋を開けてみると学部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ですらまだちゃんと使いこなせてはいないですが、個人開発でも使ってみたいと思いました。
今回インターンでの一つのテーマとしてスキーマ駆動開発の体験というものがあり、講義の内容もGraphQLの解説が多くありました。GraphQL自体興味はあったものの個人開発で取り入れるにはオーバーな技術だと感じていたため、今回のインターンで経験することができて良かったです。
GraphQL以外でもエラーハンドリングやログ出力の工夫など、実務では欠かせない処理について多く学ぶことができました。細かい話ですがデベロッパーツールのネットワークタブからリクエストをcurl形式でコピーできることを知らなかったので感動していました。これは便利。
技術的な講義以外にもCEOやCTOの方からの講話もあり、「なぜ儲かっているのか原因が分かっていない事業は続かない」という話や「価値を提供する方法は無限だがマネタイズの方法は有限」といった話はたしかになぁと思いました。
後半: チーム開発パート
チーム開発はサンプルとして用意された「法人カードの管理画面」のリポジトリをもとに、要望DBにある架空のお客様からの複数の要望の中から、自分たちでどれを実装するか決めていく、という流れでした。最終発表では技術力だけでなく、機能やUI/UXが適切なソリューションとなっているかやチームワークなども含めて判断されます。
要望には「カードを一括で作成したい」や「カード情報を一括で変更したい」といったものがありました。機能単位でタスク分けをすることも考えましたが、一つの機能が複数の要望にまたがっているケースがあったため、私たちのチームでは開発担当を大まかにフロントエンドとバックエンドに分けて作業しました。
結果的にスムーズに作業することができたのですが、期間中私が主に開発していたのは自分が得意なフロントエンドでした。正直講義パートの時からアドバイスされていた「コンフォートゾーンからの脱却」ができていたかと言われるとまだまだな部分があった気がするので、ちょっと反省しているポイントです。
チーム開発パートではインセプションデッキの作成やワーキングアグリーメントの策定、リリース計画の作成を行う機会があり、ここでも実務で同じチームのメンバーと視点を合わせるための取り組みを体験することができました。毎日最後の時間にデモ会を行い、チームのメンターに一日の進捗をお見せする機会がありました。
期間中は日報やチーム振り返りを行う時間も設けられていました。ちょうど同じくらいのタイミングで、個人的にも日記を書き始めていたので、インターン内で日報を書くことで個人的な日記の習慣付けにもなり良かったです。チーム振り返りではメンバーの良かったところ、もうちょっとだったところを共有する欄がありました。実際にはここまで高頻度ではないようですが、普段は言いづらいことも含めて共有することで円滑なチームワークへつなげる場として良い取り組みだと思いました。
15時頃になると「おやつタイム」ということで、休憩時間を使って多くの社員さんたちとお話する機会がありました。この時間や懇親会では本当に様々な話をフラットに聞くことができ、これだけでもインターンに参加して良かったと感じました。
個人的にQAエンジニアという職種について興味があるという話をしたところ、後日わざわざQAエンジニアの方を呼んできてくださり、QAという職種に対する解像度がぐんと上がりました。本当にありがとうございます。
むすびにかえて
人生初インターンでしたが非常に楽しかったです。同時に自分の実力のなさ、特にバックエンドについての知識不足を痛感したので、改めて頑張っていきたい。
インターンとは関係ないですが、オフィスが東銀座にあり、築地が非常に近かったためお魚が美味しかったです。
あとはノベルティのTシャツがとってもオシャレでした!この他モバイルアクセサリーケースなんかもいただいたので、たくさん使っていきたいです。
LayerX社員の皆さんには本当にお世話になりました。ありがとうございました!