インターン生活を振り返って

エンジニアインターンの舩越です。

Kaizen(※) でインターンを始めてちょうど 1 年程経つので、ここらでインターン生活を振り返ってみようと思います。

※ Kaizen: Kaizen Platform の略称。

なぜ、Kaizen のインターンに応募したか

f:id:kaizenplatform:20210210103442j:plain

調べてみたところ、Kaizen のインターンに応募したのは 2019-12-21 でした。この時はちょうど就活中で、一通り業界を見終えて、「エンジニアになりたいかも・・・!」と思い始めた頃でした。しかし、エンジニアが実際にどんな仕事をしているかなどは曖昧だったため、「じゃあ実際に働いてみっか!」と思い立ち、インターンを探し始めました。

Wantedly を眺めていて「ここ、徒歩 1 分(※)じゃん!(ポチー」ということで申し込んだのが、Kaizen のインターンでした笑

※ 当時住んでいたアパートから。

参考までに「インターン応募時のスペック」を載せておきます。当時の自分は知識も技術力もありませんでした。

  • 就活中の M1(工学系)
  • コードを書くのが大好き(技術力があるとは言ってない)
  • Python でちょっとしたスクリプトを書けるくらい(アプリなんてもちろん作れない)
  • Rails チュートリアル挫折
  • HTTP?キャッシュ?ポート番号?Docker?なにそれ美味しいの?状態

多分、「コードを書くのが大好き」と言う部分が伝わって採用に至ったのかなと思っています笑

「向いているかどうか」より「好きかどうか」が重要ですよね、うんうん。

Kaizen のインターンの良いところ・悪いところ

実際に 1 年働いてみた自分が思う、良いところ・悪いところを列挙してみます。Kaizen のインターンに興味がある方向けになるかと思います。

良いところ

  • 「やってみたい!」と言えば FE、BE、インフラなんでもチャレンジさせてくれる(※)
  • 設計段階から携われる
  • プロのコード見放題・プロからのレビューもらい放題
  • みんな優しい(Kaizen 全体の雰囲気が良い)
  • チーム開発が経験できる
  • フルリモートである

※ FE: フロントエンド、BE: バックエンド。ちなみに主な使用技術としては FE が React(TypeScript)、BE が Rails です。

当時の自分はちょっとしたスクリプトを書けるくらいだったので、BE の開発から入りましたが、FE の開発もやってみたいと思っていました。そこで、ある日「TypeScript も React もよく分からないけど、FE やってみたいです!」と言ってみたら「いいよ!」とすぐに FE のタスクを振ってもらえました。これがきっかけで FE の知識もたくさん身につきましたし、なにより FE 開発の楽しさに気づくことができました 😊 また、インフラに関しても、やりたいことに対して適切な権限をもらえます。社内で使うアプリを作った際も「せっかくなら CI/CD 環境の準備も自分でやってみると勉強になるよ!」と言ってもらえました。おかげさまで、FE、BE、インフラという風に Web アプリ全体を俯瞰できるようになりました。「やってみたい!」と言えばなんでもチャレンジさせてくれる環境はとてもありがたいです。(そもそも常日頃から Kaizen のインターンでは「今の自分ができるタスク」ではなく「今の自分じゃ少し難しいタスク」に挑戦させてくれるので、周りの多くの人に支えられつつ、どんどん成長できます!)

加えて、設計段階から携われるので、状況によっては仕様自体に物申す事もあります。(インターン生の意見も 1 エンジニアの意見として受け止めてもらえるのはとてもありがたいです。(※))おかげさまで、CS の方々やお客様からいただいたフィードバック・要望を技術でどう解決するかということだけではなく、そもそもこの要件は本当に必要なんだろうかということも考えられるようになりました。ただ言われた通りに解決するだけではなく、本当にやりたいことは何かを確認して、エンジニア的視点から「この要件はこうした方がもっと良くなると思います」ということを PM の方に伝え、意見をすり合わせながらゴールを目指す・・・これはとても良い経験になっていると思います。

Kaizen Platform のエンジニアインターンのご紹介の「インターンの働き方・指針」にもある通り、インターン生はほぼ社員です。

その他にも、GitHub 等でプロのコード見放題・プロからのレビューもらい放題なので、コードの読み進め方変更に強い高品質なコードの書き方がだんだんと分かってきたり、インターン生 1 人に対してメンター 1 人がつくので、困ったことがあればすぐに相談できたりもします。(みんな優しいので、ほぼ社内の人全員がメンターとも言えます笑)

上記で挙げたもの以外にも、

  • 実際の業務(の流れ)を知れる
  • サービスが作られていく過程を知れる
  • どんな技術がどういった運用をされているのかを知れる
  • どのポジションの人がどういった仕事をしているのかを知れる
  • 0 → 1 ではなくグラデーション的に社会人になれる

など、良いところを挙げ出したらキリがないのでこの辺にしておきます・・・(それだけ Kaizen のインターンに満足しているということです 🙆‍♂️)

悪いところ

  • 特に思いつきませんでした 😊

強いていうなら、以下に該当する人には厳しいかもしれません・・・💦(あくまで個人の感想です。)

  • 何かしら学べたら良いやという受け身な人(自学する意欲がない人、目標がない人)
  • フルリモートだとなんかダラけちゃうなぁな人(自己管理能力が低い人)
  • 論理的に考えられない人(なぜ?を追求できない人)
  • 技術にそこまで興味がない人
  • 一定以上の責任感がない人
  • 素直じゃない人

書いてて、別にこれって Kaizen のインターンに限らずだなぁと思いました笑

どの会社でも、なんでもかんでもおんぶにだっこな指示待ちエンジニアはアカン!😱

Kaizen のインターンで得たもの

まず、ここでは到底書ききることができないほど多くのものを得ました。 「インターン応募時のスペック」を考えると、とんでもない成長というかこれはもう進化、いや、種が変わって「人間ではない何か」になっているかも・・・というくらい変わりました。(成長速度が独学に比べて圧倒的に爆速)間違いなく自分の人生のターニングポイントになったと思います。

インターンで得たものは先の良いところでもちょこっと紹介しましたが、ここでもまとめておきます。(あくまでもほんの一部です。)

  • ビジネスマナースキル(ビジネスマナー・コンプライアンス研修がある)
  • テキストコミュニケーションスキル
  • 質問力・ヘルプを求める力
  • エンジニア的視点(からビジネスに物申す力)
  • Web 全般の知識・Web 開発の知見
  • 1 人で Web アプリを作りきる力(FE、BE、インフラ、CI/CD)
  • 常に 1 次ソースを参照する習慣
  • 様々なツールの使い方

常に 1 次ソースを参照する習慣は、今となっては当たり前ですが、インターン参加前の自分は(意識すら)できていなかったなぁと。

質問力・ヘルプを求める力に関しては、インターン参加前から質問というのは相手の貴重な時間を奪って助けてもらうことと認識していて、自分がどこまで分かっていて、どこから分からないのかを明確にし、必要なコンテキストも添えて簡潔に伝えられるように心がけていました。現在は、より意識するようになったかと思います。

これらに加え、メンターとの対話(※)の中で自分のエンジニア気質も見えてきました。

※ Kaizen のインターンでは、2 週間〜1 ヶ月に 1 度の頻度でメンターとの 1on1 があり、ここではインターンに関する質問とは別に最近の悩みやキャリアの相談など、なんでも質問できます。

メンターである木暮さんと話していて分かったのが、自分は技術を極める!というよりは、それらの手段を組み合わせて何か 1 つ動くものを作りあげることに楽しさを感じるということです。世間では好評の Progate や Rails チュートリアルのような教材が自分にはどうも合わないと思っていたのですが、ようやく合点がいきました。自分の場合は何か作りたいものが先にあって、技術はあくまで手段というタイプのようで、ただカリキュラム通り進めていくのがあまり肌に合いませんでした。(言われたものを言われた通りに作る力ももちろん大事です。)

「Kaizen のインターン生として、実際にお客様にご利用いただいているプロダクト(KAIZEN Ad)の開発に携わりつつ、エンジニアリングを学べる環境に居られることはとても幸せなことだなぁ。」と改めて気づかされました。

最後に

インターン生活を振り返ってみると、Kaizen のインターンに参加したことで「エンジニアになりたいかも・・・!」「エンジニアになりたい!」という確信に変わり、さらにそのまま学生から🐤 エンジニアになっちゃったなぁという感じです 🏃‍♂️💨

Kaizen の皆様には、日々大変お世話になっております!おかげさまで、楽しいインターン生活を送れています 🙇‍♂️

これからもよろしくお願いいたします!!!

Kaizen Platform のエンジニアインターンのご紹介

Kaizen Platform で開発組織の部長をしているKawabeです。
今回は、エンジニアインターンの取り組みについてご紹介します。

インターンの取り組みの歴史

f:id:kaizenplatform:20210125093240p:plain

Kaizen では創業当初よりインターン生が活躍してきてくれているのですが、開発組織でエンジニアの1人目のインターン生がジョインしてくれたのは2019年でして、実は長い歴史がある訳ではありません。

2017年頃までの採用方針はどちらかというと即戦力重視の傾向があり、開発チームではインターン生の受け入れはしていませんでした。

その後、将来的な開発チームのスケールを見据えて採用方針やチームのあり方を見直し、オンボーディングプロセスの標準化や若手採用の推進、勉強会・読書会などのチーム力強化の取り組みをおこなってきました。

そして2019年にインターン生の受け入れ開始し、2021年現在では4名のインターン生が活躍してくれています。

インターンの働き方・指針

夏季・冬季休暇に短期集中型で参加してもらうようなものではなく、定常的に週に何日か稼働いただくスタイルをとっています。 もちろん時期によって忙しさは変わるので、「卒論・修論前はしばらく稼働を減らしたい」「夏季休暇はガッツリ働きたい」といった変動には柔軟に対応しています。

インターン生を受け入れるにあたっては、極力ほかのエンジニアと同じ環境で働いてもらいたいという指針をもっています。

また「エンジニアも一人のビジネスマンである」という考え方もあり、インターン生は他エンジニアのアシスタント的なものではなく、役割としては他と一緒であり仕事の難易度によってレベルコンディションを調整するようになるべくしています。

※1: 現在はコロナ禍のため当然なのですが、コロナ前もリモートワークをしてもらっていました
※2: Kaizen Week は契約形態に限らず基本は週3回以上稼働している方の参加を推奨しています

使用技術

前提として、 Kaizen におけるプロダクト開発では主に以下の技術を使用しています。

ジョイン時点の技術力としては、およそ以下の水準で受け入れをしています。

  • 情報系科目や個人勉強で、プログラミングの経験はある
  • Rails はチュートリアルをやった程度
  • プロダクト開発の経験は無し

結果的にではありますが、現在活躍中の4名全員がサーバサイド/フロントエンドの両方とも開発してくれています。 最初はサーバーサイドで小さな改修から始めてもらい、じきにフロントにも手をのばす、というケースが多いです。

これまでインターン生の皆さんにきいた限りでは、どちらかというとフロントの方がより学びたいという意向が多く「画面に直接反映されるのでわかりやすい」「React のエコシステムとその進化が面白い」といった感想でした。

余談ですが、 Rails と React の両方をやらなければいけない、という制約はありません。 他従業員(正社員含む)にも言えることですが、学びたい技術は原則として本人の意向を尊重しています。

  • これまで Rails をメインにやってきたけど、 React が思いのほか面白かったのでフロント開発の量を増やしたい
  • React はやってみたけど自分には合わないと感じたので、今後はできればサーバーサイドに集中したい

これは、過去に実際にあった一例です。

オンボーディング

最初は一定の学習・キャッチアップ期間は設けますが、小さな改修タスクを実際にもってもらい、メンターとのコミュニケーションを通して改修を進めるOJT形式でおこなっています。インターンチームの体制が整ってきたこともあり、最近ではメインのメンターは先輩インターン生が努めてくれています。

僕自身は「1ヶ月くらいは座学メインでも構わないですよ」と話していますが、小さくても実案件のタスクを解決することを調べる方がドメイン知識のキャッチアップも早くなるということで、OJTメインで始める事が多いです。このあたりのさじ加減はジョイン時点のスキルにも依るでしょうが、基本はメンター / メンティーにお任せしています。

これまでに経験・知識を積んできたインターン生が新しい人に教え、メンターとしても成長する。さらに、これまでメンティーだった人が次は教える立場になる、、そういった流れが出来つつあり、とても嬉しく思っています。

開発の流れ

ざっくり書くと、以下のような流れになります。★がついているのがエンジニアタスクです。 上述したように、他従業員と同様インターン生も一連の開発プロセスを経験してもらっています。

  • プロダクトマネージャーが要件定義書を書く
  • ★設計仕様書を書く
  • ★実装
  • ★QA観点の仕様説明書を書く
  • QAエンジニアが検証環境で動作確認
  • リリース

こういったドキュメントも、メンターや他エンジニアのサポートを得ながら開発する自身に書いてもらっています。 個人開発でコードを書いているだけでは身に付けられない、開発の周辺タスクも経験できることは、これから職業エンジニアになろうとしているインターン生の皆さんにはメリットに感じてもらえているようです。 f:id:kaizenplatform:20210125095056p:plain

具体的にどんなものを開発してきたのかや、どんなスキルが身についたのか?といった事を紹介したいのは山々ですが、今後インターン生の皆さんにブログに書いてもらいたいと思っていますので、後続の記事にゆずることにします。

おわりに

インターンチームは今後も仲間を増やしていきたいと思っており、絶賛募集中です。ご興味がある方は、ぜひこちらをご覧ください。
とりあえず話だけきいてみたい、というのも歓迎です!

hrmos.co

AWS re:Invent に初めて参加して分かったこと

SRE Group Managerの前田です。 2019年12月02日〜06日にラスベガスで開催されたAWS re:Inventに参加してきたので、 初参加者の視点で分かったことなどを忘れないうちにまとめました。次回以降で参加する人の参考になれば幸いです。

f:id:kaizenplatform:20191211184158j:plain

TL;DR

  • 経験者、re:inventの事前交流会でもらった助言を実践する
  • とにかく体力勝負
  • re:Inventはセッション予約の段階から始まっている
  • EXPOを見ると流行が分かる
  • 非エンジニア職やAWSに詳しくない人も多く参加している
続きを読む

PulumiでECS環境を構築する

SREの本田(@mov_vc)です。

Kaizen Platformではインフラ構築にPulumiを採用し始めています。今回は、Pulumiの基本的な説明+ECS環境をPulumiで構築した手順をまとめました。結論から言うとPulumi、かなり便利なので、導入を考えているよ〜という人はぜひ読んでみてください。

TL;DR

汎用言語で書ける

TypeScript, JavaScript, Pythonで記述できます。

f:id:kaizenplatform:20191106103226p:plain

依存関係解決してくれる

リソース間に依存関係があってもPulumiさんがよしなにやってくれます。

f:id:kaizenplatform:20191106103255p:plain

WebUIやべーじゃん

WebUIはこんな感じでプロジェクト、環境一覧画面があり、イケてます。

f:id:kaizenplatform:20191106103349p:plain

作業履歴とかもWebUIで確認できる

環境ごとのstate情報、Pulumi作業履歴などが確認できます。

f:id:kaizenplatform:20191106103406p:plain

開発めっちゃ活発

リリースサイクルが週1ペース。ちゃんと寝てる???

f:id:kaizenplatform:20191106103531p:plain

ぷ…Pulumiってなによ…

f:id:kaizenplatform:20191106103515p:plain

公式:

https://www.pulumi.com/

terraformとの比較(公式の主張):

https://www.pulumi.com/docs/intro/vs/terraform/#pulumi-vs-terraform

slackグループ:

https://slack.pulumi.com/

続きを読む

「not 緊急 but 重要」に取り組む1週間 / Kaizen Week #7を開催しました

こんにちは、つくばからリモートワークしている池田(@ikedaosushi)です。 Kaizen Platformでは定期的に「Kaizen Week」という取り組みをしています。 これは、 日常のプロジェクトを一時停止し、普段の業務では優先度を上げずらい「リファクタリング」「新しいツールの導入」などのタスクに1週間取り組もう、というイベントです。最近では3ヶ月に一度開催されています。

この記事ではKaizen Platformではなぜ「Kaizen Week」に取り組み、どんな工夫をしているのか、どんな成果が得られたのかを書きます。

続きを読む