こんにちは!セイル自社開発OJTトレーナーの上瀬(かみせ)です🙋‍♂️

今回は業界未経験で自社開発に参画し、2年でOJTトレーナーになった私の奮闘劇第一弾をご紹介

これからエンジニアを目指す方の中には、現場ってどんな感じなんだろうと不安な方も多いのではないかと思います

この記事が少しでも参考になれば幸いです👍

不安しかない!これが現実か!

2020年4月、意気揚々とセイルに入社しました
開発メンバー 一番右が私です
参画後、挨拶や開発状況の説明もそこそこに、さっそく環境構築

詳細は覚えていませんが、とりあえず教えてもらう通りにソフトのインストールと設定を繰り返し、途中で何度かエラーも出ましたが、エラーも解決してもらいながらの環境構築

「環境構築がスタート地点として、このレベルを自分で出来る様になるのか?😟むずかしすぎる、、、」

そんなことを思いながら、数時間かけて環境構築が完了

そして、初めてコードを目にした時、衝撃でした⚡️

なんじゃこのボリュームッッッ!?全っ然ワカラナーーーーイ!!😱😱😱
不安しかないんですけど〜😭

当たり前ですが、独学で書いてたボリュームなんてショボショボです
これが現場のコードかぁ、、、とめちゃめちゃビビりました

しかし、初めてのタスクはすぐにやって来ます


先輩「よし!とりあえず環境構築終わって動くようになったし、まずは簡単なCRUDからやってみよう!
   既存のCRUDはいくつかあるし、内容はほとんど一緒のコードだから参考にすると良いよ👍」


「おぉ、それなら大丈夫かもです!やってみます!」

先輩「ローカル環境だしぶっ壊しても大丈夫!」

「最悪の状態にはならないし、とりあえず自分でやれるだけやってみます🙋‍♂️」


その日の作業はここで終了。とりあえず一週間自分で挑戦してみることに

こうして、初めてのタスクを任された私のエンジニアキャリアがスタートしました

キャリアスタート!初めてのタスク!

そんなこんなで初めてのタスクに取り掛かることに

「さて、まずは参考になるコードを見てみよう、、、👀」
「、、、👀」
「、、、👀」
参考にするコードどこ〜〜〜???

ツールの使い方すらまともに知らなかった私は、参考にするコードを探すことすらできず、、、
さらに、CRUDを作るために何が必要なのかも分かっていませんでした😅

スクールではruby on railsでコード書いてましたが、自社開発はjavaなので初見ではさっぱり🤷‍♂️

よしっ。ギブアップして助けを求めよう!🤨

📩「拝啓、先輩様。春の日差しが暖かい今日この頃、いかがお過ごしですか?
データの流れが分からず、必要なコードもわかりません。右も左もわかりません。基本的なデータの流れを教えて頂きたく」


「了解!来週オフィスで1から教えるよ!」
ありがたい🙏

ということで、その次の週、オフィスで勉強タイムをいただきました
画面からのデータはどこで受け取って、どこで処理をして、どこからデータベースへアクセスしているか
処理をするために必要なコードは何か

半日かけて1から10まで丁寧に教えて頂きました。
ここまで丁寧に教えてくれる現場は少ないと思います🙇‍♂️

ここでデータの流れを理解できた私は、初めてのタスクであるCRUDの作成を完了させ、
そのCRUDを使用するフロント画面の作成まで行いました

先輩様様ですほんと🙇‍♂️

自社開発の利点として、「教育時間をしっかり取れる」ということがあります
本当に”1“が分からなかった私が”1“を理解できた初めてのタスクでした

メールの自動送信やってみ?

そんなこんなで、初めてのタスクをこなした後、いくつか簡単なCRUDのタスクをこなし、次のタスクどうしようかな〜と先輩と話していました

先輩「あ、メールの自動送信やってみ? サービスに登録したときに、”登録しました!”とか自動でメール来るじゃん?あれ」

「あ〜、確かに!自動でメール届きますね!」 
ん?それを実装?こんな難しそうなことできるか?🤔


先輩「多分、AWSのSESっての使えばできるっぽい。というかできるはず👍」

「AWS?? SES??ちょっとよく分かりませんが、とりあえず1から調べてやってみます🙋‍♂️」


とりあえずAWSのSESについて色々調べるところからスタート

「ふむふむ。詳しいことはよく分からんが、とりあえず調べた通りに設定したりコード書いてみよう」

めっちゃ色んなエラーを出しながら、設定の変更やコードの修正を繰り返し、

「📩ピコン♪」

「やったー!メールの自動送信設定できたじゃん🎉」
そして、

「先輩!自動送信設定できました!」

先輩「お!いいね!じゃあ、システム内で使い勝手が良くなるような変更とかはこっちでやっとくね!」

「お願いします!」

といった感じで、タスクの中でも難易度はしっかり分けて任せてくれます。
難しそうでも、調べればできるタスクをこなすことが一番レベルアップにつながる気がします
SmartSESチームは既にできる作業を任せるだけでなく、少し上のレベルのタスクを任せることがあります
しかし、決して急かすことはなく、まずは挑戦させて成長させるという方針で教育を行なっています

何それ?SSL証明書の自動更新?

メールの自動送信タスクをこなした後、次のタスクどうするかミーティング

先輩「あ〜、SSL証明書の自動更新やってみれば?」

「SSL?? なんでしょうかそれは?」

先輩「http通信とhttps通信ってあるじゃん? httpsにするためにはssl証明書というものが必要になるんだけど、そのssl証明書には有効期限90日っていう制限があるわけ。そこで、90日以内に自動でssl証明書を更新できれば、https通信が半永久的に使えるようになる!」

「なるほど!よく分かりません🙋‍♂️」

分からなければお勉強タイム
https通信とは〜、Let’s Encryptというものがありまして〜, nginxを使って〜 etc…
分からないときはホワイトボード使って丁寧に教えてくれます🙇‍♂️

「ざっくりなんとなく分かりました!やってみます!」

教えてもらったキーワードをもとに色々調査

ssl証明書、let’s encrypt、 nginx、 自動化
これらのワードで検索すると、それなりに記事が出てきました

「ふむふむ、なんとなーく分かった気がするし、とりあえず書いてみよう!」

エラー出しまくりながら、検索と実装を繰り返し、自動更新できるようになりました🎉

「ssl証明書の自動更新できるようになりました!」

先輩「やるじゃん!実装できるようになってきたな!」

「ありがとうございます!自分では手応え全くありません!👍」

タスクを任せる時は、キーワード教えて、分からないことは一通り教えて、、、と
あとは頑張って実装するだけ。って状態にしてくれます

「あとは頑張るだけ」がなかなか難しいとこでもありますが、、、

最後に

いかがでしたか?

今回はブログ第一弾ということで、参画当初の様子を記事にしてみました

こんなレベルかよw と思った方もいるかも知れませんね
何も分からなかった自分が、どのようにタスクをこなしたかイメージは湧いたでしょうか?

ここからは、システム設計やDB設計など上流工程もどんどん担当していくようになります

自分で成長を実感できるようになったのはここからです

私自身の成長記録を通して、セイル開発チームの雰囲気や、どの様なキャリアが積めるのかなど、少しでも参考になれば幸いです👍